summaryrefslogtreecommitdiffstats
path: root/docs/doxygen/html
diff options
context:
space:
mode:
authorThales Lima Oliveira <thaleslima.ufu@gmail.com>2017-10-06 17:07:39 -0300
committerGitHub <noreply@github.com>2017-10-06 17:07:39 -0300
commita32372968abb2f4b3bf0472f59c18f5028d20206 (patch)
tree054de50365749426623bed352a10e84299e84cad /docs/doxygen/html
parentfa2776e9a939a793a9e46a0cc5880dda868e7028 (diff)
parent89befdb9b259d02249876e39ec6fd28860272439 (diff)
downloadPSP.git-a32372968abb2f4b3bf0472f59c18f5028d20206.tar.gz
PSP.git-a32372968abb2f4b3bf0472f59c18f5028d20206.tar.xz
PSP.git-a32372968abb2f4b3bf0472f59c18f5028d20206.zip
Merge pull request #39 from Thales1330/wip/sync-machine-saturation
Wip sync machine saturation
Diffstat (limited to 'docs/doxygen/html')
-rw-r--r--docs/doxygen/html/_about_form_8cpp_source.html9
-rw-r--r--docs/doxygen/html/_about_form_8h.html117
-rw-r--r--docs/doxygen/html/_about_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_art_metro_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_art_metro_8h_source.html6
-rw-r--r--docs/doxygen/html/_branch_8cpp_source.html29
-rw-r--r--docs/doxygen/html/_branch_8h.html116
-rw-r--r--docs/doxygen/html/_branch_8h_source.html51
-rw-r--r--docs/doxygen/html/_bus_8cpp_source.html69
-rw-r--r--docs/doxygen/html/_bus_8h.html118
-rw-r--r--docs/doxygen/html/_bus_8h_source.html33
-rw-r--r--docs/doxygen/html/_bus_form_8cpp_source.html32
-rw-r--r--docs/doxygen/html/_bus_form_8h.html115
-rw-r--r--docs/doxygen/html/_bus_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_bus_form_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_camera_8cpp_source.html9
-rw-r--r--docs/doxygen/html/_camera_8h.html115
-rw-r--r--docs/doxygen/html/_camera_8h_source.html10
-rw-r--r--docs/doxygen/html/_capacitor_8cpp_source.html60
-rw-r--r--docs/doxygen/html/_capacitor_8h.html117
-rw-r--r--docs/doxygen/html/_capacitor_8h_source.html23
-rw-r--r--docs/doxygen/html/_chart_view_8cpp_source.html14
-rw-r--r--docs/doxygen/html/_chart_view_8h.html122
-rw-r--r--docs/doxygen/html/_chart_view_8h_source.html16
-rw-r--r--docs/doxygen/html/_chart_view_base_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_chart_view_base_8h_source.html6
-rw-r--r--docs/doxygen/html/_chart_view_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_connection_line_8cpp_source.html29
-rw-r--r--docs/doxygen/html/_connection_line_8h.html115
-rw-r--r--docs/doxygen/html/_connection_line_8h_source.html31
-rw-r--r--docs/doxygen/html/_constant_8cpp_source.html32
-rw-r--r--docs/doxygen/html/_constant_8h.html117
-rw-r--r--docs/doxygen/html/_constant_8h_source.html29
-rw-r--r--docs/doxygen/html/_constant_form_8cpp_source.html12
-rw-r--r--docs/doxygen/html/_constant_form_8h.html115
-rw-r--r--docs/doxygen/html/_constant_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_control_editor_8cpp_source.html95
-rw-r--r--docs/doxygen/html/_control_editor_8h.html145
-rw-r--r--docs/doxygen/html/_control_editor_8h.js16
-rw-r--r--docs/doxygen/html/_control_editor_8h_source.html48
-rw-r--r--docs/doxygen/html/_control_editor_base_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_control_editor_base_8h_source.html6
-rw-r--r--docs/doxygen/html/_control_editor_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_control_element_8cpp_source.html15
-rw-r--r--docs/doxygen/html/_control_element_8h.html124
-rw-r--r--docs/doxygen/html/_control_element_8h_source.html16
-rw-r--r--docs/doxygen/html/_control_element_container_8cpp_source.html47
-rw-r--r--docs/doxygen/html/_control_element_container_8h.html125
-rw-r--r--docs/doxygen/html/_control_element_container_8h_source.html24
-rw-r--r--docs/doxygen/html/_control_element_solver_8cpp_source.html40
-rw-r--r--docs/doxygen/html/_control_element_solver_8h.html116
-rw-r--r--docs/doxygen/html/_control_element_solver_8h_source.html34
-rw-r--r--docs/doxygen/html/_control_system_test_8cpp_source.html12
-rw-r--r--docs/doxygen/html/_control_system_test_8h.html115
-rw-r--r--docs/doxygen/html/_control_system_test_8h_source.html14
-rw-r--r--docs/doxygen/html/_data_report_8cpp_source.html44
-rw-r--r--docs/doxygen/html/_data_report_8h.html115
-rw-r--r--docs/doxygen/html/_data_report_8h_source.html16
-rw-r--r--docs/doxygen/html/_data_report_base_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_data_report_base_8h_source.html6
-rw-r--r--docs/doxygen/html/_data_report_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_degrees_and_radians_8h_source.html6
-rw-r--r--docs/doxygen/html/_electric_calculation_8cpp_source.html88
-rw-r--r--docs/doxygen/html/_electric_calculation_8h.html36
-rw-r--r--docs/doxygen/html/_electric_calculation_8h_source.html44
-rw-r--r--docs/doxygen/html/_electromechanical_8cpp_source.html67
-rw-r--r--docs/doxygen/html/_electromechanical_8h.html120
-rw-r--r--docs/doxygen/html/_electromechanical_8h_source.html26
-rw-r--r--docs/doxygen/html/_element_8cpp_source.html70
-rw-r--r--docs/doxygen/html/_element_8h.html23
-rw-r--r--docs/doxygen/html/_element_8h_source.html132
-rw-r--r--docs/doxygen/html/_element_data_object_8cpp_source.html15
-rw-r--r--docs/doxygen/html/_element_data_object_8h.html118
-rw-r--r--docs/doxygen/html/_element_data_object_8h_source.html13
-rw-r--r--docs/doxygen/html/_element_form_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_element_form_8h_source.html6
-rw-r--r--docs/doxygen/html/_element_form_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_element_plot_data_8cpp_source.html9
-rw-r--r--docs/doxygen/html/_element_plot_data_8h.html120
-rw-r--r--docs/doxygen/html/_element_plot_data_8h_source.html12
-rw-r--r--docs/doxygen/html/_exponential_8cpp_source.html27
-rw-r--r--docs/doxygen/html/_exponential_8h.html115
-rw-r--r--docs/doxygen/html/_exponential_8h_source.html30
-rw-r--r--docs/doxygen/html/_exponential_form_8cpp_source.html12
-rw-r--r--docs/doxygen/html/_exponential_form_8h.html115
-rw-r--r--docs/doxygen/html/_exponential_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_fault_8cpp_source.html58
-rw-r--r--docs/doxygen/html/_fault_8h.html16
-rw-r--r--docs/doxygen/html/_fault_8h_source.html24
-rw-r--r--docs/doxygen/html/_file_handing_8cpp_source.html197
-rw-r--r--docs/doxygen/html/_file_handing_8h.html125
-rw-r--r--docs/doxygen/html/_file_handing_8h_source.html24
-rw-r--r--docs/doxygen/html/_formulas.tex8
-rw-r--r--docs/doxygen/html/_gain_8cpp_source.html29
-rw-r--r--docs/doxygen/html/_gain_8h.html117
-rw-r--r--docs/doxygen/html/_gain_8h_source.html32
-rw-r--r--docs/doxygen/html/_gain_form_8cpp_source.html10
-rw-r--r--docs/doxygen/html/_gain_form_8h.html115
-rw-r--r--docs/doxygen/html/_gain_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_general_properties_form_8cpp_source.html10
-rw-r--r--docs/doxygen/html/_general_properties_form_8h.html117
-rw-r--r--docs/doxygen/html/_general_properties_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_generator_stab_form_8cpp_source.html23
-rw-r--r--docs/doxygen/html/_generator_stab_form_8h.html115
-rw-r--r--docs/doxygen/html/_generator_stab_form_8h_source.html18
-rw-r--r--docs/doxygen/html/_graphical_element_8cpp_source.html9
-rw-r--r--docs/doxygen/html/_graphical_element_8h.html115
-rw-r--r--docs/doxygen/html/_graphical_element_8h_source.html14
-rw-r--r--docs/doxygen/html/_i_o_control_8cpp_source.html32
-rw-r--r--docs/doxygen/html/_i_o_control_8h.html117
-rw-r--r--docs/doxygen/html/_i_o_control_8h_source.html29
-rw-r--r--docs/doxygen/html/_i_o_control_form_8cpp_source.html11
-rw-r--r--docs/doxygen/html/_i_o_control_form_8h.html116
-rw-r--r--docs/doxygen/html/_i_o_control_form_8h_source.html15
-rw-r--r--docs/doxygen/html/_ind_motor_8cpp_source.html46
-rw-r--r--docs/doxygen/html/_ind_motor_8h.html117
-rw-r--r--docs/doxygen/html/_ind_motor_8h_source.html25
-rw-r--r--docs/doxygen/html/_ind_motor_form_8cpp_source.html28
-rw-r--r--docs/doxygen/html/_ind_motor_form_8h.html115
-rw-r--r--docs/doxygen/html/_ind_motor_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_inductor_8cpp_source.html60
-rw-r--r--docs/doxygen/html/_inductor_8h.html117
-rw-r--r--docs/doxygen/html/_inductor_8h_source.html23
-rw-r--r--docs/doxygen/html/_limiter_8cpp_source.html26
-rw-r--r--docs/doxygen/html/_limiter_8h.html115
-rw-r--r--docs/doxygen/html/_limiter_8h_source.html29
-rw-r--r--docs/doxygen/html/_limiter_form_8cpp_source.html10
-rw-r--r--docs/doxygen/html/_limiter_form_8h.html115
-rw-r--r--docs/doxygen/html/_limiter_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_line_8cpp_source.html93
-rw-r--r--docs/doxygen/html/_line_8h.html118
-rw-r--r--docs/doxygen/html/_line_8h_source.html30
-rw-r--r--docs/doxygen/html/_line_form_8cpp_source.html37
-rw-r--r--docs/doxygen/html/_line_form_8h.html115
-rw-r--r--docs/doxygen/html/_line_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_load_8cpp_source.html63
-rw-r--r--docs/doxygen/html/_load_8h.html126
-rw-r--r--docs/doxygen/html/_load_8h.js9
-rw-r--r--docs/doxygen/html/_load_8h_source.html24
-rw-r--r--docs/doxygen/html/_load_form_8cpp_source.html31
-rw-r--r--docs/doxygen/html/_load_form_8h.html115
-rw-r--r--docs/doxygen/html/_load_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_machines_8cpp_source.html57
-rw-r--r--docs/doxygen/html/_machines_8h.html115
-rw-r--r--docs/doxygen/html/_machines_8h_source.html50
-rw-r--r--docs/doxygen/html/_main_frame_8cpp_source.html72
-rw-r--r--docs/doxygen/html/_main_frame_8h.html137
-rw-r--r--docs/doxygen/html/_main_frame_8h.js13
-rw-r--r--docs/doxygen/html/_main_frame_8h_source.html28
-rw-r--r--docs/doxygen/html/_main_frame_base_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_main_frame_base_8h_source.html6
-rw-r--r--docs/doxygen/html/_main_frame_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_multiplier_8cpp_source.html24
-rw-r--r--docs/doxygen/html/_multiplier_8h.html115
-rw-r--r--docs/doxygen/html/_multiplier_8h_source.html29
-rw-r--r--docs/doxygen/html/_power_element_8cpp_source.html58
-rw-r--r--docs/doxygen/html/_power_element_8h.html40
-rw-r--r--docs/doxygen/html/_power_element_8h_source.html119
-rw-r--r--docs/doxygen/html/_power_flow_8cpp_source.html33
-rw-r--r--docs/doxygen/html/_power_flow_8h.html117
-rw-r--r--docs/doxygen/html/_power_flow_8h_source.html14
-rw-r--r--docs/doxygen/html/_properties_data_8cpp_source.html9
-rw-r--r--docs/doxygen/html/_properties_data_8h.html133
-rw-r--r--docs/doxygen/html/_properties_data_8h.js14
-rw-r--r--docs/doxygen/html/_properties_data_8h_source.html22
-rw-r--r--docs/doxygen/html/_properties_form_8cpp_source.html8
-rw-r--r--docs/doxygen/html/_properties_form_8h_source.html6
-rw-r--r--docs/doxygen/html/_properties_form_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_rate_limiter_8cpp_source.html27
-rw-r--r--docs/doxygen/html/_rate_limiter_8h.html116
-rw-r--r--docs/doxygen/html/_rate_limiter_8h_source.html30
-rw-r--r--docs/doxygen/html/_rate_limiter_form_8cpp_source.html10
-rw-r--r--docs/doxygen/html/_rate_limiter_form_8h.html115
-rw-r--r--docs/doxygen/html/_rate_limiter_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_reactive_shunt_element_form_8cpp_source.html30
-rw-r--r--docs/doxygen/html/_reactive_shunt_element_form_8h.html116
-rw-r--r--docs/doxygen/html/_reactive_shunt_element_form_8h_source.html16
-rw-r--r--docs/doxygen/html/_shunt_8cpp_source.html39
-rw-r--r--docs/doxygen/html/_shunt_8h.html116
-rw-r--r--docs/doxygen/html/_shunt_8h_source.html37
-rw-r--r--docs/doxygen/html/_simulations_settings_form_8cpp_source.html22
-rw-r--r--docs/doxygen/html/_simulations_settings_form_8h.html115
-rw-r--r--docs/doxygen/html/_simulations_settings_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_sum_8cpp_source.html31
-rw-r--r--docs/doxygen/html/_sum_8h.html115
-rw-r--r--docs/doxygen/html/_sum_8h_source.html31
-rw-r--r--docs/doxygen/html/_sum_form_8cpp_source.html10
-rw-r--r--docs/doxygen/html/_sum_form_8h.html115
-rw-r--r--docs/doxygen/html/_sum_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_switching_form_8cpp_source.html23
-rw-r--r--docs/doxygen/html/_switching_form_8h.html115
-rw-r--r--docs/doxygen/html/_switching_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_sync_generator_8cpp_source.html51
-rw-r--r--docs/doxygen/html/_sync_generator_8h.html117
-rw-r--r--docs/doxygen/html/_sync_generator_8h_source.html37
-rw-r--r--docs/doxygen/html/_sync_machine_form_8cpp_source.html42
-rw-r--r--docs/doxygen/html/_sync_machine_form_8h.html115
-rw-r--r--docs/doxygen/html/_sync_machine_form_8h_source.html16
-rw-r--r--docs/doxygen/html/_sync_motor_8cpp_source.html44
-rw-r--r--docs/doxygen/html/_sync_motor_8h.html117
-rw-r--r--docs/doxygen/html/_sync_motor_8h_source.html35
-rw-r--r--docs/doxygen/html/_text_8cpp_source.html115
-rw-r--r--docs/doxygen/html/_text_8h.html155
-rw-r--r--docs/doxygen/html/_text_8h.js30
-rw-r--r--docs/doxygen/html/_text_8h_source.html49
-rw-r--r--docs/doxygen/html/_text_form_8cpp_source.html59
-rw-r--r--docs/doxygen/html/_text_form_8h.html117
-rw-r--r--docs/doxygen/html/_text_form_8h_source.html17
-rw-r--r--docs/doxygen/html/_transfer_function_8cpp_source.html30
-rw-r--r--docs/doxygen/html/_transfer_function_8h.html119
-rw-r--r--docs/doxygen/html/_transfer_function_8h_source.html33
-rw-r--r--docs/doxygen/html/_transfer_function_form_8cpp_source.html12
-rw-r--r--docs/doxygen/html/_transfer_function_form_8h.html115
-rw-r--r--docs/doxygen/html/_transfer_function_form_8h_source.html12
-rw-r--r--docs/doxygen/html/_transformer_8cpp_source.html80
-rw-r--r--docs/doxygen/html/_transformer_8h.html136
-rw-r--r--docs/doxygen/html/_transformer_8h.js16
-rw-r--r--docs/doxygen/html/_transformer_8h_source.html29
-rw-r--r--docs/doxygen/html/_transformer_form_8cpp_source.html31
-rw-r--r--docs/doxygen/html/_transformer_form_8h.html115
-rw-r--r--docs/doxygen/html/_transformer_form_8h_source.html14
-rw-r--r--docs/doxygen/html/_workspace_8cpp_source.html169
-rw-r--r--docs/doxygen/html/_workspace_8h.html145
-rw-r--r--docs/doxygen/html/_workspace_8h.js17
-rw-r--r--docs/doxygen/html/_workspace_8h_source.html48
-rw-r--r--docs/doxygen/html/_workspace_base_8cpp_source.html6
-rw-r--r--docs/doxygen/html/_workspace_base_8h_source.html6
-rw-r--r--docs/doxygen/html/_workspace_bitmaps_8cpp_source.html6
-rw-r--r--docs/doxygen/html/annotated.html170
-rw-r--r--docs/doxygen/html/annotated_dup.js1
-rw-r--r--docs/doxygen/html/class_about_form-members.html6
-rw-r--r--docs/doxygen/html/class_about_form.html18
-rw-r--r--docs/doxygen/html/class_about_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_about_form_base.html8
-rw-r--r--docs/doxygen/html/class_branch-members.html6
-rw-r--r--docs/doxygen/html/class_branch.html62
-rw-r--r--docs/doxygen/html/class_bus-members.html6
-rw-r--r--docs/doxygen/html/class_bus.html54
-rw-r--r--docs/doxygen/html/class_bus_form-members.html6
-rw-r--r--docs/doxygen/html/class_bus_form.html18
-rw-r--r--docs/doxygen/html/class_bus_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_bus_form_base.html8
-rw-r--r--docs/doxygen/html/class_camera-members.html6
-rw-r--r--docs/doxygen/html/class_camera.html18
-rw-r--r--docs/doxygen/html/class_capacitor-members.html6
-rw-r--r--docs/doxygen/html/class_capacitor.html48
-rw-r--r--docs/doxygen/html/class_chart_view-members.html6
-rw-r--r--docs/doxygen/html/class_chart_view.html18
-rw-r--r--docs/doxygen/html/class_chart_view_base-members.html6
-rw-r--r--docs/doxygen/html/class_chart_view_base.html8
-rw-r--r--docs/doxygen/html/class_connection_line-members.html6
-rw-r--r--docs/doxygen/html/class_connection_line.html34
-rw-r--r--docs/doxygen/html/class_constant-members.html6
-rw-r--r--docs/doxygen/html/class_constant.html34
-rw-r--r--docs/doxygen/html/class_constant_form-members.html6
-rw-r--r--docs/doxygen/html/class_constant_form.html18
-rw-r--r--docs/doxygen/html/class_constant_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_constant_form_base.html8
-rw-r--r--docs/doxygen/html/class_control_editor-members.html6
-rw-r--r--docs/doxygen/html/class_control_editor.html8
-rw-r--r--docs/doxygen/html/class_control_editor_base-members.html6
-rw-r--r--docs/doxygen/html/class_control_editor_base.html6
-rw-r--r--docs/doxygen/html/class_control_element-members.html6
-rw-r--r--docs/doxygen/html/class_control_element.html40
-rw-r--r--docs/doxygen/html/class_control_element_button-members.html6
-rw-r--r--docs/doxygen/html/class_control_element_button.html18
-rw-r--r--docs/doxygen/html/class_control_element_container-members.html6
-rw-r--r--docs/doxygen/html/class_control_element_container.html18
-rw-r--r--docs/doxygen/html/class_control_element_solver-members.html6
-rw-r--r--docs/doxygen/html/class_control_element_solver.html18
-rw-r--r--docs/doxygen/html/class_control_system_test-members.html6
-rw-r--r--docs/doxygen/html/class_control_system_test.html18
-rw-r--r--docs/doxygen/html/class_control_system_test_base-members.html6
-rw-r--r--docs/doxygen/html/class_control_system_test_base.html8
-rw-r--r--docs/doxygen/html/class_data_report-members.html6
-rw-r--r--docs/doxygen/html/class_data_report.html18
-rw-r--r--docs/doxygen/html/class_data_report_base-members.html6
-rw-r--r--docs/doxygen/html/class_data_report_base.html8
-rw-r--r--docs/doxygen/html/class_electric_calculation-members.html6
-rw-r--r--docs/doxygen/html/class_electric_calculation.html46
-rw-r--r--docs/doxygen/html/class_electromechanical-members.html108
-rw-r--r--docs/doxygen/html/class_electromechanical.html62
-rw-r--r--docs/doxygen/html/class_electromechanical.js14
-rw-r--r--docs/doxygen/html/class_element-members.html6
-rw-r--r--docs/doxygen/html/class_element.html216
-rw-r--r--docs/doxygen/html/class_element_data_object-members.html6
-rw-r--r--docs/doxygen/html/class_element_data_object.html18
-rw-r--r--docs/doxygen/html/class_element_plot_data-members.html6
-rw-r--r--docs/doxygen/html/class_element_plot_data.html8
-rw-r--r--docs/doxygen/html/class_exponential-members.html8
-rw-r--r--docs/doxygen/html/class_exponential.html88
-rw-r--r--docs/doxygen/html/class_exponential_form-members.html6
-rw-r--r--docs/doxygen/html/class_exponential_form.html18
-rw-r--r--docs/doxygen/html/class_exponential_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_exponential_form_base.html8
-rw-r--r--docs/doxygen/html/class_fault-members.html6
-rw-r--r--docs/doxygen/html/class_fault.html26
-rw-r--r--docs/doxygen/html/class_file_handing-members.html6
-rw-r--r--docs/doxygen/html/class_file_handing.html18
-rw-r--r--docs/doxygen/html/class_gain-members.html8
-rw-r--r--docs/doxygen/html/class_gain.html90
-rw-r--r--docs/doxygen/html/class_gain_form-members.html6
-rw-r--r--docs/doxygen/html/class_gain_form.html18
-rw-r--r--docs/doxygen/html/class_gain_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_gain_form_base.html8
-rw-r--r--docs/doxygen/html/class_general_properties_form-members.html6
-rw-r--r--docs/doxygen/html/class_general_properties_form.html18
-rw-r--r--docs/doxygen/html/class_general_properties_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_general_properties_form_base.html8
-rw-r--r--docs/doxygen/html/class_generator_stab_form-members.html6
-rw-r--r--docs/doxygen/html/class_generator_stab_form.html18
-rw-r--r--docs/doxygen/html/class_generator_stab_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_generator_stab_form_base.html8
-rw-r--r--docs/doxygen/html/class_graphical_element-members.html6
-rw-r--r--docs/doxygen/html/class_graphical_element.html22
-rw-r--r--docs/doxygen/html/class_i_o_control-members.html6
-rw-r--r--docs/doxygen/html/class_i_o_control.html34
-rw-r--r--docs/doxygen/html/class_i_o_control_form-members.html6
-rw-r--r--docs/doxygen/html/class_i_o_control_form.html18
-rw-r--r--docs/doxygen/html/class_i_o_control_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_i_o_control_form_base.html8
-rw-r--r--docs/doxygen/html/class_ind_motor-members.html6
-rw-r--r--docs/doxygen/html/class_ind_motor.html34
-rw-r--r--docs/doxygen/html/class_ind_motor_form-members.html6
-rw-r--r--docs/doxygen/html/class_ind_motor_form.html18
-rw-r--r--docs/doxygen/html/class_ind_motor_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_ind_motor_form_base.html8
-rw-r--r--docs/doxygen/html/class_inductor-members.html6
-rw-r--r--docs/doxygen/html/class_inductor.html48
-rw-r--r--docs/doxygen/html/class_limiter-members.html6
-rw-r--r--docs/doxygen/html/class_limiter.html34
-rw-r--r--docs/doxygen/html/class_limiter_form-members.html6
-rw-r--r--docs/doxygen/html/class_limiter_form.html18
-rw-r--r--docs/doxygen/html/class_limiter_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_limiter_form_base.html8
-rw-r--r--docs/doxygen/html/class_line-members.html6
-rw-r--r--docs/doxygen/html/class_line.html78
-rw-r--r--docs/doxygen/html/class_line_form-members.html6
-rw-r--r--docs/doxygen/html/class_line_form.html18
-rw-r--r--docs/doxygen/html/class_line_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_line_form_base.html8
-rw-r--r--docs/doxygen/html/class_load-members.html6
-rw-r--r--docs/doxygen/html/class_load.html44
-rw-r--r--docs/doxygen/html/class_load_form-members.html6
-rw-r--r--docs/doxygen/html/class_load_form.html18
-rw-r--r--docs/doxygen/html/class_load_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_load_form_base.html8
-rw-r--r--docs/doxygen/html/class_machines-members.html6
-rw-r--r--docs/doxygen/html/class_machines.html64
-rw-r--r--docs/doxygen/html/class_main_app-members.html6
-rw-r--r--docs/doxygen/html/class_main_app.html8
-rw-r--r--docs/doxygen/html/class_main_frame-members.html12
-rw-r--r--docs/doxygen/html/class_main_frame.html87
-rw-r--r--docs/doxygen/html/class_main_frame.js2
-rw-r--r--docs/doxygen/html/class_main_frame_base-members.html6
-rw-r--r--docs/doxygen/html/class_main_frame_base.html8
-rw-r--r--docs/doxygen/html/class_multiplier-members.html6
-rw-r--r--docs/doxygen/html/class_multiplier.html34
-rw-r--r--docs/doxygen/html/class_node-members.html6
-rw-r--r--docs/doxygen/html/class_node.html18
-rw-r--r--docs/doxygen/html/class_open_g_l_colour-members.html6
-rw-r--r--docs/doxygen/html/class_open_g_l_colour.html20
-rw-r--r--docs/doxygen/html/class_plot_data-members.html6
-rw-r--r--docs/doxygen/html/class_plot_data.html18
-rw-r--r--docs/doxygen/html/class_power_element-members.html6
-rw-r--r--docs/doxygen/html/class_power_element.html66
-rw-r--r--docs/doxygen/html/class_power_flow-members.html6
-rw-r--r--docs/doxygen/html/class_power_flow.html20
-rw-r--r--docs/doxygen/html/class_properties_data-members.html6
-rw-r--r--docs/doxygen/html/class_properties_data.html18
-rw-r--r--docs/doxygen/html/class_rate_limiter-members.html8
-rw-r--r--docs/doxygen/html/class_rate_limiter.html97
-rw-r--r--docs/doxygen/html/class_rate_limiter_form-members.html6
-rw-r--r--docs/doxygen/html/class_rate_limiter_form.html18
-rw-r--r--docs/doxygen/html/class_rate_limiter_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_rate_limiter_form_base.html8
-rw-r--r--docs/doxygen/html/class_reactive_shunt_element_form-members.html6
-rw-r--r--docs/doxygen/html/class_reactive_shunt_element_form.html18
-rw-r--r--docs/doxygen/html/class_reactive_shunt_element_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_reactive_shunt_element_form_base.html8
-rw-r--r--docs/doxygen/html/class_shunt-members.html6
-rw-r--r--docs/doxygen/html/class_shunt.html52
-rw-r--r--docs/doxygen/html/class_simulations_settings_form-members.html6
-rw-r--r--docs/doxygen/html/class_simulations_settings_form.html18
-rw-r--r--docs/doxygen/html/class_simulations_settings_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_simulations_settings_form_base.html8
-rw-r--r--docs/doxygen/html/class_sum-members.html6
-rw-r--r--docs/doxygen/html/class_sum.html34
-rw-r--r--docs/doxygen/html/class_sum_form-members.html6
-rw-r--r--docs/doxygen/html/class_sum_form.html18
-rw-r--r--docs/doxygen/html/class_sum_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_sum_form_base.html8
-rw-r--r--docs/doxygen/html/class_switching_form-members.html6
-rw-r--r--docs/doxygen/html/class_switching_form.html18
-rw-r--r--docs/doxygen/html/class_switching_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_switching_form_base.html8
-rw-r--r--docs/doxygen/html/class_sync_generator-members.html6
-rw-r--r--docs/doxygen/html/class_sync_generator.html38
-rw-r--r--docs/doxygen/html/class_sync_machine_form-members.html6
-rw-r--r--docs/doxygen/html/class_sync_machine_form.html18
-rw-r--r--docs/doxygen/html/class_sync_machine_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_sync_machine_form_base.html8
-rw-r--r--docs/doxygen/html/class_sync_motor-members.html6
-rw-r--r--docs/doxygen/html/class_sync_motor.html36
-rw-r--r--docs/doxygen/html/class_text-members.html6
-rw-r--r--docs/doxygen/html/class_text.html36
-rw-r--r--docs/doxygen/html/class_text_form-members.html6
-rw-r--r--docs/doxygen/html/class_text_form.html18
-rw-r--r--docs/doxygen/html/class_text_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_text_form_base.html8
-rw-r--r--docs/doxygen/html/class_text_g_l_drawable-members.html6
-rw-r--r--docs/doxygen/html/class_text_g_l_drawable.html6
-rw-r--r--docs/doxygen/html/class_text_texture-members.html6
-rw-r--r--docs/doxygen/html/class_text_texture.html6
-rw-r--r--docs/doxygen/html/class_transfer_function-members.html10
-rw-r--r--docs/doxygen/html/class_transfer_function.html139
-rw-r--r--docs/doxygen/html/class_transfer_function_form-members.html6
-rw-r--r--docs/doxygen/html/class_transfer_function_form.html18
-rw-r--r--docs/doxygen/html/class_transfer_function_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_transfer_function_form_base.html8
-rw-r--r--docs/doxygen/html/class_transformer-members.html6
-rw-r--r--docs/doxygen/html/class_transformer.html68
-rw-r--r--docs/doxygen/html/class_transformer_form-members.html6
-rw-r--r--docs/doxygen/html/class_transformer_form.html18
-rw-r--r--docs/doxygen/html/class_transformer_form_base-members.html6
-rw-r--r--docs/doxygen/html/class_transformer_form_base.html8
-rw-r--r--docs/doxygen/html/class_workspace-members.html6
-rw-r--r--docs/doxygen/html/class_workspace.html18
-rw-r--r--docs/doxygen/html/class_workspace_base-members.html6
-rw-r--r--docs/doxygen/html/class_workspace_base.html8
-rw-r--r--docs/doxygen/html/classes.html56
-rw-r--r--docs/doxygen/html/classwx_g_l_number_renderer-members.html6
-rw-r--r--docs/doxygen/html/classwx_g_l_number_renderer.html6
-rw-r--r--docs/doxygen/html/classwx_g_l_string-members.html6
-rw-r--r--docs/doxygen/html/classwx_g_l_string.html6
-rw-r--r--docs/doxygen/html/classwx_g_l_string_array-members.html6
-rw-r--r--docs/doxygen/html/classwx_g_l_string_array.html6
-rw-r--r--docs/doxygen/html/classwx_ribbon_metro_art_provider-members.html6
-rw-r--r--docs/doxygen/html/classwx_ribbon_metro_art_provider.html6
-rw-r--r--docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.html133
-rw-r--r--docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.js242
-rw-r--r--docs/doxygen/html/files.html136
-rw-r--r--docs/doxygen/html/functions.html6
-rw-r--r--docs/doxygen/html/functions_0x7e.html9
-rw-r--r--docs/doxygen/html/functions_b.html6
-rw-r--r--docs/doxygen/html/functions_c.html9
-rw-r--r--docs/doxygen/html/functions_d.html6
-rw-r--r--docs/doxygen/html/functions_dup.js1
-rw-r--r--docs/doxygen/html/functions_e.html12
-rw-r--r--docs/doxygen/html/functions_f.html6
-rw-r--r--docs/doxygen/html/functions_func.html6
-rw-r--r--docs/doxygen/html/functions_func_0x7e.html9
-rw-r--r--docs/doxygen/html/functions_func_b.html6
-rw-r--r--docs/doxygen/html/functions_func_c.html9
-rw-r--r--docs/doxygen/html/functions_func_d.html6
-rw-r--r--docs/doxygen/html/functions_func_e.html6
-rw-r--r--docs/doxygen/html/functions_func_f.html6
-rw-r--r--docs/doxygen/html/functions_func_g.html6
-rw-r--r--docs/doxygen/html/functions_func_h.html6
-rw-r--r--docs/doxygen/html/functions_func_i.html6
-rw-r--r--docs/doxygen/html/functions_func_m.html9
-rw-r--r--docs/doxygen/html/functions_func_n.html6
-rw-r--r--docs/doxygen/html/functions_func_o.html6
-rw-r--r--docs/doxygen/html/functions_func_p.html6
-rw-r--r--docs/doxygen/html/functions_func_r.html6
-rw-r--r--docs/doxygen/html/functions_func_s.html12
-rw-r--r--docs/doxygen/html/functions_func_u.html6
-rw-r--r--docs/doxygen/html/functions_func_w.html6
-rw-r--r--docs/doxygen/html/functions_g.html6
-rw-r--r--docs/doxygen/html/functions_h.html6
-rw-r--r--docs/doxygen/html/functions_i.html6
-rw-r--r--docs/doxygen/html/functions_m.html9
-rw-r--r--docs/doxygen/html/functions_n.html6
-rw-r--r--docs/doxygen/html/functions_o.html6
-rw-r--r--docs/doxygen/html/functions_p.html6
-rw-r--r--docs/doxygen/html/functions_r.html6
-rw-r--r--docs/doxygen/html/functions_s.html12
-rw-r--r--docs/doxygen/html/functions_u.html6
-rw-r--r--docs/doxygen/html/functions_vars.html18
-rw-r--r--docs/doxygen/html/functions_w.html6
-rw-r--r--docs/doxygen/html/functions_x.html108
-rw-r--r--docs/doxygen/html/globals.html6
-rw-r--r--docs/doxygen/html/globals_enum.html6
-rw-r--r--docs/doxygen/html/globals_eval.html6
-rw-r--r--docs/doxygen/html/hierarchy.html238
-rw-r--r--docs/doxygen/html/hierarchy.js1
-rw-r--r--docs/doxygen/html/index.html10
-rw-r--r--docs/doxygen/html/main_8cpp_source.html14
-rw-r--r--docs/doxygen/html/menudata.js1
-rw-r--r--docs/doxygen/html/navtreedata.js27
-rw-r--r--docs/doxygen/html/navtreeindex0.js132
-rw-r--r--docs/doxygen/html/navtreeindex1.js272
-rw-r--r--docs/doxygen/html/navtreeindex10.js484
-rw-r--r--docs/doxygen/html/navtreeindex11.js500
-rw-r--r--docs/doxygen/html/navtreeindex12.js342
-rw-r--r--docs/doxygen/html/navtreeindex13.js361
-rw-r--r--docs/doxygen/html/navtreeindex14.js19
-rw-r--r--docs/doxygen/html/navtreeindex2.js272
-rw-r--r--docs/doxygen/html/navtreeindex3.js272
-rw-r--r--docs/doxygen/html/navtreeindex4.js306
-rw-r--r--docs/doxygen/html/navtreeindex5.js284
-rw-r--r--docs/doxygen/html/navtreeindex6.js284
-rw-r--r--docs/doxygen/html/navtreeindex7.js284
-rw-r--r--docs/doxygen/html/navtreeindex8.js284
-rw-r--r--docs/doxygen/html/navtreeindex9.js284
-rw-r--r--docs/doxygen/html/search/all_0.js1
-rw-r--r--docs/doxygen/html/search/all_1.js3
-rw-r--r--docs/doxygen/html/search/all_10.js6
-rw-r--r--docs/doxygen/html/search/all_12.js1
-rw-r--r--docs/doxygen/html/search/all_13.js7
-rw-r--r--docs/doxygen/html/search/all_14.html26
-rw-r--r--docs/doxygen/html/search/all_14.js9
-rw-r--r--docs/doxygen/html/search/all_2.js12
-rw-r--r--docs/doxygen/html/search/all_3.js1
-rw-r--r--docs/doxygen/html/search/all_4.js7
-rw-r--r--docs/doxygen/html/search/all_5.js3
-rw-r--r--docs/doxygen/html/search/all_6.js7
-rw-r--r--docs/doxygen/html/search/all_8.js5
-rw-r--r--docs/doxygen/html/search/all_9.js6
-rw-r--r--docs/doxygen/html/search/all_a.js7
-rw-r--r--docs/doxygen/html/search/all_d.js4
-rw-r--r--docs/doxygen/html/search/all_e.js3
-rw-r--r--docs/doxygen/html/search/all_f.js10
-rw-r--r--docs/doxygen/html/search/classes_e.js1
-rw-r--r--docs/doxygen/html/search/files_0.js3
-rw-r--r--docs/doxygen/html/search/files_1.js4
-rw-r--r--docs/doxygen/html/search/files_2.js12
-rw-r--r--docs/doxygen/html/search/files_3.html26
-rw-r--r--docs/doxygen/html/search/files_3.js4
-rw-r--r--docs/doxygen/html/search/files_4.html26
-rw-r--r--docs/doxygen/html/search/files_4.js10
-rw-r--r--docs/doxygen/html/search/files_5.html26
-rw-r--r--docs/doxygen/html/search/files_5.js5
-rw-r--r--docs/doxygen/html/search/files_6.html26
-rw-r--r--docs/doxygen/html/search/files_6.js8
-rw-r--r--docs/doxygen/html/search/files_7.html26
-rw-r--r--docs/doxygen/html/search/files_7.js8
-rw-r--r--docs/doxygen/html/search/files_8.html26
-rw-r--r--docs/doxygen/html/search/files_8.js9
-rw-r--r--docs/doxygen/html/search/files_9.html26
-rw-r--r--docs/doxygen/html/search/files_9.js6
-rw-r--r--docs/doxygen/html/search/files_a.html26
-rw-r--r--docs/doxygen/html/search/files_a.js6
-rw-r--r--docs/doxygen/html/search/files_b.html26
-rw-r--r--docs/doxygen/html/search/files_b.js6
-rw-r--r--docs/doxygen/html/search/files_c.html26
-rw-r--r--docs/doxygen/html/search/files_c.js11
-rw-r--r--docs/doxygen/html/search/files_d.html26
-rw-r--r--docs/doxygen/html/search/files_d.js9
-rw-r--r--docs/doxygen/html/search/files_e.html26
-rw-r--r--docs/doxygen/html/search/files_e.js4
-rw-r--r--docs/doxygen/html/search/functions_11.js1
-rw-r--r--docs/doxygen/html/search/functions_2.js1
-rw-r--r--docs/doxygen/html/search/functions_9.js1
-rw-r--r--docs/doxygen/html/search/functions_e.js1
-rw-r--r--docs/doxygen/html/search/searchdata.js6
-rw-r--r--docs/doxygen/html/search/variables_1.js3
-rw-r--r--docs/doxygen/html/search/variables_2.js3
-rw-r--r--docs/doxygen/html/search/variables_3.html26
-rw-r--r--docs/doxygen/html/search/variables_3.js5
-rw-r--r--docs/doxygen/html/search/variables_4.html26
-rw-r--r--docs/doxygen/html/search/variables_4.js5
-rw-r--r--docs/doxygen/html/struct_bus_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_bus_electrical_data.html12
-rw-r--r--docs/doxygen/html/struct_capacitor_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_capacitor_electrical_data.html8
-rw-r--r--docs/doxygen/html/struct_elements_lists-members.html6
-rw-r--r--docs/doxygen/html/struct_elements_lists.html8
-rw-r--r--docs/doxygen/html/struct_general_data-members.html6
-rw-r--r--docs/doxygen/html/struct_general_data.html8
-rw-r--r--docs/doxygen/html/struct_ind_motor_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_ind_motor_electrical_data.html8
-rw-r--r--docs/doxygen/html/struct_inductor_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_inductor_electrical_data.html8
-rw-r--r--docs/doxygen/html/struct_integration_constant-members.html6
-rw-r--r--docs/doxygen/html/struct_integration_constant.html18
-rw-r--r--docs/doxygen/html/struct_line_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_line_electrical_data.html8
-rw-r--r--docs/doxygen/html/struct_load_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_load_electrical_data.html8
-rw-r--r--docs/doxygen/html/struct_reactive_limits-members.html6
-rw-r--r--docs/doxygen/html/struct_reactive_limits.html8
-rw-r--r--docs/doxygen/html/struct_simulation_data-members.html6
-rw-r--r--docs/doxygen/html/struct_simulation_data.html8
-rw-r--r--docs/doxygen/html/struct_switching_data-members.html6
-rw-r--r--docs/doxygen/html/struct_switching_data.html18
-rw-r--r--docs/doxygen/html/struct_sync_generator_electrical_data-members.html22
-rw-r--r--docs/doxygen/html/struct_sync_generator_electrical_data.html28
-rw-r--r--docs/doxygen/html/struct_sync_generator_electrical_data.js6
-rw-r--r--docs/doxygen/html/struct_sync_machine_model_data-members.html109
-rw-r--r--docs/doxygen/html/struct_sync_machine_model_data.html200
-rw-r--r--docs/doxygen/html/struct_sync_machine_model_data.js7
-rw-r--r--docs/doxygen/html/struct_sync_motor_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_sync_motor_electrical_data.html10
-rw-r--r--docs/doxygen/html/struct_transfer_function_1_1_space_state-members.html6
-rw-r--r--docs/doxygen/html/struct_transfer_function_1_1_space_state.html8
-rw-r--r--docs/doxygen/html/struct_transformer_electrical_data-members.html6
-rw-r--r--docs/doxygen/html/struct_transformer_electrical_data.html12
-rw-r--r--docs/doxygen/html/wx_g_l_string_8cpp_source.html6
-rw-r--r--docs/doxygen/html/wx_g_l_string_8h_source.html6
600 files changed, 17656 insertions, 4997 deletions
diff --git a/docs/doxygen/html/_about_form_8cpp_source.html b/docs/doxygen/html/_about_form_8cpp_source.html
index 8a9ad94..54c7a2f 100644
--- a/docs/doxygen/html/_about_form_8cpp_source.html
+++ b/docs/doxygen/html/_about_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,8 @@ $(document).ready(function(){initNavTree('_about_form_8cpp_source.html','');});
<div class="title">AboutForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;AboutForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;AboutForm::AboutForm(wxWindow* parent) : <a class="code" href="class_about_form_base.html">AboutFormBase</a>(parent) { Init(); }</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;AboutForm::~AboutForm() {}</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keywordtype">void</span> AboutForm::Init()</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="comment">// Create developers table</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_gridCredits-&gt;EnableGridLines(<span class="keyword">false</span>);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxFont headerFont = m_gridCredits-&gt;GetDefaultCellFont();</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; headerFont.SetWeight(wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; headerFont.SetPointSize(headerFont.GetPointSize() + 1);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; wxColour headerColour(200, 200, 200);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; wxColour hyperlinkColour(6, 69, 173);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_gridCredits-&gt;AppendCols(3);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_gridCredits-&gt;AppendRows(6);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_gridCredits-&gt;HideColLabels();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_gridCredits-&gt;HideRowLabels();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_gridCredits-&gt;SetCellSize(0, 0, 1, 3);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_gridCredits-&gt;SetCellSize(3, 0, 1, 3);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_gridCredits-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Developers&quot;</span>));</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_gridCredits-&gt;SetCellAlignment(0, 0, wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_gridCredits-&gt;SetCellBackgroundColour(0, 0, headerColour);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_gridCredits-&gt;SetCellFont(0, 0, headerFont);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_gridCredits-&gt;SetCellValue(1, 0, wxT(<span class="stringliteral">&quot;Thales Lima Oliveira&quot;</span>));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_gridCredits-&gt;SetCellValue(1, 1, _(<span class="stringliteral">&quot;Main developer and project admin&quot;</span>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_gridCredits-&gt;SetCellValue(1, 2, wxT(<span class="stringliteral">&quot;thales@ufu.br&quot;</span>));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_gridCredits-&gt;SetRowMinimalHeight(2, 30);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_gridCredits-&gt;SetCellValue(3, 0, _(<span class="stringliteral">&quot;Contributors / Special Thanks&quot;</span>));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_gridCredits-&gt;SetCellAlignment(3, 0, wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_gridCredits-&gt;SetCellBackgroundColour(3, 0, headerColour);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_gridCredits-&gt;SetCellFont(3, 0, headerFont);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">// Caixeta</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_gridCredits-&gt;SetCellValue(4, 0, wxT(<span class="stringliteral">&quot;Geraldo Caixeta Guimar&quot;</span>) + static_cast&lt;wxString&gt;(L<span class="stringliteral">&#39;\u00E3&#39;</span>) + wxT(<span class="stringliteral">&quot;es&quot;</span>));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_gridCredits-&gt;SetCellValue(4, 1, _(<span class="stringliteral">&quot;Chief advisor&quot;</span>));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_gridCredits-&gt;SetCellValue(4, 2, wxT(<span class="stringliteral">&quot;gcaixeta@ufu.br&quot;</span>));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Marcio Tamashiro</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_gridCredits-&gt;SetCellValue(5, 0, wxT(<span class="stringliteral">&quot;M&quot;</span>) + static_cast&lt;wxString&gt;(L<span class="stringliteral">&#39;\u00E1&#39;</span>) + wxT(<span class="stringliteral">&quot;rcio Augusto Tamashiro&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_gridCredits-&gt;SetCellValue(5, 1, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_gridCredits-&gt;SetCellValue(5, 2, wxT(<span class="stringliteral">&quot;tamashiro@ifto.edu.br&quot;</span>));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_gridCredits-&gt;GetNumberRows(); ++i) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_gridCredits-&gt;SetCellTextColour(i, 2, hyperlinkColour);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_gridCredits-&gt;AutoSize();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Last col size</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">int</span> lastColSize = m_notebook-&gt;GetPage(1)-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">int</span> lastColNumber = m_gridCredits-&gt;GetNumberCols() - 1;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; lastColNumber; ++i) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; lastColSize -= m_gridCredits-&gt;GetColSize(i);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_gridCredits-&gt;SetColSize(lastColNumber, lastColSize);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_gridCredits-&gt;SetSize(m_notebook-&gt;GetPage(1)-&gt;GetSize());</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Load license file</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; wxString licenseStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxTextFile file;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(!file.Open(<span class="stringliteral">&quot;../data/LICENSE&quot;</span>)) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Error message</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; licenseStr += file.GetFirstLine() + <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">while</span>(!file.Eof()) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; licenseStr += file.GetNextLine() + <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; wxFont font = m_richTextCtrlLicense-&gt;GetFont();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; font.SetFamily(wxFONTFAMILY_TELETYPE);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_richTextCtrlLicense-&gt;SetFont(font);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_richTextCtrlLicense-&gt;SetEditable(<span class="keyword">false</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_richTextCtrlLicense-&gt;AppendText(licenseStr);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="ttc" id="class_about_form_base_html"><div class="ttname"><a href="class_about_form_base.html">AboutFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00169">PropertiesForm.h:169</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_about_form_8h.html">AboutForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;AboutForm::AboutForm(wxWindow* parent) : <a class="code" href="class_about_form_base.html">AboutFormBase</a>(parent) { Init(); }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;AboutForm::~AboutForm() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keywordtype">void</span> AboutForm::Init()</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// Create developers table</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_gridCredits-&gt;EnableGridLines(<span class="keyword">false</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxFont headerFont = m_gridCredits-&gt;GetDefaultCellFont();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; headerFont.SetWeight(wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; headerFont.SetPointSize(headerFont.GetPointSize() + 1);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxColour headerColour(200, 200, 200);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; wxColour hyperlinkColour(6, 69, 173);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_gridCredits-&gt;AppendCols(3);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_gridCredits-&gt;AppendRows(6);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_gridCredits-&gt;HideColLabels();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_gridCredits-&gt;HideRowLabels();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_gridCredits-&gt;SetCellSize(0, 0, 1, 3);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_gridCredits-&gt;SetCellSize(3, 0, 1, 3);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_gridCredits-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Developers&quot;</span>));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_gridCredits-&gt;SetCellAlignment(0, 0, wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_gridCredits-&gt;SetCellBackgroundColour(0, 0, headerColour);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_gridCredits-&gt;SetCellFont(0, 0, headerFont);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_gridCredits-&gt;SetCellValue(1, 0, wxT(<span class="stringliteral">&quot;Thales Lima Oliveira&quot;</span>));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_gridCredits-&gt;SetCellValue(1, 1, _(<span class="stringliteral">&quot;Main developer and project admin&quot;</span>));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_gridCredits-&gt;SetCellValue(1, 2, wxT(<span class="stringliteral">&quot;thales@ufu.br&quot;</span>));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_gridCredits-&gt;SetRowMinimalHeight(2, 30);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_gridCredits-&gt;SetCellValue(3, 0, _(<span class="stringliteral">&quot;Contributors / Special Thanks&quot;</span>));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_gridCredits-&gt;SetCellAlignment(3, 0, wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_gridCredits-&gt;SetCellBackgroundColour(3, 0, headerColour);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_gridCredits-&gt;SetCellFont(3, 0, headerFont);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Caixeta</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_gridCredits-&gt;SetCellValue(4, 0, wxT(<span class="stringliteral">&quot;Geraldo Caixeta Guimar&quot;</span>) + static_cast&lt;wxString&gt;(L<span class="stringliteral">&#39;\u00E3&#39;</span>) + wxT(<span class="stringliteral">&quot;es&quot;</span>));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_gridCredits-&gt;SetCellValue(4, 1, _(<span class="stringliteral">&quot;Chief advisor&quot;</span>));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_gridCredits-&gt;SetCellValue(4, 2, wxT(<span class="stringliteral">&quot;gcaixeta@ufu.br&quot;</span>));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Marcio Tamashiro</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_gridCredits-&gt;SetCellValue(5, 0, wxT(<span class="stringliteral">&quot;M&quot;</span>) + static_cast&lt;wxString&gt;(L<span class="stringliteral">&#39;\u00E1&#39;</span>) + wxT(<span class="stringliteral">&quot;rcio Augusto Tamashiro&quot;</span>));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_gridCredits-&gt;SetCellValue(5, 1, <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_gridCredits-&gt;SetCellValue(5, 2, wxT(<span class="stringliteral">&quot;tamashiro@ifto.edu.br&quot;</span>));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_gridCredits-&gt;GetNumberRows(); ++i) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_gridCredits-&gt;SetCellTextColour(i, 2, hyperlinkColour);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_gridCredits-&gt;AutoSize();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Last col size</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">int</span> lastColSize = m_notebook-&gt;GetPage(1)-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">int</span> lastColNumber = m_gridCredits-&gt;GetNumberCols() - 1;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; lastColNumber; ++i) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; lastColSize -= m_gridCredits-&gt;GetColSize(i);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_gridCredits-&gt;SetColSize(lastColNumber, lastColSize);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_gridCredits-&gt;SetSize(m_notebook-&gt;GetPage(1)-&gt;GetSize());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Load license file</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; wxString licenseStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxTextFile file;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxFileName fn(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; wxString licensePath = fn.GetPath() + <span class="stringliteral">&quot;\\..\\data\\LICENSE&quot;</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(!file.Open(licensePath)) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Error message</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; licenseStr += file.GetFirstLine() + <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">while</span>(!file.Eof()) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; licenseStr += file.GetNextLine() + <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; wxFont font = m_richTextCtrlLicense-&gt;GetFont();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; font.SetFamily(wxFONTFAMILY_TELETYPE);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_richTextCtrlLicense-&gt;SetFont(font);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_richTextCtrlLicense-&gt;SetEditable(<span class="keyword">false</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_richTextCtrlLicense-&gt;AppendText(licenseStr);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="ttc" id="_about_form_8h_html"><div class="ttname"><a href="_about_form_8h.html">AboutForm.h</a></div></div>
+<div class="ttc" id="class_about_form_base_html"><div class="ttname"><a href="class_about_form_base.html">AboutFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00169">PropertiesForm.h:169</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_about_form_8h.html b/docs/doxygen/html/_about_form_8h.html
new file mode 100644
index 0000000..1c822d8
--- /dev/null
+++ b/docs/doxygen/html/_about_form_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/AboutForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_about_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">AboutForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;PropertiesForm.h&quot;</code><br />
+<code>#include &lt;wx/textfile.h&gt;</code><br />
+<code>#include &lt;wx/stdpaths.h&gt;</code><br />
+</div>
+<p><a href="_about_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_about_form.html">AboutForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to show some informations. <a href="class_about_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_about_form_8h.html">AboutForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_about_form_8h_source.html b/docs/doxygen/html/_about_form_8h_source.html
index c967711..b4b7f5b 100644
--- a/docs/doxygen/html/_about_form_8h_source.html
+++ b/docs/doxygen/html/_about_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,14 +88,14 @@ $(document).ready(function(){initNavTree('_about_form_8h_source.html','');});
<div class="title">AboutForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ABOUTFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ABOUTFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_about_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_about_form.html">AboutForm</a> : <span class="keyword">public</span> <a class="code" href="class_about_form_base.html">AboutFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_about_form.html">AboutForm</a>(wxWindow* parent);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_about_form.html">AboutForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_OK); };</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;};</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#endif // ABOUTFORM_H</span></div><div class="ttc" id="class_about_form_base_html"><div class="ttname"><a href="class_about_form_base.html">AboutFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00169">PropertiesForm.h:169</a></div></div>
-<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00007">AboutForm.h:7</a></div></div>
+<a href="_about_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ABOUTFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ABOUTFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/stdpaths.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_about_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_about_form.html">AboutForm</a> : <span class="keyword">public</span> <a class="code" href="class_about_form_base.html">AboutFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_about_form.html">AboutForm</a>(wxWindow* parent);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_about_form.html">AboutForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_OK); };</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;};</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="preprocessor">#endif // ABOUTFORM_H</span></div><div class="ttc" id="class_about_form_base_html"><div class="ttname"><a href="class_about_form_base.html">AboutFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00169">PropertiesForm.h:169</a></div></div>
+<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdoc">Form to show some informations. </div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00032">AboutForm.h:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>AboutForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_about_form_8h.html">AboutForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_art_metro_8cpp_source.html b/docs/doxygen/html/_art_metro_8cpp_source.html
index b676214..a56d2ef 100644
--- a/docs/doxygen/html/_art_metro_8cpp_source.html
+++ b/docs/doxygen/html/_art_metro_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_art_metro_8h_source.html b/docs/doxygen/html/_art_metro_8h_source.html
index 70e39af..b64d1d2 100644
--- a/docs/doxygen/html/_art_metro_8h_source.html
+++ b/docs/doxygen/html/_art_metro_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_branch_8cpp_source.html b/docs/doxygen/html/_branch_8cpp_source.html
index 3d95db6..cdf0040 100644
--- a/docs/doxygen/html/_branch_8cpp_source.html
+++ b/docs/doxygen/html/_branch_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,18 +88,19 @@ $(document).ready(function(){initNavTree('_branch_8cpp_source.html','');});
<div class="title">Branch.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Branch.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Branch::Branch()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; : <a class="code" href="class_power_element.html">PowerElement</a>()</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;Branch::~Branch() {}</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_branch.html#a3a651769f183290af8a91494f5e9047b"> 8</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxRect2DDouble nodeRect1(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; wxRect2DDouble nodeRect2(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize, 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">if</span>(nodeRect1.Contains(position)) {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span>(nodeRect2.Contains(position)) {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_activeNodeID = 2;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;}</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875"> 28</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize, 10 + 2.0 * m_borderSize,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc"> 90</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[i]) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_parentList[i] = NULL;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35"> 101</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a>()</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; wxRect2DDouble nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize, 10 + 2.0 * m_borderSize,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df"> 128</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keywordtype">void</span> Branch::UpdateSwitchesPosition()</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_pointList[m_pointList.size() - 2] =</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; GetSwitchPoint(m_parentList[1], m_pointList[m_pointList.size() - 1], m_pointList[m_pointList.size() - 3]);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_pointList[m_pointList.size() - 2] = m_pointList[m_pointList.size() - 1];</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_branch.html#a0687f6a668e10dd442c5010649049706"> 157</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a>()</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; wxPoint2DDouble swCenter = wxPoint2DDouble(</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; (m_pointList[0].m_x + m_pointList[1].m_x) / 2.0, (m_pointList[0].m_y + m_pointList[1].m_y) / 2.0);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_switchRect[0] = wxRect2DDouble(</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0, m_switchSize, m_switchSize);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(m_switchRect.size() &gt; 1) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; swCenter =</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; wxPoint2DDouble((m_pointList[m_pointList.size() - 1].m_x + m_pointList[m_pointList.size() - 2].m_x) / 2.0,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; (m_pointList[m_pointList.size() - 1].m_y + m_pointList[m_pointList.size() - 2].m_y) / 2.0);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_switchRect[1] = wxRect2DDouble(</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0, m_switchSize, m_switchSize);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00090">Branch.cpp:90</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_branch_html_aaf64ea58631438e3a16b1b2ede793875"><div class="ttname"><a href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00028">Branch.cpp:28</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_branch_8h.html">Branch.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;Branch::Branch() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Branch::~Branch() {}</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_branch.html#a3a651769f183290af8a91494f5e9047b"> 22</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; wxRect2DDouble nodeRect1(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxRect2DDouble nodeRect2(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize, 10 + 2.0 * m_borderSize,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(nodeRect1.Contains(position)) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(nodeRect2.Contains(position)) {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_activeNodeID = 2;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875"> 43</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc"> 105</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[i]) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_parentList[i] = NULL;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35"> 116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a>()</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; wxRect2DDouble nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df"> 143</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;{</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;<span class="keywordtype">void</span> Branch::UpdateSwitchesPosition()</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_pointList[m_pointList.size() - 2] =</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; GetSwitchPoint(m_parentList[1], m_pointList[m_pointList.size() - 1], m_pointList[m_pointList.size() - 3]);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_pointList[m_pointList.size() - 2] = m_pointList[m_pointList.size() - 1];</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_branch.html#a0687f6a668e10dd442c5010649049706"> 172</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a>()</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; wxPoint2DDouble swCenter = wxPoint2DDouble((m_pointList[0].m_x + m_pointList[1].m_x) / 2.0,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; (m_pointList[0].m_y + m_pointList[1].m_y) / 2.0);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_switchRect[0] = wxRect2DDouble(swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0, m_switchSize,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_switchSize);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(m_switchRect.size() &gt; 1) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; swCenter =</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; wxPoint2DDouble((m_pointList[m_pointList.size() - 1].m_x + m_pointList[m_pointList.size() - 2].m_x) / 2.0,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; (m_pointList[m_pointList.size() - 1].m_y + m_pointList[m_pointList.size() - 2].m_y) / 2.0);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_switchRect[1] = wxRect2DDouble(swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0,</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_switchSize, m_switchSize);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00105">Branch.cpp:105</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_branch_html_aaf64ea58631438e3a16b1b2ede793875"><div class="ttname"><a href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00043">Branch.cpp:43</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_branch_html_a0687f6a668e10dd442c5010649049706"><div class="ttname"><a href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00157">Branch.cpp:157</a></div></div>
-<div class="ttc" id="class_branch_html_a31428bf54c5b95a7a2e63bbf60ef9e35"><div class="ttname"><a href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00101">Branch.cpp:101</a></div></div>
-<div class="ttc" id="class_branch_html_a3a651769f183290af8a91494f5e9047b"><div class="ttname"><a href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00008">Branch.cpp:8</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_branch_html_a190d3da81276751c5b9ab23c5d3f37df"><div class="ttname"><a href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00128">Branch.cpp:128</a></div></div>
+<div class="ttc" id="class_branch_html_a0687f6a668e10dd442c5010649049706"><div class="ttname"><a href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00172">Branch.cpp:172</a></div></div>
+<div class="ttc" id="_branch_8h_html"><div class="ttname"><a href="_branch_8h.html">Branch.h</a></div></div>
+<div class="ttc" id="class_branch_html_a31428bf54c5b95a7a2e63bbf60ef9e35"><div class="ttname"><a href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00116">Branch.cpp:116</a></div></div>
+<div class="ttc" id="class_branch_html_a3a651769f183290af8a91494f5e9047b"><div class="ttname"><a href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00022">Branch.cpp:22</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_branch_html_a190d3da81276751c5b9ab23c5d3f37df"><div class="ttname"><a href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00143">Branch.cpp:143</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_branch_8h.html b/docs/doxygen/html/_branch_8h.html
new file mode 100644
index 0000000..1f595ab
--- /dev/null
+++ b/docs/doxygen/html/_branch_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Branch.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_branch_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Branch.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_bus_8h_source.html">Bus.h</a>&quot;</code><br />
+</div>
+<p><a href="_branch_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_branch.html">Branch</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class for branch power elements. <a href="class_branch.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_branch_8h.html">Branch.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_branch_8h_source.html b/docs/doxygen/html/_branch_8h_source.html
index de27de5..9042af4 100644
--- a/docs/doxygen/html/_branch_8h_source.html
+++ b/docs/doxygen/html/_branch_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,33 +88,34 @@ $(document).ready(function(){initNavTree('_branch_8h_source.html','');});
<div class="title">Branch.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef BRANCH_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define BRANCH_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_branch.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_branch.html">Branch</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_branch.html">Branch</a>();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; ~<a class="code" href="class_branch.html">Branch</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8"> 13</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278"> 14</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const </span>{}</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Move</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64"> 16</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">StartMove</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a"> 17</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) {}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a3a651769f183290af8a91494f5e9047b">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">UpdateNodes</a>();</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e"> 22</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_ARROW; }</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1"> 23</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_branch.html#af7879ee138170b1421f745f1c942ea05"> 24</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#af7879ee138170b1421f745f1c942ea05">MovePickbox</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8"> 25</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">PickboxContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21"> 27</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">AddPoint</a>(wxPoint2DDouble point) {};</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088"> 28</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">GetContextMenu</a>(wxMenu&amp; menu) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a0687f6a668e10dd442c5010649049706">UpdateSwitches</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;};</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif // BRANCH_H</span></div><div class="ttc" id="class_branch_html_a7037f496f9b9c9e64c74eb638debe278"><div class="ttname"><a href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Branch::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00014">Branch.h:14</a></div></div>
-<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00090">Branch.cpp:90</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_branch_html_aaf64ea58631438e3a16b1b2ede793875"><div class="ttname"><a href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00028">Branch.cpp:28</a></div></div>
-<div class="ttc" id="class_branch_html_a6ddd901403c46f5d9aa179644467b088"><div class="ttname"><a href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">Branch::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00028">Branch.h:28</a></div></div>
-<div class="ttc" id="class_branch_html_af7879ee138170b1421f745f1c942ea05"><div class="ttname"><a href="class_branch.html#af7879ee138170b1421f745f1c942ea05">Branch::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00024">Branch.h:24</a></div></div>
-<div class="ttc" id="class_branch_html_a947cec45fcdc78d01eaabe19d23daf64"><div class="ttname"><a href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00016">Branch.h:16</a></div></div>
-<div class="ttc" id="class_branch_html_a0687f6a668e10dd442c5010649049706"><div class="ttname"><a href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00157">Branch.cpp:157</a></div></div>
-<div class="ttc" id="class_branch_html_a691f94c3cd2abe1274e870d2882634d8"><div class="ttname"><a href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Branch::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00013">Branch.h:13</a></div></div>
-<div class="ttc" id="class_branch_html_a8d6d80c50f849c5be2bccffd5b524e21"><div class="ttname"><a href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">Branch::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00027">Branch.h:27</a></div></div>
-<div class="ttc" id="class_branch_html_aa23b1014c947e46996f1c0c4caa187e1"><div class="ttname"><a href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Branch::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00023">Branch.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_branch_html_a31428bf54c5b95a7a2e63bbf60ef9e35"><div class="ttname"><a href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00101">Branch.cpp:101</a></div></div>
-<div class="ttc" id="class_branch_html_a3a651769f183290af8a91494f5e9047b"><div class="ttname"><a href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00008">Branch.cpp:8</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_branch_html_a88ab67c930d37daa723c94d7e59a5cf8"><div class="ttname"><a href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">Branch::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00025">Branch.h:25</a></div></div>
-<div class="ttc" id="class_branch_html_a7cf4b117f43f49bb76cce3df5521fb70"><div class="ttname"><a href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00015">Branch.h:15</a></div></div>
-<div class="ttc" id="class_branch_html_a190d3da81276751c5b9ab23c5d3f37df"><div class="ttname"><a href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00128">Branch.cpp:128</a></div></div>
-<div class="ttc" id="class_branch_html_aef2ffe79c9b239fb5a1ad175555a9f5a"><div class="ttname"><a href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">Branch::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00017">Branch.h:17</a></div></div>
-<div class="ttc" id="class_branch_html_a62418f767cc9bb894d6b7cc73645e43e"><div class="ttname"><a href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">Branch::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00022">Branch.h:22</a></div></div>
-<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00007">Branch.h:7</a></div></div>
+<a href="_branch_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef BRANCH_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define BRANCH_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_branch.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_branch.html">Branch</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_branch.html">Branch</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; ~<a class="code" href="class_branch.html">Branch</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8"> 37</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278"> 38</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const </span>{}</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Move</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64"> 40</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">StartMove</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a"> 41</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) {}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a3a651769f183290af8a91494f5e9047b">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">UpdateNodes</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e"> 46</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_ARROW; }</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1"> 47</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_branch.html#af7879ee138170b1421f745f1c942ea05"> 48</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#af7879ee138170b1421f745f1c942ea05">MovePickbox</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8"> 49</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">PickboxContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21"> 51</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">AddPoint</a>(wxPoint2DDouble point){};</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088"> 52</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">GetContextMenu</a>(wxMenu&amp; menu) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_branch.html#a0687f6a668e10dd442c5010649049706">UpdateSwitches</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif // BRANCH_H</span></div><div class="ttc" id="class_branch_html_a7037f496f9b9c9e64c74eb638debe278"><div class="ttname"><a href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Branch::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00038">Branch.h:38</a></div></div>
+<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00105">Branch.cpp:105</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_branch_html_aaf64ea58631438e3a16b1b2ede793875"><div class="ttname"><a href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00043">Branch.cpp:43</a></div></div>
+<div class="ttc" id="class_branch_html_a6ddd901403c46f5d9aa179644467b088"><div class="ttname"><a href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">Branch::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00052">Branch.h:52</a></div></div>
+<div class="ttc" id="class_branch_html_af7879ee138170b1421f745f1c942ea05"><div class="ttname"><a href="class_branch.html#af7879ee138170b1421f745f1c942ea05">Branch::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00048">Branch.h:48</a></div></div>
+<div class="ttc" id="class_branch_html_a947cec45fcdc78d01eaabe19d23daf64"><div class="ttname"><a href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00040">Branch.h:40</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_branch_html_a0687f6a668e10dd442c5010649049706"><div class="ttname"><a href="class_branch.html#a0687f6a668e10dd442c5010649049706">Branch::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00172">Branch.cpp:172</a></div></div>
+<div class="ttc" id="class_branch_html_a691f94c3cd2abe1274e870d2882634d8"><div class="ttname"><a href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Branch::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00037">Branch.h:37</a></div></div>
+<div class="ttc" id="class_branch_html_a8d6d80c50f849c5be2bccffd5b524e21"><div class="ttname"><a href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">Branch::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00051">Branch.h:51</a></div></div>
+<div class="ttc" id="class_branch_html_aa23b1014c947e46996f1c0c4caa187e1"><div class="ttname"><a href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Branch::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00047">Branch.h:47</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_branch_html_a31428bf54c5b95a7a2e63bbf60ef9e35"><div class="ttname"><a href="class_branch.html#a31428bf54c5b95a7a2e63bbf60ef9e35">Branch::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00116">Branch.cpp:116</a></div></div>
+<div class="ttc" id="class_branch_html_a3a651769f183290af8a91494f5e9047b"><div class="ttname"><a href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00022">Branch.cpp:22</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_branch_html_a88ab67c930d37daa723c94d7e59a5cf8"><div class="ttname"><a href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">Branch::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00049">Branch.h:49</a></div></div>
+<div class="ttc" id="class_branch_html_a7cf4b117f43f49bb76cce3df5521fb70"><div class="ttname"><a href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00039">Branch.h:39</a></div></div>
+<div class="ttc" id="class_branch_html_a190d3da81276751c5b9ab23c5d3f37df"><div class="ttname"><a href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00143">Branch.cpp:143</a></div></div>
+<div class="ttc" id="class_branch_html_aef2ffe79c9b239fb5a1ad175555a9f5a"><div class="ttname"><a href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">Branch::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00041">Branch.h:41</a></div></div>
+<div class="ttc" id="class_branch_html_a62418f767cc9bb894d6b7cc73645e43e"><div class="ttname"><a href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">Branch::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00046">Branch.h:46</a></div></div>
+<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdoc">Abstract class for branch power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00031">Branch.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Branch.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_branch_8h.html">Branch.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_bus_8cpp_source.html b/docs/doxygen/html/_bus_8cpp_source.html
index e2caea0..cd7c2f2 100644
--- a/docs/doxygen/html/_bus_8cpp_source.html
+++ b/docs/doxygen/html/_bus_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,37 +88,38 @@ $(document).ready(function(){initNavTree('_bus_8cpp_source.html','');});
<div class="title">Bus.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;Bus::Bus() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;Bus::Bus(wxPoint2DDouble position) : <a class="code" href="class_power_element.html">PowerElement</a>()</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_width = 100.0;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_height = 5.0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(position);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;Bus::Bus(wxPoint2DDouble position, wxString name)</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_width = 100.0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_height = 5.0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(position);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Bus::~Bus() {}</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_bus.html#ae9022ca29399377d2fe0082bb762107c"> 24</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ae9022ca29399377d2fe0082bb762107c">Bus::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// Draw selection (layer 1)</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// If the object is selected, the matrix is reset to remove scale effects applied to it, thus keeping the</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// edges with fixed sizes for all zoom levels.</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; glPushMatrix();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// The matrix was reset, so we must use screen coordinates (WorldToScreen).</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; wxPoint2DDouble screenPt = <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; glTranslated(screenPt.m_x, screenPt.m_y, 0.0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxPoint2DDouble pts[4] = {<a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -(m_width / 2.0), -(m_height / 2.0)) -</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; wxPoint2DDouble(m_borderSize, m_borderSize),</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -(m_width / 2.0), (m_height / 2.0)) -</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxPoint2DDouble(m_borderSize, -m_borderSize),</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, (m_width / 2.0), (m_height / 2.0)) -</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxPoint2DDouble(-m_borderSize, -m_borderSize),</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, (m_width / 2.0), -(m_height / 2.0)) -</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxPoint2DDouble(-m_borderSize, m_borderSize)};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(pts);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; glPopMatrix();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Draw bus (layer 2)</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; glPushMatrix();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glColor4dv(m_dynamicEventColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glColor4dv(m_busColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="comment">// Pop the old matrix back.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glPopMatrix();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Draw pickbox (layer 3)</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_showPickbox) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glPushMatrix();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxPoint2DDouble screenPt = <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glTranslated(screenPt.m_x, screenPt.m_y, 0.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; wxPoint2DDouble pbPosition[2] = {<a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, m_width / 2.0),</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -m_width / 2.0)};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">DrawPickbox</a>(pbPosition[0]);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">DrawPickbox</a>(pbPosition[1]);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glPopMatrix();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3"> 87</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3">Bus::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf"> 93</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf">Bus::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">RotatedRectanglesIntersects</a>(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b"> 100</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b">Bus::PickboxContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxPoint2DDouble center(m_position.m_x + m_width / 2.0, m_position.m_y);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxRect2DDouble rectRight(center.m_x - 5.0, center.m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; center = wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; wxRect2DDouble rectLeft(center.m_x - 5.0, center.m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(rectRight.Contains(ptR)) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(rectLeft.Contains(ptR)) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345"> 124</a></span>&#160;wxCursor <a class="code" href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345">Bus::GetBestPickboxCursor</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">double</span> angle = m_angle;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">while</span>(angle &gt;= 157.5) angle -= 180.0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(angle &gt;= -22.5 &amp;&amp; angle &lt; 22.5)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZEWE);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 22.5 &amp;&amp; angle &lt; 67.5)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENWSE);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 67.5 &amp;&amp; angle &lt; 112.5)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENS);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 112.5 &amp;&amp; angle &lt; 157.5)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENESW);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_bus.html#ad569e2192bf95efe668d401583382a04"> 141</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ad569e2192bf95efe668d401583382a04">Bus::MovePickbox</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">double</span> dx = 0.0;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; dx = ptR.m_x - m_position.m_x - m_width / 2.0;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; dx = m_position.m_x - m_width / 2.0 - ptR.m_x;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(m_width + dx &lt; 20.0) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_position.m_x += (dx / 2.0) * std::cos(wxDegToRad(m_angle));</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_position.m_y += (dx / 2.0) * std::sin(wxDegToRad(m_angle));</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_position.m_x -= (dx / 2.0) * std::cos(wxDegToRad(m_angle));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_position.m_y -= (dx / 2.0) * std::sin(wxDegToRad(m_angle));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_width += dx;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791"> 167</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057"> 176</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057">Bus::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit bus&quot;</span>));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">GeneralMenuItens</a>(menu);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0"> 183</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="class_bus_form.html">BusForm</a>* busForm = <span class="keyword">new</span> <a class="code" href="class_bus_form.html">BusForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(busForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; busForm-&gt;Destroy();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; busForm-&gt;Destroy();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c"> 195</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus::GetCopy</a>()</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="class_bus.html">Bus</a>* copy = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70"> 201</a></span>&#160;wxString <a class="code" href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70">Bus::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; tipText += wxString::Format(<span class="stringliteral">&quot; (%d)&quot;</span>, m_electricalData.number + 1);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; tipText += <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(m_electricalData.nominalVoltage, 1) +</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; (m_electricalData.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a> ? _(<span class="stringliteral">&quot; V&quot;</span>) : _(<span class="stringliteral">&quot; kV&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; tipText += _(<span class="stringliteral">&quot;\nV = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.voltage), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; tipText += wxString(L<span class="stringliteral">&#39;\u03B8&#39;</span>) + <span class="stringliteral">&quot; = &quot;</span> + wxString::FromDouble(wxRadToDeg(std::arg(m_electricalData.voltage)), 5) +</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="stringliteral">&quot; &quot;</span> + wxString(L<span class="stringliteral">&#39;\u00B0&#39;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; tipText += _(<span class="stringliteral">&quot;\n\nFault info:&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVa = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[0]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVb = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[1]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[2]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(m_electricalData.hasFault) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIa = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[0]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIb = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[1]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[2]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; tipText += _(<span class="stringliteral">&quot;\n\nSsc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.scPower), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;}</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"><a class="line" href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a"> 229</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a">Bus::GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(!m_electricalData.plotBus) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; plotData.SetName(m_electricalData.name);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; plotData.SetCurveType(ElementPlotData::CT_BUS);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; std::vector&lt;double&gt; absVoltage, argVoltage;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_electricalData.stabVoltageVector.size(); ++i) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; absVoltage.push_back(std::abs(m_electricalData.stabVoltageVector[i]));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; argVoltage.push_back(wxRadToDeg(std::arg(m_electricalData.stabVoltageVector[i])));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; plotData.AddData(absVoltage, _(<span class="stringliteral">&quot;Voltage&quot;</span>));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; plotData.AddData(argVoltage, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="ttc" id="class_bus_html_a93dbd8f80b11123395093f561d5241d0"><div class="ttname"><a href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00183">Bus.cpp:183</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_bus_html_ad569e2192bf95efe668d401583382a04"><div class="ttname"><a href="class_bus.html#ad569e2192bf95efe668d401583382a04">Bus::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00141">Bus.cpp:141</a></div></div>
-<div class="ttc" id="class_element_html_abfee7ea88f4689c2a6eb4d39452f84d8"><div class="ttname"><a href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a></div><div class="ttdeci">virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const</div><div class="ttdoc">Convert the element position to screen position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00109">Element.cpp:109</a></div></div>
-<div class="ttc" id="class_bus_html_a0cf17a7aec23d436ff1eeb9834eb2b70"><div class="ttname"><a href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70">Bus::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00201">Bus.cpp:201</a></div></div>
-<div class="ttc" id="class_bus_html_ae731d57078982f0bd08e92e6a24f3057"><div class="ttname"><a href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057">Bus::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00176">Bus.cpp:176</a></div></div>
-<div class="ttc" id="class_bus_html_ae9022ca29399377d2fe0082bb762107c"><div class="ttname"><a href="class_bus.html#ae9022ca29399377d2fe0082bb762107c">Bus::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00024">Bus.cpp:24</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="class_bus_form_html"><div class="ttname"><a href="class_bus_form.html">BusForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_form_8h_source.html#l00007">BusForm.h:7</a></div></div>
-<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00053">Element.cpp:53</a></div></div>
-<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00228">Element.cpp:228</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_bus_html_a1ccb74b15ba07f867f2d73b976577e2a"><div class="ttname"><a href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a">Bus::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00229">Bus.cpp:229</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="class_bus_html_ac43fc37f8c8a8bc120d9a4bb68da3345"><div class="ttname"><a href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345">Bus::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00124">Bus.cpp:124</a></div></div>
-<div class="ttc" id="class_element_html_ad1d0d803fe522d030e2be8dc99eb9b39"><div class="ttname"><a href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a></div><div class="ttdeci">virtual void DrawPickbox(wxPoint2DDouble position) const</div><div class="ttdoc">Draw pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00082">Element.cpp:82</a></div></div>
-<div class="ttc" id="class_bus_html_ace039d00c23d36a7c14d7e4155c94791"><div class="ttname"><a href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00167">Bus.cpp:167</a></div></div>
-<div class="ttc" id="class_bus_html_a0b8f3ed6e0049dafca8c52358f96bf4b"><div class="ttname"><a href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b">Bus::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00100">Bus.cpp:100</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00021">Element.h:21</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00020">Element.h:20</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_bus_html_a4288c4c84c8840705c3ce6ccd42e578c"><div class="ttname"><a href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00195">Bus.cpp:195</a></div></div>
-<div class="ttc" id="class_bus_html_ad2b960058be6e990463b53d79c74c7a3"><div class="ttname"><a href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3">Bus::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00087">Bus.cpp:87</a></div></div>
-<div class="ttc" id="class_bus_html_a5014be68f4bb5d8f1a1ea861b03bacdf"><div class="ttname"><a href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf">Bus::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00093">Bus.cpp:93</a></div></div>
-<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00132">Element.cpp:132</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00019">Element.h:19</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Bus::Bus() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Bus::Bus(wxPoint2DDouble position) : <a class="code" href="class_power_element.html">PowerElement</a>()</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_width = 100.0;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_height = 5.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(position);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;Bus::Bus(wxPoint2DDouble position, wxString name)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_width = 100.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_height = 5.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(position);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;Bus::~Bus() {}</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_bus.html#ae9022ca29399377d2fe0082bb762107c"> 41</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ae9022ca29399377d2fe0082bb762107c">Bus::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// Draw selection (layer 1)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// If the object is selected, the matrix is reset to remove scale effects applied to it, thus keeping the</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// edges with fixed sizes for all zoom levels.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; glPushMatrix();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// The matrix was reset, so we must use screen coordinates (WorldToScreen).</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; wxPoint2DDouble screenPt = <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glTranslated(screenPt.m_x, screenPt.m_y, 0.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; wxPoint2DDouble pts[4] = {<a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -(m_width / 2.0), -(m_height / 2.0)) -</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxPoint2DDouble(m_borderSize, m_borderSize),</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -(m_width / 2.0), (m_height / 2.0)) -</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxPoint2DDouble(m_borderSize, -m_borderSize),</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, (m_width / 2.0), (m_height / 2.0)) -</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxPoint2DDouble(-m_borderSize, -m_borderSize),</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, (m_width / 2.0), -(m_height / 2.0)) -</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; wxPoint2DDouble(-m_borderSize, m_borderSize)};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(pts);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glPopMatrix();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Draw bus (layer 2)</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glPushMatrix();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; glColor4dv(m_dynamicEventColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glColor4dv(m_busColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Pop the old matrix back.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glPopMatrix();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Draw pickbox (layer 3)</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(m_showPickbox) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glPushMatrix();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; wxPoint2DDouble screenPt = <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glTranslated(screenPt.m_x, screenPt.m_y, 0.0);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; glTranslated(-screenPt.m_x, -screenPt.m_y, 0.0);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; wxPoint2DDouble pbPosition[2] = {<a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, m_width / 2.0),</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">WorldToScreen</a>(translation, scale, -m_width / 2.0)};</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">DrawPickbox</a>(pbPosition[0]);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">DrawPickbox</a>(pbPosition[1]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glPopMatrix();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3"> 104</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3">Bus::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf"> 110</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf">Bus::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">RotatedRectanglesIntersects</a>(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b"> 117</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b">Bus::PickboxContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; wxPoint2DDouble center(m_position.m_x + m_width / 2.0, m_position.m_y);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; wxRect2DDouble rectRight(center.m_x - 5.0, center.m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; center = wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; wxRect2DDouble rectLeft(center.m_x - 5.0, center.m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(rectRight.Contains(ptR)) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(rectLeft.Contains(ptR)) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345"> 141</a></span>&#160;wxCursor <a class="code" href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345">Bus::GetBestPickboxCursor</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">double</span> angle = m_angle;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">while</span>(angle &gt;= 157.5) angle -= 180.0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(angle &gt;= -22.5 &amp;&amp; angle &lt; 22.5)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZEWE);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 22.5 &amp;&amp; angle &lt; 67.5)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENWSE);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 67.5 &amp;&amp; angle &lt; 112.5)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENS);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(angle &gt;= 112.5 &amp;&amp; angle &lt; 157.5)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_SIZENESW);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> wxCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_bus.html#ad569e2192bf95efe668d401583382a04"> 158</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ad569e2192bf95efe668d401583382a04">Bus::MovePickbox</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">double</span> dx = 0.0;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; dx = ptR.m_x - m_position.m_x - m_width / 2.0;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; dx = m_position.m_x - m_width / 2.0 - ptR.m_x;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(m_width + dx &lt; 20.0) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_position.m_x += (dx / 2.0) * std::cos(wxDegToRad(m_angle));</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_position.m_y += (dx / 2.0) * std::sin(wxDegToRad(m_angle));</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_position.m_x -= (dx / 2.0) * std::cos(wxDegToRad(m_angle));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_position.m_y -= (dx / 2.0) * std::sin(wxDegToRad(m_angle));</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_width += dx;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791"> 184</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057"> 193</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057">Bus::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit bus&quot;</span>));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">GeneralMenuItens</a>(menu);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"><a class="line" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0"> 200</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;{</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_bus_form.html">BusForm</a>* busForm = <span class="keyword">new</span> <a class="code" href="class_bus_form.html">BusForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(busForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; busForm-&gt;Destroy();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; busForm-&gt;Destroy();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c"> 212</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus::GetCopy</a>()</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="class_bus.html">Bus</a>* copy = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;}</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70"> 218</a></span>&#160;wxString <a class="code" href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70">Bus::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tipText += wxString::Format(<span class="stringliteral">&quot; (%d)&quot;</span>, m_electricalData.number + 1);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; tipText += <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(m_electricalData.nominalVoltage, 1) +</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; (m_electricalData.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a> ? _(<span class="stringliteral">&quot; V&quot;</span>) : _(<span class="stringliteral">&quot; kV&quot;</span>));</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; tipText += _(<span class="stringliteral">&quot;\nV = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.voltage), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; tipText += wxString(L<span class="stringliteral">&#39;\u03B8&#39;</span>) + <span class="stringliteral">&quot; = &quot;</span> + wxString::FromDouble(wxRadToDeg(std::arg(m_electricalData.voltage)), 5) +</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="stringliteral">&quot; &quot;</span> + wxString(L<span class="stringliteral">&#39;\u00B0&#39;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; tipText += _(<span class="stringliteral">&quot;\n\nFault info:&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVa = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[0]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVb = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[1]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; tipText += _(<span class="stringliteral">&quot;\nVc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultVoltage[2]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(m_electricalData.hasFault) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIa = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[0]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIb = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[1]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; tipText += _(<span class="stringliteral">&quot;\nIc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.faultCurrent[2]), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; tipText += _(<span class="stringliteral">&quot;\n\nSsc = &quot;</span>) + wxString::FromDouble(std::abs(m_electricalData.scPower), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;}</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"><a class="line" href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a"> 246</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a">Bus::GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData)</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;{</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(!m_electricalData.plotBus) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; plotData.SetName(m_electricalData.name);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; plotData.SetCurveType(ElementPlotData::CT_BUS);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; std::vector&lt;double&gt; absVoltage, argVoltage;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_electricalData.stabVoltageVector.size(); ++i) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; absVoltage.push_back(std::abs(m_electricalData.stabVoltageVector[i]));</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; argVoltage.push_back(wxRadToDeg(std::arg(m_electricalData.stabVoltageVector[i])));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; plotData.AddData(absVoltage, _(<span class="stringliteral">&quot;Voltage&quot;</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; plotData.AddData(argVoltage, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;}</div><div class="ttc" id="class_bus_html_a93dbd8f80b11123395093f561d5241d0"><div class="ttname"><a href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00200">Bus.cpp:200</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_bus_html_ad569e2192bf95efe668d401583382a04"><div class="ttname"><a href="class_bus.html#ad569e2192bf95efe668d401583382a04">Bus::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00158">Bus.cpp:158</a></div></div>
+<div class="ttc" id="class_element_html_abfee7ea88f4689c2a6eb4d39452f84d8"><div class="ttname"><a href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a></div><div class="ttdeci">virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const</div><div class="ttdoc">Convert the element position to screen position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00124">Element.cpp:124</a></div></div>
+<div class="ttc" id="class_bus_html_a0cf17a7aec23d436ff1eeb9834eb2b70"><div class="ttname"><a href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70">Bus::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00218">Bus.cpp:218</a></div></div>
+<div class="ttc" id="class_bus_html_ae731d57078982f0bd08e92e6a24f3057"><div class="ttname"><a href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057">Bus::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00193">Bus.cpp:193</a></div></div>
+<div class="ttc" id="class_bus_html_ae9022ca29399377d2fe0082bb762107c"><div class="ttname"><a href="class_bus.html#ae9022ca29399377d2fe0082bb762107c">Bus::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00041">Bus.cpp:41</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="class_bus_form_html"><div class="ttname"><a href="class_bus_form.html">BusForm</a></div><div class="ttdoc">Form to edit the bus power data. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_form_8h_source.html#l00031">BusForm.h:31</a></div></div>
+<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00069">Element.cpp:69</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00245">Element.cpp:245</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_bus_html_a1ccb74b15ba07f867f2d73b976577e2a"><div class="ttname"><a href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a">Bus::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00246">Bus.cpp:246</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="class_bus_html_ac43fc37f8c8a8bc120d9a4bb68da3345"><div class="ttname"><a href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345">Bus::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00141">Bus.cpp:141</a></div></div>
+<div class="ttc" id="class_element_html_ad1d0d803fe522d030e2be8dc99eb9b39"><div class="ttname"><a href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a></div><div class="ttdeci">virtual void DrawPickbox(wxPoint2DDouble position) const</div><div class="ttdoc">Draw pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00098">Element.cpp:98</a></div></div>
+<div class="ttc" id="class_bus_html_ace039d00c23d36a7c14d7e4155c94791"><div class="ttname"><a href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00184">Bus.cpp:184</a></div></div>
+<div class="ttc" id="class_bus_html_a0b8f3ed6e0049dafca8c52358f96bf4b"><div class="ttname"><a href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b">Bus::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00117">Bus.cpp:117</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00040">Element.h:40</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00039">Element.h:39</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_bus_html_a4288c4c84c8840705c3ce6ccd42e578c"><div class="ttname"><a href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00212">Bus.cpp:212</a></div></div>
+<div class="ttc" id="class_bus_html_ad2b960058be6e990463b53d79c74c7a3"><div class="ttname"><a href="class_bus.html#ad2b960058be6e990463b53d79c74c7a3">Bus::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00104">Bus.cpp:104</a></div></div>
+<div class="ttc" id="class_bus_html_a5014be68f4bb5d8f1a1ea861b03bacdf"><div class="ttname"><a href="class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf">Bus::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00110">Bus.cpp:110</a></div></div>
+<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00147">Element.cpp:147</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_bus_8h.html b/docs/doxygen/html/_bus_8h.html
new file mode 100644
index 0000000..b589e3e
--- /dev/null
+++ b/docs/doxygen/html/_bus_8h.html
@@ -0,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Bus.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_bus_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Bus.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_bus_form_8h_source.html">BusForm.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_bus_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_bus_electrical_data.html">BusElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bus.html">Bus</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> for power elements. All others power elements are connected through this. <a href="class_bus.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_bus_8h.html">Bus.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_bus_8h_source.html b/docs/doxygen/html/_bus_8h_source.html
index 741c991..970bebe 100644
--- a/docs/doxygen/html/_bus_8h_source.html
+++ b/docs/doxygen/html/_bus_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,24 +88,25 @@ $(document).ready(function(){initNavTree('_bus_8h_source.html','');});
<div class="title">Bus.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef BUS_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define BUS_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;BusForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="struct_bus_electrical_data.html"> 7</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keywordtype">int</span> number = 0;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 138.0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">bool</span> isVoltageControlled = <span class="keyword">false</span>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">double</span> controlledVoltage = 1.0;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">int</span> controlledVoltageUnitChoice = 0; <span class="comment">// 0 = p.u., 1 = same as nominalVoltageUnit (UNIT_V or UNIT_kV).</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">bool</span> slackBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; std::complex&lt;double&gt; voltage = std::complex&lt;double&gt;(1.0, 0.0);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; std::complex&lt;double&gt; power = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">int</span> busType = 2; <span class="comment">// PQ</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">bool</span> hasFault = <span class="keyword">false</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> faultResistance = 0.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> faultReactance = 0.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::complex&lt;double&gt; faultVoltage[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> scPower = 0.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> plotBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">bool</span> stabHasFault = <span class="keyword">false</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> stabFaultTime = 0.0;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> stabFaultLength = 0.0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> stabFaultResistance = 0.0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">double</span> stabFaultReactance = 0.0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; stabVoltageVector;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;};</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_bus.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble position, wxString name);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; ~<a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_bus.html#ab046baebe4bfe0a52905148d78f44681"> 53</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ab046baebe4bfe0a52905148d78f44681">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> wxCursor GetBestPickboxCursor() <span class="keyword">const</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MovePickbox(wxPoint2DDouble position);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> PickboxContains(wxPoint2DDouble position);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetPlotData(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> m_electricalData;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif // BUS_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_bus_html_ab046baebe4bfe0a52905148d78f44681"><div class="ttname"><a href="class_bus.html#ab046baebe4bfe0a52905148d78f44681">Bus::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00053">Bus.h:53</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
+<a href="_bus_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef BUS_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define BUS_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_form_8h.html">BusForm.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="struct_bus_electrical_data.html"> 24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">int</span> number = 0;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 138.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">bool</span> isVoltageControlled = <span class="keyword">false</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> controlledVoltage = 1.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">int</span> controlledVoltageUnitChoice = 0; <span class="comment">// 0 = p.u., 1 = same as nominalVoltageUnit (UNIT_V or UNIT_kV).</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> slackBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; std::complex&lt;double&gt; voltage = std::complex&lt;double&gt;(1.0, 0.0);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; std::complex&lt;double&gt; power = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">int</span> busType = 2; <span class="comment">// PQ</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">bool</span> hasFault = <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> faultResistance = 0.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> faultReactance = 0.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::complex&lt;double&gt; faultVoltage[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> scPower = 0.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">bool</span> plotBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">bool</span> stabHasFault = <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> stabFaultTime = 0.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> stabFaultLength = 0.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> stabFaultResistance = 0.0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> stabFaultReactance = 0.0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; stabVoltageVector;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;};</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_bus.html"> 69</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble position, wxString name);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; ~<a class="code" href="class_bus.html">Bus</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_bus.html#ab046baebe4bfe0a52905148d78f44681"> 77</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_bus.html#ab046baebe4bfe0a52905148d78f44681">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">true</span>; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> wxCursor GetBestPickboxCursor() <span class="keyword">const</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MovePickbox(wxPoint2DDouble position);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> PickboxContains(wxPoint2DDouble position);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetPlotData(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> m_electricalData;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;};</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="preprocessor">#endif // BUS_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00055">PowerElement.h:55</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_bus_form_8h_html"><div class="ttname"><a href="_bus_form_8h.html">BusForm.h</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00060">PowerElement.h:60</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00056">PowerElement.h:56</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_bus_html_ab046baebe4bfe0a52905148d78f44681"><div class="ttname"><a href="class_bus.html#ab046baebe4bfe0a52905148d78f44681">Bus::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00077">Bus.h:77</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Bus.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_bus_8h.html">Bus.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_bus_form_8cpp_source.html b/docs/doxygen/html/_bus_form_8cpp_source.html
index 691a10a..0be2845 100644
--- a/docs/doxygen/html/_bus_form_8cpp_source.html
+++ b/docs/doxygen/html/_bus_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,21 @@ $(document).ready(function(){initNavTree('_bus_form_8cpp_source.html','');});
<div class="title">BusForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;BusForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;BusForm::BusForm(wxWindow* parent, <a class="code" href="class_bus.html">Bus</a>* bus) : <a class="code" href="class_bus_form_base.html">BusFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_choiceFaultType-&gt;SetString(0, _(<span class="stringliteral">&quot;Three-phase&quot;</span>));</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_choiceFaultType-&gt;SetString(1, _(<span class="stringliteral">&quot;Line-to-line&quot;</span>));</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_choiceFaultType-&gt;SetString(2, _(<span class="stringliteral">&quot;Double line-to-ground&quot;</span>));</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_choiceFaultType-&gt;SetString(3, _(<span class="stringliteral">&quot;Line-to-ground&quot;</span>));</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; </div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_parent = parent;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_bus = bus;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_textCtrlName-&gt;SetValue(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_textCtrlNomVoltage-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().nominalVoltage));</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span>(bus-&gt;GetElectricalData().nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>)</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_choiceNomVoltage-&gt;SetSelection(0);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_choiceNomVoltage-&gt;SetSelection(1);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_checkBoxCtrlVoltage-&gt;SetValue(bus-&gt;GetElectricalData().isVoltageControlled);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_textCtrlCtrlVoltage-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().controlledVoltage));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceCtrlVoltage-&gt;SetSelection(bus-&gt;GetElectricalData().controlledVoltageUnitChoice);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_checkBoxSlackBus-&gt;SetValue(bus-&gt;GetElectricalData().slackBus);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_checkBoxFault-&gt;SetValue(bus-&gt;GetElectricalData().hasFault);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">switch</span>(bus-&gt;GetElectricalData().faultType) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>: {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceFaultType-&gt;SetSelection(0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>: {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_choiceFaultType-&gt;SetSelection(1);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>: {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_choiceFaultType-&gt;SetSelection(2);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_choiceFaultType-&gt;SetSelection(3);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">switch</span>(bus-&gt;GetElectricalData().faultLocation) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_choiceFaultPlace-&gt;SetSelection(0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_choiceFaultPlace-&gt;SetSelection(1);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_choiceFaultPlace-&gt;SetSelection(2);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_textCtrlFaultResistance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().faultResistance));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_textCtrlFaultReactance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().faultReactance));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_checkBoxPlotData-&gt;SetValue(bus-&gt;GetElectricalData().plotBus);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_checkBoxStabFault-&gt;SetValue(bus-&gt;GetElectricalData().stabHasFault);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_textCtrlStabFaultTime-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultTime));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_textCtrlStabFaultLength-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultLength));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_textCtrlStabFaultResistance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultResistance));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_textCtrlStabFaultReactance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultReactance));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; EnableCtrlVoltageFields(bus-&gt;GetElectricalData().isVoltageControlled);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; EnableFaultFields(bus-&gt;GetElectricalData().hasFault);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; EnableStabFaultFields(bus-&gt;GetElectricalData().stabHasFault);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;BusForm::~BusForm() {}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keywordtype">void</span> BusForm::OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keywordtype">void</span> BusForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = m_bus-&gt;GetElectricalData();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlNomVoltage-&gt;GetValue(), data.nominalVoltage,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Rated voltage\&quot;.&quot;</span>)))</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.nominalVoltageUnit = m_choiceNomVoltage-&gt;GetSelection() == 0 ? <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a> : <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; data.isVoltageControlled = m_checkBoxCtrlVoltage-&gt;GetValue();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(data.isVoltageControlled) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlCtrlVoltage-&gt;GetValue(), data.controlledVoltage,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Controlled voltage\&quot;.&quot;</span>)))</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; data.controlledVoltageUnitChoice = m_choiceCtrlVoltage-&gt;GetSelection();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; data.slackBus = m_checkBoxSlackBus-&gt;GetValue();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.hasFault = m_checkBoxFault-&gt;GetValue();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultType-&gt;GetSelection()) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultPlace-&gt;GetSelection()) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlFaultResistance-&gt;GetValue(), data.faultResistance,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlFaultReactance-&gt;GetValue(), data.faultReactance,</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; data.plotBus = m_checkBoxPlotData-&gt;GetValue();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; data.stabHasFault = m_checkBoxStabFault-&gt;GetValue();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultTime-&gt;GetValue(), data.stabFaultTime,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultLength-&gt;GetValue(), data.stabFaultLength,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault lenght\&quot;.&quot;</span>)))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultResistance-&gt;GetValue(), data.stabFaultResistance,</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault resistence (stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultReactance-&gt;GetValue(), data.stabFaultReactance,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault reactance (stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault)</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_bus-&gt;SetDynamicEvent(<span class="keyword">true</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_bus-&gt;SetDynamicEvent(<span class="keyword">false</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;<span class="keywordtype">void</span> BusForm::OnNominalVoltageChoice(wxCommandEvent&amp; event) { UpdateChoiceBoxes(); }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;<span class="keywordtype">void</span> BusForm::OnFaultTypeChoice(wxCommandEvent&amp; event) { UpdateChoiceBoxes(); }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keywordtype">void</span> BusForm::OnControlledVoltageClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; EnableCtrlVoltageFields(m_checkBoxCtrlVoltage-&gt;GetValue());</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keywordtype">void</span> BusForm::OnInsertFaultClick(wxCommandEvent&amp; event) { EnableFaultFields(m_checkBoxFault-&gt;GetValue()); }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> BusForm::OnInsertStabFaultClick(wxCommandEvent&amp; event) { EnableStabFaultFields(m_checkBoxStabFault-&gt;GetValue()); }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keywordtype">void</span> BusForm::EnableCtrlVoltageFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_textCtrlCtrlVoltage-&gt;Enable(enable);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_choiceCtrlVoltage-&gt;Enable(enable);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; UpdateChoiceBoxes();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keywordtype">void</span> BusForm::EnableFaultFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_choiceFaultType-&gt;Enable(enable);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_choiceFaultPlace-&gt;Enable(enable);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_textCtrlFaultReactance-&gt;Enable(enable);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_textCtrlFaultResistance-&gt;Enable(enable);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_staticTextPU_1-&gt;Enable(enable);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_staticTextPU_2-&gt;Enable(enable);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; UpdateChoiceBoxes();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keywordtype">void</span> BusForm::EnableStabFaultFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_textCtrlStabFaultTime-&gt;Enable(enable);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_textCtrlStabFaultLength-&gt;Enable(enable);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_staticTextS_1-&gt;Enable(enable);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_staticTextS_2-&gt;Enable(enable);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_textCtrlStabFaultReactance-&gt;Enable(enable);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_textCtrlStabFaultResistance-&gt;Enable(enable);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; m_staticTextPU_3-&gt;Enable(enable);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_staticTextPU_4-&gt;Enable(enable);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;<span class="keywordtype">void</span> BusForm::UpdateChoiceBoxes()</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultType-&gt;GetSelection()) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> 0: <span class="comment">// three-phase</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_choiceFaultPlace-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> 1: <span class="comment">// line-to-line</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> 2: <span class="comment">// double line-to-line</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(m_checkBoxFault-&gt;GetValue()) m_choiceFaultPlace-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_choiceFaultPlace-&gt;SetString(0, _(<span class="stringliteral">&quot;Lines AB&quot;</span>));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_choiceFaultPlace-&gt;SetString(1, _(<span class="stringliteral">&quot;Lines BC&quot;</span>));</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_choiceFaultPlace-&gt;SetString(2, _(<span class="stringliteral">&quot;Lines CA&quot;</span>));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">case</span> 3: <span class="comment">// line-to-ground</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(m_checkBoxFault-&gt;GetValue()) m_choiceFaultPlace-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_choiceFaultPlace-&gt;SetString(0, _(<span class="stringliteral">&quot;Line A&quot;</span>));</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_choiceFaultPlace-&gt;SetString(1, _(<span class="stringliteral">&quot;Line B&quot;</span>));</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_choiceFaultPlace-&gt;SetString(2, _(<span class="stringliteral">&quot;Line C&quot;</span>));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">switch</span>(m_choiceNomVoltage-&gt;GetSelection()) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_choiceCtrlVoltage-&gt;SetString(1, _(<span class="stringliteral">&quot;V&quot;</span>));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_choiceCtrlVoltage-&gt;SetString(1, _(<span class="stringliteral">&quot;kV&quot;</span>));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00045">PowerElement.h:45</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_form_8h.html">BusForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;BusForm::BusForm(wxWindow* parent, <a class="code" href="class_bus.html">Bus</a>* bus) : <a class="code" href="class_bus_form_base.html">BusFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_choiceFaultType-&gt;SetString(0, _(<span class="stringliteral">&quot;Three-phase&quot;</span>));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_choiceFaultType-&gt;SetString(1, _(<span class="stringliteral">&quot;Line-to-line&quot;</span>));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_choiceFaultType-&gt;SetString(2, _(<span class="stringliteral">&quot;Double line-to-ground&quot;</span>));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceFaultType-&gt;SetString(3, _(<span class="stringliteral">&quot;Line-to-ground&quot;</span>));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_parent = parent;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_bus = bus;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_textCtrlName-&gt;SetValue(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_textCtrlNomVoltage-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().nominalVoltage));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span>(bus-&gt;GetElectricalData().nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_choiceNomVoltage-&gt;SetSelection(0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_choiceNomVoltage-&gt;SetSelection(1);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_checkBoxCtrlVoltage-&gt;SetValue(bus-&gt;GetElectricalData().isVoltageControlled);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_textCtrlCtrlVoltage-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().controlledVoltage));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_choiceCtrlVoltage-&gt;SetSelection(bus-&gt;GetElectricalData().controlledVoltageUnitChoice);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_checkBoxSlackBus-&gt;SetValue(bus-&gt;GetElectricalData().slackBus);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_checkBoxFault-&gt;SetValue(bus-&gt;GetElectricalData().hasFault);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">switch</span>(bus-&gt;GetElectricalData().faultType) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>: {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceFaultType-&gt;SetSelection(0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>: {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_choiceFaultType-&gt;SetSelection(1);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>: {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_choiceFaultType-&gt;SetSelection(2);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>: {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_choiceFaultType-&gt;SetSelection(3);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">switch</span>(bus-&gt;GetElectricalData().faultLocation) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceFaultPlace-&gt;SetSelection(0);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceFaultPlace-&gt;SetSelection(1);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_choiceFaultPlace-&gt;SetSelection(2);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_textCtrlFaultResistance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().faultResistance));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_textCtrlFaultReactance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().faultReactance));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_checkBoxPlotData-&gt;SetValue(bus-&gt;GetElectricalData().plotBus);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_checkBoxStabFault-&gt;SetValue(bus-&gt;GetElectricalData().stabHasFault);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_textCtrlStabFaultTime-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultTime));</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_textCtrlStabFaultLength-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultLength));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_textCtrlStabFaultResistance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultResistance));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_textCtrlStabFaultReactance-&gt;SetValue(bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(bus-&gt;GetElectricalData().stabFaultReactance));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; EnableCtrlVoltageFields(bus-&gt;GetElectricalData().isVoltageControlled);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; EnableFaultFields(bus-&gt;GetElectricalData().hasFault);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; EnableStabFaultFields(bus-&gt;GetElectricalData().stabHasFault);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;BusForm::~BusForm() {}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keywordtype">void</span> BusForm::OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keywordtype">void</span> BusForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = m_bus-&gt;GetElectricalData();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlNomVoltage-&gt;GetValue(), data.nominalVoltage,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Rated voltage\&quot;.&quot;</span>)))</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.nominalVoltageUnit = m_choiceNomVoltage-&gt;GetSelection() == 0 ? <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a> : <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data.isVoltageControlled = m_checkBoxCtrlVoltage-&gt;GetValue();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span>(data.isVoltageControlled) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlCtrlVoltage-&gt;GetValue(), data.controlledVoltage,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Controlled voltage\&quot;.&quot;</span>)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; data.controlledVoltageUnitChoice = m_choiceCtrlVoltage-&gt;GetSelection();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; data.slackBus = m_checkBoxSlackBus-&gt;GetValue();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; data.hasFault = m_checkBoxFault-&gt;GetValue();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultType-&gt;GetSelection()) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; data.faultType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultPlace-&gt;GetSelection()) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; data.faultLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlFaultResistance-&gt;GetValue(), data.faultResistance,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlFaultReactance-&gt;GetValue(), data.faultReactance,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; data.plotBus = m_checkBoxPlotData-&gt;GetValue();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data.stabHasFault = m_checkBoxStabFault-&gt;GetValue();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultTime-&gt;GetValue(), data.stabFaultTime,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultLength-&gt;GetValue(), data.stabFaultLength,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault lenght\&quot;.&quot;</span>)))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultResistance-&gt;GetValue(), data.stabFaultResistance,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault resistence (stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(!m_bus-&gt;DoubleFromString(m_parent, m_textCtrlStabFaultReactance-&gt;GetValue(), data.stabFaultReactance,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Fault reactance (stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault)</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_bus-&gt;SetDynamicEvent(<span class="keyword">true</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_bus-&gt;SetDynamicEvent(<span class="keyword">false</span>);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="keywordtype">void</span> BusForm::OnNominalVoltageChoice(wxCommandEvent&amp; event) { UpdateChoiceBoxes(); }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;<span class="keywordtype">void</span> BusForm::OnFaultTypeChoice(wxCommandEvent&amp; event) { UpdateChoiceBoxes(); }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;<span class="keywordtype">void</span> BusForm::OnControlledVoltageClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; EnableCtrlVoltageFields(m_checkBoxCtrlVoltage-&gt;GetValue());</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keywordtype">void</span> BusForm::OnInsertFaultClick(wxCommandEvent&amp; event) { EnableFaultFields(m_checkBoxFault-&gt;GetValue()); }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keywordtype">void</span> BusForm::OnInsertStabFaultClick(wxCommandEvent&amp; event) { EnableStabFaultFields(m_checkBoxStabFault-&gt;GetValue()); }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;<span class="keywordtype">void</span> BusForm::EnableCtrlVoltageFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_textCtrlCtrlVoltage-&gt;Enable(enable);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_choiceCtrlVoltage-&gt;Enable(enable);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; UpdateChoiceBoxes();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keywordtype">void</span> BusForm::EnableFaultFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_choiceFaultType-&gt;Enable(enable);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; m_choiceFaultPlace-&gt;Enable(enable);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_textCtrlFaultReactance-&gt;Enable(enable);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_textCtrlFaultResistance-&gt;Enable(enable);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_staticTextPU_1-&gt;Enable(enable);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_staticTextPU_2-&gt;Enable(enable);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; UpdateChoiceBoxes();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keywordtype">void</span> BusForm::EnableStabFaultFields(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_textCtrlStabFaultTime-&gt;Enable(enable);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_textCtrlStabFaultLength-&gt;Enable(enable);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_staticTextS_1-&gt;Enable(enable);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_staticTextS_2-&gt;Enable(enable);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_textCtrlStabFaultReactance-&gt;Enable(enable);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_textCtrlStabFaultResistance-&gt;Enable(enable);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_staticTextPU_3-&gt;Enable(enable);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_staticTextPU_4-&gt;Enable(enable);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;<span class="keywordtype">void</span> BusForm::UpdateChoiceBoxes()</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">switch</span>(m_choiceFaultType-&gt;GetSelection()) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">case</span> 0: <span class="comment">// three-phase</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_choiceFaultPlace-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> 1: <span class="comment">// line-to-line</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">case</span> 2: <span class="comment">// double line-to-line</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(m_checkBoxFault-&gt;GetValue()) m_choiceFaultPlace-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_choiceFaultPlace-&gt;SetString(0, _(<span class="stringliteral">&quot;Lines AB&quot;</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_choiceFaultPlace-&gt;SetString(1, _(<span class="stringliteral">&quot;Lines BC&quot;</span>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_choiceFaultPlace-&gt;SetString(2, _(<span class="stringliteral">&quot;Lines CA&quot;</span>));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> 3: <span class="comment">// line-to-ground</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(m_checkBoxFault-&gt;GetValue()) m_choiceFaultPlace-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_choiceFaultPlace-&gt;SetString(0, _(<span class="stringliteral">&quot;Line A&quot;</span>));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_choiceFaultPlace-&gt;SetString(1, _(<span class="stringliteral">&quot;Line B&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_choiceFaultPlace-&gt;SetString(2, _(<span class="stringliteral">&quot;Line C&quot;</span>));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">switch</span>(m_choiceNomVoltage-&gt;GetSelection()) {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_choiceCtrlVoltage-&gt;SetString(1, _(<span class="stringliteral">&quot;V&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_choiceCtrlVoltage-&gt;SetString(1, _(<span class="stringliteral">&quot;kV&quot;</span>));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00059">PowerElement.h:59</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="_bus_form_8h_html"><div class="ttname"><a href="_bus_form_8h.html">BusForm.h</a></div></div>
<div class="ttc" id="class_bus_form_base_html"><div class="ttname"><a href="class_bus_form_base.html">BusFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00049">ElementForm.h:49</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00060">PowerElement.h:60</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00057">PowerElement.h:57</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00056">PowerElement.h:56</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00058">PowerElement.h:58</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_bus_form_8h.html b/docs/doxygen/html/_bus_form_8h.html
new file mode 100644
index 0000000..27fa1f9
--- /dev/null
+++ b/docs/doxygen/html/_bus_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/BusForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_bus_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">BusForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_bus_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_bus_form.html">BusForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the bus power data. <a href="class_bus_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_bus_form_8h.html">BusForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_bus_form_8h_source.html b/docs/doxygen/html/_bus_form_8h_source.html
index 7d112d3..4f4106d 100644
--- a/docs/doxygen/html/_bus_form_8h_source.html
+++ b/docs/doxygen/html/_bus_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_bus_form_8h_source.html','');});
<div class="title">BusForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef BUSFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define BUSFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_bus_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bus_form.html">BusForm</a> : <span class="keyword">public</span> <a class="code" href="class_bus_form_base.html">BusFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_bus_form.html">BusForm</a>(wxWindow* parent, <a class="code" href="class_bus.html">Bus</a>* bus);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_bus_form.html">BusForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultTypeChoice(wxCommandEvent&amp; event);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnControlledVoltageClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertFaultClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertStabFaultClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNominalVoltageChoice(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableCtrlVoltageFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableFaultFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableStabFaultFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateChoiceBoxes();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_bus.html">Bus</a>* m_bus = NULL;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif // BUSFORM_H</span></div><div class="ttc" id="class_bus_form_html"><div class="ttname"><a href="class_bus_form.html">BusForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_form_8h_source.html#l00007">BusForm.h:7</a></div></div>
+<a href="_bus_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef BUSFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define BUSFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_bus_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_bus_form.html">BusForm</a> : <span class="keyword">public</span> <a class="code" href="class_bus_form_base.html">BusFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_bus_form.html">BusForm</a>(wxWindow* parent, <a class="code" href="class_bus.html">Bus</a>* bus);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_bus_form.html">BusForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultTypeChoice(wxCommandEvent&amp; event);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnControlledVoltageClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertFaultClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertStabFaultClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNominalVoltageChoice(wxCommandEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableCtrlVoltageFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableFaultFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> EnableStabFaultFields(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateChoiceBoxes();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_bus.html">Bus</a>* m_bus = NULL;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif // BUSFORM_H</span></div><div class="ttc" id="class_bus_form_html"><div class="ttname"><a href="class_bus_form.html">BusForm</a></div><div class="ttdoc">Form to edit the bus power data. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_form_8h_source.html#l00031">BusForm.h:31</a></div></div>
<div class="ttc" id="class_bus_form_base_html"><div class="ttname"><a href="class_bus_form_base.html">BusFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00049">ElementForm.h:49</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>BusForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_bus_form_8h.html">BusForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_bus_form_bitmaps_8cpp_source.html b/docs/doxygen/html/_bus_form_bitmaps_8cpp_source.html
index 450a590..f5ed2a2 100644
--- a/docs/doxygen/html/_bus_form_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_bus_form_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_camera_8cpp_source.html b/docs/doxygen/html/_camera_8cpp_source.html
index a9de529..361e9c2 100644
--- a/docs/doxygen/html/_camera_8cpp_source.html
+++ b/docs/doxygen/html/_camera_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,8 @@ $(document).ready(function(){initNavTree('_camera_8cpp_source.html','');});
<div class="title">Camera.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Camera.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Camera::Camera()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; m_translation = wxPoint2DDouble(0, 0);</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_scale = 1.0;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;Camera::~Camera() {}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords)<span class="keyword"> const</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; screenCoords.m_x / m_scale - m_translation.m_x, screenCoords.m_y / m_scale - m_translation.m_y);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> Camera::SetTranslation(wxPoint2DDouble screenPoint)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_translation = screenPoint / m_scale - m_translationStartPt;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keywordtype">void</span> Camera::SetScale(wxPoint2DDouble screenPoint, <span class="keywordtype">double</span> delta)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_translation -= screenPoint * (1.0 - m_scale) / m_scale;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_scale += delta;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Limits: 5% - 300%</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span>(m_scale &lt; m_zoomMin) m_scale = m_zoomMin;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(m_scale &gt; m_zoomMax) m_scale = m_zoomMax;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_translation += screenPoint * (1.0 - m_scale) / m_scale;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;wxPoint2DDouble Camera::GetMousePosition(<span class="keywordtype">bool</span> worldCoords)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span>(worldCoords) <span class="keywordflow">return</span> ScreenToWorld(m_mousePosition);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> m_mousePosition;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_camera_8h.html">Camera.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;Camera::Camera()</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_translation = wxPoint2DDouble(0, 0);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_scale = 1.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;}</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;Camera::~Camera() {}</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;wxPoint2DDouble Camera::ScreenToWorld(wxPoint2DDouble screenCoords)<span class="keyword"> const</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(screenCoords.m_x / m_scale - m_translation.m_x,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; screenCoords.m_y / m_scale - m_translation.m_y);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> Camera::SetTranslation(wxPoint2DDouble screenPoint)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_translation = screenPoint / m_scale - m_translationStartPt;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">void</span> Camera::SetScale(wxPoint2DDouble screenPoint, <span class="keywordtype">double</span> delta)</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_translation -= screenPoint * (1.0 - m_scale) / m_scale;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_scale += delta;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Limits: 5% - 300%</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(m_scale &lt; m_zoomMin) m_scale = m_zoomMin;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(m_scale &gt; m_zoomMax) m_scale = m_zoomMax;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_translation += screenPoint * (1.0 - m_scale) / m_scale;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;wxPoint2DDouble Camera::GetMousePosition(<span class="keywordtype">bool</span> worldCoords)<span class="keyword"> const</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(worldCoords) <span class="keywordflow">return</span> ScreenToWorld(m_mousePosition);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> m_mousePosition;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="ttc" id="_camera_8h_html"><div class="ttname"><a href="_camera_8h.html">Camera.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/doxygen/html/_camera_8h.html b/docs/doxygen/html/_camera_8h.html
new file mode 100644
index 0000000..0bfb58f
--- /dev/null
+++ b/docs/doxygen/html/_camera_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Camera.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_camera_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Camera.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wx/geometry.h&gt;</code><br />
+</div>
+<p><a href="_camera_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_camera.html">Camera</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class responsible for the correct visualization of the elements on screen. <a href="class_camera.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_camera_8h.html">Camera.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_camera_8h_source.html b/docs/doxygen/html/_camera_8h_source.html
index 3399ad0..385e607 100644
--- a/docs/doxygen/html/_camera_8h_source.html
+++ b/docs/doxygen/html/_camera_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,13 +88,13 @@ $(document).ready(function(){initNavTree('_camera_8h_source.html','');});
<div class="title">Camera.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CAMERA_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CAMERA_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/geometry.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_camera.html"> 6</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; ~<a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">void</span> SetScale(wxPoint2DDouble screenPoint, <span class="keywordtype">double</span> delta);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">void</span> SetScale(<span class="keywordtype">double</span> scale) { m_scale = scale; }</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">void</span> SetTranslation(wxPoint2DDouble screenPoint);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">void</span> StartTranslation(wxPoint2DDouble startPoint) { this-&gt;m_translationStartPt = startPoint; }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">void</span> UpdateMousePosition(wxPoint2DDouble mousePosition) { this-&gt;m_mousePosition = mousePosition; }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> GetScale()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_scale; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxPoint2DDouble GetTranslation()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_translation; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; wxPoint2DDouble GetMousePosition(<span class="keywordtype">bool</span> worldCoords = <span class="keyword">true</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; wxPoint2DDouble ScreenToWorld(wxPoint2DDouble screenCoords) <span class="keyword">const</span>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span> GetZoomMin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_zoomMin; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> GetZoomMax()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_zoomMax; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; wxPoint2DDouble m_translation;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxPoint2DDouble m_translationStartPt;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> m_scale;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxPoint2DDouble m_mousePosition;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> m_zoomMin = 0.01;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> m_zoomMax = 3.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif // CAMERA_H</span></div><div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00006">Camera.h:6</a></div></div>
+<a href="_camera_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CAMERA_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CAMERA_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/geometry.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_camera.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; ~<a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> SetScale(wxPoint2DDouble screenPoint, <span class="keywordtype">double</span> delta);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">void</span> SetScale(<span class="keywordtype">double</span> scale) { m_scale = scale; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">void</span> SetTranslation(wxPoint2DDouble screenPoint);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">void</span> StartTranslation(wxPoint2DDouble startPoint) { this-&gt;m_translationStartPt = startPoint; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">void</span> UpdateMousePosition(wxPoint2DDouble mousePosition) { this-&gt;m_mousePosition = mousePosition; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">double</span> GetScale()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_scale; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxPoint2DDouble GetTranslation()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_translation; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxPoint2DDouble GetMousePosition(<span class="keywordtype">bool</span> worldCoords = <span class="keyword">true</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxPoint2DDouble ScreenToWorld(wxPoint2DDouble screenCoords) <span class="keyword">const</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> GetZoomMin()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_zoomMin; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> GetZoomMax()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_zoomMax; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxPoint2DDouble m_translation;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxPoint2DDouble m_translationStartPt;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> m_scale;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; wxPoint2DDouble m_mousePosition;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> m_zoomMin = 0.01;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> m_zoomMax = 3.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif // CAMERA_H</span></div><div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdoc">Class responsible for the correct visualization of the elements on screen. </div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00030">Camera.h:30</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Camera.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_camera_8h.html">Camera.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_capacitor_8cpp_source.html b/docs/doxygen/html/_capacitor_8cpp_source.html
index a038326..e97535d 100644
--- a/docs/doxygen/html/_capacitor_8cpp_source.html
+++ b/docs/doxygen/html/_capacitor_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,32 +88,34 @@ $(document).ready(function(){initNavTree('_capacitor_8cpp_source.html','');});
<div class="title">Capacitor.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ReactiveShuntElementForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Capacitor::Capacitor() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Capacitor::Capacitor(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;Capacitor::~Capacitor() {}</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf"> 7</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_width = 40;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_height = 30;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0, m_width, m_height);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0 - 10.0));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8"> 38</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8">Capacitor::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;wxPoint2DDouble&gt; capPts;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2.0, m_position.m_y - m_height / 2.0));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0 + 10.0));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2.0, m_position.m_y - m_height / 2.0 + 10.0));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glPushMatrix();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; DrawLine(capPts, GL_LINES);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; glPopMatrix();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// Draw Capacitor (layer 2).</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DrawSwitches();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glPushMatrix();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; DrawLine(capPts, GL_LINES);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; glPopMatrix();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a"> 98</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d"> 110</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d">Capacitor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Capacitor&quot;</span>));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5"> 117</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5">Capacitor::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a"> 123</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a">Capacitor::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6"> 128</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;{</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>* capacitorForm = <span class="keyword">new</span> <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; capacitorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Capacitor&quot;</span>));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(capacitorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> Capacitor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;}</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580"> 163</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor::GetCopy</a>()</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;{</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e"> 170</a></span>&#160;wxString <a class="code" href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e">Capacitor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// TODO: Avoid reactive power calculation.</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(!m_online)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_capacitor_html_a459b1bbdb153bb9720176661e2960ea6"><div class="ttname"><a href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00128">Capacitor.cpp:128</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_capacitor_html_a05d5517b64dd8a8888817ca28b72294d"><div class="ttname"><a href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d">Capacitor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00110">Capacitor.cpp:110</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_capacitor_html_a2c3f0949c2b791c6a0b69866e9aaff7a"><div class="ttname"><a href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00098">Capacitor.cpp:98</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_capacitor_html_a422e353b594ac6e4ef34e1f613f7d580"><div class="ttname"><a href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00163">Capacitor.cpp:163</a></div></div>
-<div class="ttc" id="class_capacitor_html_a994039e59a8ae0ec3fe7cf7f5b66e4e5"><div class="ttname"><a href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5">Capacitor::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00117">Capacitor.cpp:117</a></div></div>
-<div class="ttc" id="class_capacitor_html_a6b06adb1ef3545b220e0b94ee6210b7a"><div class="ttname"><a href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a">Capacitor::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00123">Capacitor.cpp:123</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_capacitor_html_a94d378c922467214b394931ec0eb01c8"><div class="ttname"><a href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8">Capacitor::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00038">Capacitor.cpp:38</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="class_capacitor_html_a00e808708e16b87c80fc650e5710b84e"><div class="ttname"><a href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e">Capacitor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00170">Capacitor.cpp:170</a></div></div>
-<div class="ttc" id="class_capacitor_html_ace755e5bc3cc72b491ce31c24c54a5cf"><div class="ttname"><a href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00007">Capacitor.cpp:7</a></div></div>
-<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00010">ReactiveShuntElementForm.h:10</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Capacitor::Capacitor() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;Capacitor::Capacitor(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Capacitor::~Capacitor() {}</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf"> 24</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_width = 40;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_height = 30;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0, m_width, m_height);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0 - 10.0));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8">Capacitor::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;wxPoint2DDouble&gt; capPts;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0));</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2.0, m_position.m_y - m_height / 2.0));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0 + 10.0));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; capPts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2.0, m_position.m_y - m_height / 2.0 + 10.0));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glPushMatrix();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; DrawLine(capPts, GL_LINES);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; glPopMatrix();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// Draw Capacitor (layer 2).</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; DrawSwitches();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; glPushMatrix();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; DrawLine(capPts, GL_LINES);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; glPopMatrix();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a"> 115</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"><a class="line" href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d"> 127</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d">Capacitor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Capacitor&quot;</span>));</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5"> 134</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5">Capacitor::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a"> 140</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a">Capacitor::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6"> 145</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>* capacitorForm = <span class="keyword">new</span> <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; capacitorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Capacitor&quot;</span>));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(capacitorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;<a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> Capacitor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580"> 180</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor::GetCopy</a>()</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e"> 187</a></span>&#160;wxString <a class="code" href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e">Capacitor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// TODO: Avoid reactive power calculation.</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(!m_online)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; }</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_capacitor_html_a459b1bbdb153bb9720176661e2960ea6"><div class="ttname"><a href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00145">Capacitor.cpp:145</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_capacitor_html_a05d5517b64dd8a8888817ca28b72294d"><div class="ttname"><a href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d">Capacitor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00127">Capacitor.cpp:127</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_capacitor_html_a2c3f0949c2b791c6a0b69866e9aaff7a"><div class="ttname"><a href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00115">Capacitor.cpp:115</a></div></div>
+<div class="ttc" id="_reactive_shunt_element_form_8h_html"><div class="ttname"><a href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="class_capacitor_html_a422e353b594ac6e4ef34e1f613f7d580"><div class="ttname"><a href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00180">Capacitor.cpp:180</a></div></div>
+<div class="ttc" id="class_capacitor_html_a994039e59a8ae0ec3fe7cf7f5b66e4e5"><div class="ttname"><a href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5">Capacitor::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00134">Capacitor.cpp:134</a></div></div>
+<div class="ttc" id="class_capacitor_html_a6b06adb1ef3545b220e0b94ee6210b7a"><div class="ttname"><a href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a">Capacitor::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00140">Capacitor.cpp:140</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_capacitor_html_a94d378c922467214b394931ec0eb01c8"><div class="ttname"><a href="class_capacitor.html#a94d378c922467214b394931ec0eb01c8">Capacitor::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00055">Capacitor.cpp:55</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="class_capacitor_html_a00e808708e16b87c80fc650e5710b84e"><div class="ttname"><a href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e">Capacitor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00187">Capacitor.cpp:187</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="class_capacitor_html_ace755e5bc3cc72b491ce31c24c54a5cf"><div class="ttname"><a href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00024">Capacitor.cpp:24</a></div></div>
+<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdoc">Form to edit the reactive shunt element power data. </div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00034">ReactiveShuntElementForm.h:34</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_capacitor_8h.html b/docs/doxygen/html/_capacitor_8h.html
new file mode 100644
index 0000000..88cfe9e
--- /dev/null
+++ b/docs/doxygen/html/_capacitor_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Capacitor.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_capacitor_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Capacitor.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_shunt_8h_source.html">Shunt.h</a>&quot;</code><br />
+</div>
+<p><a href="_capacitor_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_capacitor.html">Capacitor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_shunt.html" title="Abstract class for shunt power elements. ">Shunt</a> capactior power element. <a href="class_capacitor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_capacitor_8h.html">Capacitor.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_capacitor_8h_source.html b/docs/doxygen/html/_capacitor_8h_source.html
index c33b942..311d0db 100644
--- a/docs/doxygen/html/_capacitor_8h_source.html
+++ b/docs/doxygen/html/_capacitor_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,20 @@ $(document).ready(function(){initNavTree('_capacitor_8h_source.html','');});
<div class="title">Capacitor.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CAPACITOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CAPACITOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Shunt.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="struct_capacitor_electrical_data.html"> 8</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxString name;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">double</span> reactivePower = 100.0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;};</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_capacitor.html"> 14</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>(wxString name);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; ~<a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif // CAPACITOR_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00010">ReactiveShuntElementForm.h:10</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
+<a href="_capacitor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CAPACITOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CAPACITOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shunt_8h.html">Shunt.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_capacitor_electrical_data.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString name;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> reactivePower = 100.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;};</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_capacitor.html"> 38</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>(wxString name);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ~<a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif // CAPACITOR_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_shunt_8h_html"><div class="ttname"><a href="_shunt_8h.html">Shunt.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdoc">Form to edit the reactive shunt element power data. </div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00034">ReactiveShuntElementForm.h:34</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Capacitor.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_capacitor_8h.html">Capacitor.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_chart_view_8cpp_source.html b/docs/doxygen/html/_chart_view_8cpp_source.html
index 33c9bfa..43c86f5 100644
--- a/docs/doxygen/html/_chart_view_8cpp_source.html
+++ b/docs/doxygen/html/_chart_view_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,9 +88,11 @@ $(document).ready(function(){initNavTree('_chart_view_8cpp_source.html','');});
<div class="title">ChartView.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ChartView.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ElementPlotData.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;ChartView::ChartView(wxWindow* parent, std::vector&lt;ElementPlotData&gt; epdList, std::vector&lt;double&gt; time)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_chart_view_base.html">ChartViewBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_epdList = epdList;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_time = time;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_xAxisValues = time;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_menuItemShowGrid-&gt;Check(m_hideGrid ? <span class="keyword">false</span> : <span class="keyword">true</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_menuItemShowLabel-&gt;Check(m_showLeg);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_menuItemShowCoordinates-&gt;Check(m_showCoords);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_menuItemDarkTheme-&gt;Check(m_darkTheme);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="comment">// Create color property.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_pgPropColor = m_pgMgr-&gt;Insert(m_pgPropLineProp, 1, <span class="keyword">new</span> wxColourProperty(_(<span class="stringliteral">&quot;Color&quot;</span>)));</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_pgPropColor-&gt;SetEditor(wxT(<span class="stringliteral">&quot;ChoiceAndButton&quot;</span>));</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(*wxBLACK));</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// Set margins and axis limit to composed mode.</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pgPropMargins-&gt;SetValue(wxT(<span class="stringliteral">&quot;&lt;composed&gt;&quot;</span>));</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_pgMgr-&gt;Collapse(m_pgPropMargins);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_pgPropAxisLimit-&gt;SetValue(wxT(<span class="stringliteral">&quot;&lt;composed&gt;&quot;</span>));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_pgMgr-&gt;Collapse(m_pgPropAxisLimit);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Add line type choices</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Solid&quot;</span>), wxPENSTYLE_SOLID);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dot&quot;</span>), wxPENSTYLE_DOT);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dash&quot;</span>), wxPENSTYLE_SHORT_DASH);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dot and dash&quot;</span>), wxPENSTYLE_DOT_DASH);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Cross&quot;</span>), wxPENSTYLE_CROSS_HATCH);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Driagonal cross&quot;</span>), wxPENSTYLE_CROSSDIAG_HATCH);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; SetMPWindow();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; GetSizer()-&gt;Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; SetTreectrl();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; Layout();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; SetInitialSize();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; BuildColourList();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;ChartView::~ChartView() {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">void</span> ChartView::SetMPWindow()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_mpWindow = <span class="keyword">new</span> mpWindow(<span class="keyword">this</span>, wxID_ANY);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_mpWindow-&gt;SetDoubleBuffered(<span class="keyword">true</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_mpWindow-&gt;SetMargins(20, 10, 40, 60);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_xaxis = <span class="keyword">new</span> mpScaleX(<span class="stringliteral">&quot;&quot;</span>, mpALIGN_BOTTOM, <span class="keyword">true</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_yaxis = <span class="keyword">new</span> mpScaleY(<span class="stringliteral">&quot;&quot;</span>, mpALIGN_LEFT, <span class="keyword">true</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_xaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_yaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_leg = <span class="keyword">new</span> mpInfoLegend(wxRect(200, 20, 40, 40), wxWHITE_BRUSH);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_coords = <span class="keyword">new</span> mpInfoCoords(wxRect(0, 0, 0, 0), wxWHITE_BRUSH);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_chartTitle = <span class="keyword">new</span> mpText(<span class="stringliteral">&quot;&quot;</span>, 50, 0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_chartTitle-&gt;SetFont(chartTitleFont);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_mpWindow-&gt;AddLayer(m_xaxis);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_mpWindow-&gt;AddLayer(m_yaxis);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_mpWindow-&gt;AddLayer(m_leg);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_mpWindow-&gt;AddLayer(m_coords);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_mpWindow-&gt;AddLayer(m_chartTitle);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_mpWindow-&gt;EnableDoubleBuffer(<span class="keyword">true</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_mpWindow-&gt;LockAspect(<span class="keyword">false</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; Fit();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keywordtype">void</span> ChartView::SetTreectrl()</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;{</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxTreeItemId rootID = m_treeCtrl-&gt;AddRoot(wxT(<span class="stringliteral">&quot;root&quot;</span>));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_treeTimeID = m_treeCtrl-&gt;AppendItem(rootID, _(<span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeTimeID, *wxRED);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">bool</span> firstElement[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ElementPlotData::NUM_ELEMENTS; ++i) firstElement[i] = <span class="keyword">true</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxString rootElementName[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; rootElementName[ElementPlotData::CT_BUS] = _(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; rootElementName[ElementPlotData::CT_IND_MOTOR] = _(<span class="stringliteral">&quot;Induction motor&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; rootElementName[ElementPlotData::CT_LINE] = _(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; rootElementName[ElementPlotData::CT_LOAD] = _(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; rootElementName[ElementPlotData::CT_SHUNT_CAPACITOR] = _(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; rootElementName[ElementPlotData::CT_SHUNT_INDUCTOR] = _(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; rootElementName[ElementPlotData::CT_SYNC_COMPENSATOR] = _(<span class="stringliteral">&quot;Synchronous compensator&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; rootElementName[ElementPlotData::CT_SYNC_GENERATOR] = _(<span class="stringliteral">&quot;Synchronous generator&quot;</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; rootElementName[ElementPlotData::CT_TRANSFORMER] = _(<span class="stringliteral">&quot;Transformer&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; rootElementName[ElementPlotData::CT_TEST] = _(<span class="stringliteral">&quot;Test&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; wxTreeItemId rootItemID[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_epdList.begin(), itEnd = m_epdList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> data = *it;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; ElementPlotData::CurveType curveType = data.GetCurveType();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(firstElement[curveType]) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; rootItemID[curveType] = m_treeCtrl-&gt;AppendItem(rootID, rootElementName[curveType]);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; firstElement[curveType] = <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; wxTreeItemId itemID = m_treeCtrl-&gt;AppendItem(rootItemID[curveType], data.GetName());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; data.GetElementDataNumber(); ++i) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_treeCtrl-&gt;AppendItem(itemID, data.GetDataName(i), -1, -1, data.GetPlotData(i));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keywordtype">void</span> ChartView::OnPropertyGridChange(wxPropertyGridEvent&amp; event)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> fit = <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;GetSelection()) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(m_treeCtrl-&gt;GetSelection()))) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Draw&quot;</span>)) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> isPlotting = m_pgPropDraw-&gt;GetValue();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; data-&gt;SetPlot(isPlotting);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(isPlotting) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxColour colour = GetNextColour();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(colour));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">true</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">false</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fit = <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Color&quot;</span>)) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wxColour colour;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; colour &lt;&lt; m_pgPropColor-&gt;GetValue();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Thickness&quot;</span>)) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data-&gt;SetThick(m_pgProplineThick-&gt;GetValue().GetInteger());</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Type&quot;</span>)) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; data-&gt;SetPenType(static_cast&lt;wxPenStyle&gt;(m_pgProplineType-&gt;GetValue().GetInteger()));</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Axis&quot;</span>)) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> axis = m_pgProplineAxis-&gt;GetValue().GetInteger();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(axis == 1) { <span class="comment">// Y</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// All lines to Y axis</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; AllToYAxis(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// curva selecionada para o eixo X</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeCtrl-&gt;GetSelection(), *wxRED);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_xAxisValues = data-&gt;GetValues();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; data-&gt;SetAxis(axis);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; fit = <span class="keyword">true</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Margins&quot;</span>)) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_mpWindow-&gt;SetMargins(m_pgPropMarginsUp-&gt;GetValue().GetLong(), m_pgPropMarginsRight-&gt;GetValue().GetLong(),</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_pgPropMarginsBot-&gt;GetValue().GetLong(), m_pgPropMarginsLeft-&gt;GetValue().GetLong());</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Axis limit&quot;</span>)) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_mpWindow-&gt;Fit(m_pgPropXMin-&gt;GetValue().GetDouble(), m_pgPropXMax-&gt;GetValue().GetDouble(),</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_pgPropYMin-&gt;GetValue().GetDouble(), m_pgPropYMax-&gt;GetValue().GetDouble());</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; UpdatePlot(fit);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuDarkThemeClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_darkTheme = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; wxColour grey(96, 96, 96);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(m_darkTheme) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxBLACK, *wxWHITE, grey);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_leg-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_coords-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxWHITE, *wxBLACK, grey);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_leg-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_coords-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuSaveImageClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">int</span> x = m_mpWindow-&gt;GetScreenPosition().x;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">int</span> y = m_mpWindow-&gt;GetScreenPosition().y;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">int</span> width = m_mpWindow-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordtype">int</span> height = m_mpWindow-&gt;GetSize().GetHeight();</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; wxScreenDC dcScreen;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; wxBitmap screenshot(width, height);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; wxMemoryDC memDC;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; memDC.SelectObject(screenshot);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; memDC.Blit(0, 0, width, height, &amp;dcScreen, x, y);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; memDC.SelectObject(wxNullBitmap);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; wxFileDialog saveFileDialog(</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save image&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="stringliteral">&quot;PNG image file (*.png)|*.png|Bitmap image file (*.bmp)|*.bmp|JPEG image file (*.jpg)|*.jpg&quot;</span>,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; wxFileName imagePath(saveFileDialog.GetPath());</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; wxBitmapType imageType = wxBITMAP_TYPE_BMP;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(imagePath.GetExt() == <span class="stringliteral">&quot;png&quot;</span>)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; imageType = wxBITMAP_TYPE_PNG;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(imagePath.GetExt() == <span class="stringliteral">&quot;jpg&quot;</span>)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; imageType = wxBITMAP_TYPE_JPEG;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; screenshot.SaveFile(imagePath.GetFullPath(), imageType);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuSendClipClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;{</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordtype">int</span> x = m_mpWindow-&gt;GetScreenPosition().x;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordtype">int</span> y = m_mpWindow-&gt;GetScreenPosition().y;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordtype">int</span> width = m_mpWindow-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordtype">int</span> height = m_mpWindow-&gt;GetSize().GetHeight();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; wxScreenDC dcScreen;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; wxBitmap screenshot(width, height);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; wxMemoryDC memDC;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; memDC.SelectObject(screenshot);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; memDC.Blit(0, 0, width, height, &amp;dcScreen, x, y);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; memDC.SelectObject(wxNullBitmap);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;Open()) {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; wxTheClipboard-&gt;SetData(<span class="keyword">new</span> wxBitmapDataObject(screenshot));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Chart send to clipboard&quot;</span>), _(<span class="stringliteral">&quot;Info&quot;</span>), wxOK | wxICON_INFORMATION,</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; wxDefaultPosition);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to send to clipboard&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxICON_ERROR,</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; wxDefaultPosition);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowCoordinatesClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;{</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_showCoords = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowGridClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;{</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_hideGrid = <span class="keyword">event</span>.IsChecked() ? false : <span class="keyword">true</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowLabelClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_showLeg = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;}</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;<span class="keywordtype">void</span> ChartView::Fit()</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;{</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; m_mpWindow-&gt;Fit();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">double</span> bBox[4];</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_mpWindow-&gt;GetBoundingBox(bBox);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_pgPropXMin-&gt;SetValue(bBox[0]);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_pgPropXMax-&gt;SetValue(bBox[1]);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_pgPropYMin-&gt;SetValue(bBox[2]);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_pgPropYMax-&gt;SetValue(bBox[3]);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keywordtype">void</span> ChartView::UpdatePlot(<span class="keywordtype">bool</span> fit)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; wxRect legRect = m_leg-&gt;GetRectangle();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; wxRect coordsRect = m_coords-&gt;GetRectangle();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; m_mpWindow-&gt;DelAllLayers(<span class="keyword">true</span>, <span class="keyword">false</span>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// GoAllTrees(treeCtrl_ChartSelection-&gt;GetRootItem());</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; UpdateAllPlots(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; m_xaxis = <span class="keyword">new</span> mpScaleX(m_pgPropXLabel-&gt;GetValueAsString(), mpALIGN_BOTTOM, <span class="keyword">true</span>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; m_yaxis = <span class="keyword">new</span> mpScaleY(m_pgPropYLabel-&gt;GetValueAsString(), mpALIGN_LEFT, <span class="keyword">true</span>);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_leg = <span class="keyword">new</span> mpInfoLegend(legRect, wxWHITE_BRUSH);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_coords = <span class="keyword">new</span> mpInfoCoords(coordsRect, wxWHITE_BRUSH);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; m_xaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_yaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; mpText* chartTitle = <span class="keyword">new</span> mpText(m_pgPropChartTitle-&gt;GetValueAsString(), 50, 0);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; chartTitle-&gt;SetFont(chartTitleFont);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; m_mpWindow-&gt;AddLayer(m_xaxis);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; m_mpWindow-&gt;AddLayer(m_yaxis);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; m_mpWindow-&gt;AddLayer(m_leg);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; m_mpWindow-&gt;AddLayer(m_coords);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_mpWindow-&gt;AddLayer(chartTitle);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span>(fit) Fit();</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; wxColour grey(96, 96, 96);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span>(m_darkTheme) {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxBLACK, *wxWHITE, grey);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; m_leg-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; m_coords-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxWHITE, *wxBLACK, grey);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; m_leg-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; m_coords-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;}</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="keywordtype">void</span> ChartView::OnTreeItemActivated(wxTreeEvent&amp; event)</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;{</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(event.GetItem()))) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">bool</span> isPlotting = data-&gt;IsPlot() ? false : <span class="keyword">true</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; data-&gt;SetPlot(isPlotting);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; m_pgPropDraw-&gt;SetValue(data-&gt;IsPlot());</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(isPlotting) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; wxColour colour = GetNextColour();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(colour));</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">true</span>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">false</span>);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; UpdatePlot(<span class="keyword">true</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(event.GetItem() == m_treeTimeID) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; AllToYAxis(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeTimeID, *wxRED);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; m_xAxisValues = m_time;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; UpdatePlot(<span class="keyword">true</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;}</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;<span class="keywordtype">void</span> ChartView::OnTreeItemSelectionChanged(wxTreeEvent&amp; event)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(event.GetItem()))) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; m_pgPropDraw-&gt;SetValue(data-&gt;IsPlot());</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; wxVariant colour;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; colour &lt;&lt; data-&gt;GetColour();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_pgPropColor-&gt;SetValue(colour);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; m_pgProplineThick-&gt;SetValue(data-&gt;GetThick());</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; m_pgProplineType-&gt;SetValue(data-&gt;GetPenType());</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; m_pgProplineAxis-&gt;SetValue(data-&gt;GetAxis());</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;}</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;<span class="keywordtype">void</span> ChartView::BuildColourList()</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;{</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; m_colourList.push_back(wxColour(255, 0, 0));</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; m_colourList.push_back(wxColour(0, 0, 255));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; m_colourList.push_back(wxColour(0, 255, 0));</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; m_colourList.push_back(wxColour(255, 128, 0));</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; m_colourList.push_back(wxColour(128, 0, 255));</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_colourList.push_back(wxColour(0, 255, 128));</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; m_colourList.push_back(wxColour(255, 255, 0));</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; m_colourList.push_back(wxColour(255, 0, 255));</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; m_colourList.push_back(wxColour(0, 255, 255));</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_colourList.push_back(wxColour(128, 255, 0));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; m_colourList.push_back(wxColour(255, 0, 128));</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; m_colourList.push_back(wxColour(0, 128, 255));</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; m_colourList.push_back(wxColour(128, 128, 128));</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; m_colourList.push_back(*wxBLACK);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_itColourList = --m_colourList.end();</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;}</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;wxColour ChartView::GetNextColour()</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;{</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">if</span>(*m_itColourList == *wxBLACK)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; m_itColourList = m_colourList.begin();</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; ++m_itColourList;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> *m_itColourList;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;}</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;wxTreeItemId ChartView::AllToYAxis(wxTreeItemId root)</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;{</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_treeCtrl-&gt;SetItemTextColour(item, *wxBLACK);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) data-&gt;SetAxis(0); <span class="comment">// X axis.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; wxTreeItemId nextChild = AllToYAxis(item);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;}</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160;wxTreeItemId ChartView::UpdateAllPlots(wxTreeItemId root)</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;{</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(data-&gt;IsPlot()) {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; wxString parentName = m_treeCtrl-&gt;GetItemText(m_treeCtrl-&gt;GetItemParent(item));</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; mpFXYVector* newLayer = <span class="keyword">new</span> mpFXYVector(data-&gt;GetName() + <span class="stringliteral">&quot; (&quot;</span> + parentName + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; newLayer-&gt;SetData(m_xAxisValues, data-&gt;GetValues());</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; newLayer-&gt;SetContinuity(<span class="keyword">true</span>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; wxPen layerPen(data-&gt;GetColour(), data-&gt;GetThick(), data-&gt;GetPenType());</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; newLayer-&gt;SetPen(layerPen);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; newLayer-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; newLayer-&gt;ShowName(<span class="keyword">false</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; m_mpWindow-&gt;AddLayer(newLayer);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; wxTreeItemId nextChild = UpdateAllPlots(item);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;}</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuExpCSVClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;{</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save CSV file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CSV file (*.csv)|*.csv&quot;</span>,</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; wxTextFile csvFile(saveFileDialog.GetPath());</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">if</span>(!csvFile.Create()) {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span>(!csvFile.Open()) {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open or create the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; csvFile.Open();</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span>(csvFile.IsOpened()) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; csvFile.Clear();</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; csvFile.AddLine(GetActiveCurvesCSV());</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; csvFile.Write();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; csvFile.Close();</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;}</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;wxString ChartView::GetActiveCurvesCSV()</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;{</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; std::vector&lt;PlotData*&gt; activePlotDataList;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; GetActivePlotData(m_treeCtrl-&gt;GetRootItem(), activePlotDataList);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; std::vector&lt;double&gt; xValues;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; wxString xName = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="comment">// Find X axis curve, if none is found, X is the m_time.</span></div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">bool</span> foundXAxis = <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(), itEnd = activePlotDataList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = *it;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(data-&gt;GetAxis() == 1) {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; xValues = data-&gt;GetValues();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; xName = data-&gt;GetName();</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; foundXAxis = <span class="keyword">true</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; activePlotDataList.erase(it);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">delete</span> data;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; }</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span>(!foundXAxis) {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; xValues = m_time;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; xName = _(<span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// Build CSV text.</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; wxString csvText = xName + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(), itEnd = activePlotDataList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = *it;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; csvText += data-&gt;GetName() + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; csvText[csvText.length() - 1] = <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; xValues.size(); ++i) {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; csvText += wxString::FromCDouble(xValues[i], 13) + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; activePlotDataList.size(); ++j) {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(i &lt; activePlotDataList[j]-&gt;GetValues().size()) {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; value = activePlotDataList[j]-&gt;GetValues()[i];</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; csvText += wxString::FromCDouble(value, 13) + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; csvText[csvText.length() - 1] = <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; }</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">// Clear active plot data vector.</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(); it != activePlotDataList.end(); ++it) {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">delete</span>(*it);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; activePlotDataList.clear();</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">return</span> csvText;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;}</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;wxTreeItemId ChartView::GetActivePlotData(wxTreeItemId root, std::vector&lt;PlotData*&gt;&amp; plotDataList)</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;{</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">if</span>(data-&gt;IsPlot() || data-&gt;GetAxis() == 1) {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; wxString parentName = m_treeCtrl-&gt;GetItemText(m_treeCtrl-&gt;GetItemParent(item));</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* dataCopy = <span class="keyword">new</span> <a class="code" href="class_plot_data.html">PlotData</a>();</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; *dataCopy = *data;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; dataCopy-&gt;SetName(data-&gt;GetName() + <span class="stringliteral">&quot; (&quot;</span> + parentName + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; plotDataList.push_back(dataCopy);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; }</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; wxTreeItemId nextChild = GetActivePlotData(item, plotDataList);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div><div class="ttc" id="class_chart_view_base_html"><div class="ttname"><a href="class_chart_view_base.html">ChartViewBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_base_8h_source.html#l00039">ChartViewBase.h:39</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00010">ElementPlotData.h:10</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_chart_view_8h.html">ChartView.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_plot_data_8h.html">ElementPlotData.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;ChartView::ChartView(wxWindow* parent, std::vector&lt;ElementPlotData&gt; epdList, std::vector&lt;double&gt; time)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; : <a class="code" href="class_chart_view_base.html">ChartViewBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_epdList = epdList;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_time = time;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_xAxisValues = time;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_menuItemShowGrid-&gt;Check(m_hideGrid ? <span class="keyword">false</span> : <span class="keyword">true</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_menuItemShowLabel-&gt;Check(m_showLeg);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_menuItemShowCoordinates-&gt;Check(m_showCoords);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_menuItemDarkTheme-&gt;Check(m_darkTheme);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// Create color property.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_pgPropColor = m_pgMgr-&gt;Insert(m_pgPropLineProp, 1, <span class="keyword">new</span> wxColourProperty(_(<span class="stringliteral">&quot;Color&quot;</span>)));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_pgPropColor-&gt;SetEditor(wxT(<span class="stringliteral">&quot;ChoiceAndButton&quot;</span>));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(*wxBLACK));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Set margins and axis limit to composed mode.</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pgPropMargins-&gt;SetValue(wxT(<span class="stringliteral">&quot;&lt;composed&gt;&quot;</span>));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_pgMgr-&gt;Collapse(m_pgPropMargins);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_pgPropAxisLimit-&gt;SetValue(wxT(<span class="stringliteral">&quot;&lt;composed&gt;&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_pgMgr-&gt;Collapse(m_pgPropAxisLimit);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Add line type choices</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Solid&quot;</span>), wxPENSTYLE_SOLID);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dot&quot;</span>), wxPENSTYLE_DOT);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dash&quot;</span>), wxPENSTYLE_SHORT_DASH);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Dot and dash&quot;</span>), wxPENSTYLE_DOT_DASH);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Cross&quot;</span>), wxPENSTYLE_CROSS_HATCH);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_pgProplineType-&gt;AddChoice(_(<span class="stringliteral">&quot;Driagonal cross&quot;</span>), wxPENSTYLE_CROSSDIAG_HATCH);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; SetMPWindow();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; GetSizer()-&gt;Add(m_mpWindow, 1, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; SetTreectrl();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; Layout();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; SetInitialSize();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; BuildColourList();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;ChartView::~ChartView() {}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> ChartView::SetMPWindow()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_mpWindow = <span class="keyword">new</span> mpWindow(<span class="keyword">this</span>, wxID_ANY);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_mpWindow-&gt;SetDoubleBuffered(<span class="keyword">true</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_mpWindow-&gt;SetMargins(20, 10, 40, 60);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_xaxis = <span class="keyword">new</span> mpScaleX(<span class="stringliteral">&quot;&quot;</span>, mpALIGN_BOTTOM, <span class="keyword">true</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_yaxis = <span class="keyword">new</span> mpScaleY(<span class="stringliteral">&quot;&quot;</span>, mpALIGN_LEFT, <span class="keyword">true</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_xaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_yaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_leg = <span class="keyword">new</span> mpInfoLegend(wxRect(200, 20, 40, 40), wxWHITE_BRUSH);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_coords = <span class="keyword">new</span> mpInfoCoords(wxRect(0, 0, 0, 0), wxWHITE_BRUSH);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_chartTitle = <span class="keyword">new</span> mpText(<span class="stringliteral">&quot;&quot;</span>, 50, 0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_chartTitle-&gt;SetFont(chartTitleFont);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_mpWindow-&gt;AddLayer(m_xaxis);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_mpWindow-&gt;AddLayer(m_yaxis);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_mpWindow-&gt;AddLayer(m_leg);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_mpWindow-&gt;AddLayer(m_coords);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_mpWindow-&gt;AddLayer(m_chartTitle);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_mpWindow-&gt;EnableDoubleBuffer(<span class="keyword">true</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_mpWindow-&gt;LockAspect(<span class="keyword">false</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; Fit();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keywordtype">void</span> ChartView::SetTreectrl()</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;{</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; wxTreeItemId rootID = m_treeCtrl-&gt;AddRoot(wxT(<span class="stringliteral">&quot;root&quot;</span>));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_treeTimeID = m_treeCtrl-&gt;AppendItem(rootID, _(<span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeTimeID, *wxRED);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">bool</span> firstElement[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ElementPlotData::NUM_ELEMENTS; ++i) firstElement[i] = <span class="keyword">true</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxString rootElementName[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; rootElementName[ElementPlotData::CT_BUS] = _(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; rootElementName[ElementPlotData::CT_IND_MOTOR] = _(<span class="stringliteral">&quot;Induction motor&quot;</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; rootElementName[ElementPlotData::CT_LINE] = _(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; rootElementName[ElementPlotData::CT_LOAD] = _(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; rootElementName[ElementPlotData::CT_SHUNT_CAPACITOR] = _(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; rootElementName[ElementPlotData::CT_SHUNT_INDUCTOR] = _(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; rootElementName[ElementPlotData::CT_SYNC_COMPENSATOR] = _(<span class="stringliteral">&quot;Synchronous compensator&quot;</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; rootElementName[ElementPlotData::CT_SYNC_GENERATOR] = _(<span class="stringliteral">&quot;Synchronous generator&quot;</span>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; rootElementName[ElementPlotData::CT_TRANSFORMER] = _(<span class="stringliteral">&quot;Transformer&quot;</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; rootElementName[ElementPlotData::CT_TEST] = _(<span class="stringliteral">&quot;Test&quot;</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; wxTreeItemId rootItemID[ElementPlotData::NUM_ELEMENTS];</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_epdList.begin(), itEnd = m_epdList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> data = *it;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; ElementPlotData::CurveType curveType = data.GetCurveType();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(firstElement[curveType]) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; rootItemID[curveType] = m_treeCtrl-&gt;AppendItem(rootID, rootElementName[curveType]);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; firstElement[curveType] = <span class="keyword">false</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxTreeItemId itemID = m_treeCtrl-&gt;AppendItem(rootItemID[curveType], data.GetName());</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; data.GetElementDataNumber(); ++i) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_treeCtrl-&gt;AppendItem(itemID, data.GetDataName(i), -1, -1, data.GetPlotData(i));</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keywordtype">void</span> ChartView::OnPropertyGridChange(wxPropertyGridEvent&amp; event)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> fit = <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;GetSelection()) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(m_treeCtrl-&gt;GetSelection()))) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Draw&quot;</span>)) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">bool</span> isPlotting = m_pgPropDraw-&gt;GetValue();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; data-&gt;SetPlot(isPlotting);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(isPlotting) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; wxColour colour = GetNextColour();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(colour));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">true</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">false</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; fit = <span class="keyword">true</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Color&quot;</span>)) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; wxColour colour;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; colour &lt;&lt; m_pgPropColor-&gt;GetValue();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Thickness&quot;</span>)) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; data-&gt;SetThick(m_pgProplineThick-&gt;GetValue().GetInteger());</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Type&quot;</span>)) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; data-&gt;SetPenType(static_cast&lt;wxPenStyle&gt;(m_pgProplineType-&gt;GetValue().GetInteger()));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Axis&quot;</span>)) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordtype">int</span> axis = m_pgProplineAxis-&gt;GetValue().GetInteger();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(axis == 1) { <span class="comment">// Y</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// All lines to Y axis</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; AllToYAxis(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// curva selecionada para o eixo X</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeCtrl-&gt;GetSelection(), *wxRED);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_xAxisValues = data-&gt;GetValues();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; data-&gt;SetAxis(axis);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; fit = <span class="keyword">true</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Margins&quot;</span>)) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_mpWindow-&gt;SetMargins(m_pgPropMarginsUp-&gt;GetValue().GetLong(), m_pgPropMarginsRight-&gt;GetValue().GetLong(),</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_pgPropMarginsBot-&gt;GetValue().GetLong(), m_pgPropMarginsLeft-&gt;GetValue().GetLong());</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(event.GetPropertyName() == _(<span class="stringliteral">&quot;Axis limit&quot;</span>)) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_mpWindow-&gt;Fit(m_pgPropXMin-&gt;GetValue().GetDouble(), m_pgPropXMax-&gt;GetValue().GetDouble(),</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_pgPropYMin-&gt;GetValue().GetDouble(), m_pgPropYMax-&gt;GetValue().GetDouble());</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; UpdatePlot(fit);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuDarkThemeClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_darkTheme = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; wxColour grey(96, 96, 96);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(m_darkTheme) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxBLACK, *wxWHITE, grey);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_leg-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_coords-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxWHITE, *wxBLACK, grey);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; m_leg-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_coords-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;}</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuSaveImageClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;{</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">int</span> x = m_mpWindow-&gt;GetScreenPosition().x;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">int</span> y = m_mpWindow-&gt;GetScreenPosition().y;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">int</span> width = m_mpWindow-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordtype">int</span> height = m_mpWindow-&gt;GetSize().GetHeight();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; wxScreenDC dcScreen;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; wxBitmap screenshot(width, height);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; wxMemoryDC memDC;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; memDC.SelectObject(screenshot);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; memDC.Blit(0, 0, width, height, &amp;dcScreen, x, y);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; memDC.SelectObject(wxNullBitmap);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; wxFileDialog saveFileDialog(</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save image&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="stringliteral">&quot;PNG image file (*.png)|*.png|Bitmap image file (*.bmp)|*.bmp|JPEG image file (*.jpg)|*.jpg&quot;</span>,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; wxFileName imagePath(saveFileDialog.GetPath());</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; wxBitmapType imageType = wxBITMAP_TYPE_BMP;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(imagePath.GetExt() == <span class="stringliteral">&quot;png&quot;</span>)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; imageType = wxBITMAP_TYPE_PNG;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(imagePath.GetExt() == <span class="stringliteral">&quot;jpg&quot;</span>)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; imageType = wxBITMAP_TYPE_JPEG;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; screenshot.SaveFile(imagePath.GetFullPath(), imageType);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuSendClipClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">int</span> x = m_mpWindow-&gt;GetScreenPosition().x;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordtype">int</span> y = m_mpWindow-&gt;GetScreenPosition().y;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordtype">int</span> width = m_mpWindow-&gt;GetSize().GetWidth();</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordtype">int</span> height = m_mpWindow-&gt;GetSize().GetHeight();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxScreenDC dcScreen;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; wxBitmap screenshot(width, height);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; wxMemoryDC memDC;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; memDC.SelectObject(screenshot);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; memDC.Blit(0, 0, width, height, &amp;dcScreen, x, y);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; memDC.SelectObject(wxNullBitmap);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;Open()) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; wxTheClipboard-&gt;SetData(<span class="keyword">new</span> wxBitmapDataObject(screenshot));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Chart send to clipboard&quot;</span>), _(<span class="stringliteral">&quot;Info&quot;</span>), wxOK | wxICON_INFORMATION,</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; wxDefaultPosition);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to send to clipboard&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxICON_ERROR,</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; wxDefaultPosition);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowCoordinatesClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;{</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_showCoords = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowGridClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;{</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_hideGrid = <span class="keyword">event</span>.IsChecked() ? false : <span class="keyword">true</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;}</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuShowLabelClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;{</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; m_showLeg = <span class="keyword">event</span>.IsChecked();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_mpWindow-&gt;UpdateAll();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;}</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;<span class="keywordtype">void</span> ChartView::Fit()</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; m_mpWindow-&gt;Fit();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordtype">double</span> bBox[4];</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; m_mpWindow-&gt;GetBoundingBox(bBox);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_pgPropXMin-&gt;SetValue(bBox[0]);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_pgPropXMax-&gt;SetValue(bBox[1]);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; m_pgPropYMin-&gt;SetValue(bBox[2]);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; m_pgPropYMax-&gt;SetValue(bBox[3]);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keywordtype">void</span> ChartView::UpdatePlot(<span class="keywordtype">bool</span> fit)</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; wxRect legRect = m_leg-&gt;GetRectangle();</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; wxRect coordsRect = m_coords-&gt;GetRectangle();</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; m_mpWindow-&gt;DelAllLayers(<span class="keyword">true</span>, <span class="keyword">false</span>);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// GoAllTrees(treeCtrl_ChartSelection-&gt;GetRootItem());</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; UpdateAllPlots(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; m_xaxis = <span class="keyword">new</span> mpScaleX(m_pgPropXLabel-&gt;GetValueAsString(), mpALIGN_BOTTOM, <span class="keyword">true</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_yaxis = <span class="keyword">new</span> mpScaleY(m_pgPropYLabel-&gt;GetValueAsString(), mpALIGN_LEFT, <span class="keyword">true</span>);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_leg = <span class="keyword">new</span> mpInfoLegend(legRect, wxWHITE_BRUSH);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_coords = <span class="keyword">new</span> mpInfoCoords(coordsRect, wxWHITE_BRUSH);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; m_xaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; m_yaxis-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; m_xaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; m_yaxis-&gt;SetTicks(m_hideGrid);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; mpText* chartTitle = <span class="keyword">new</span> mpText(m_pgPropChartTitle-&gt;GetValueAsString(), 50, 0);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; wxFont chartTitleFont(12, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; chartTitle-&gt;SetFont(chartTitleFont);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_mpWindow-&gt;AddLayer(m_xaxis);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; m_mpWindow-&gt;AddLayer(m_yaxis);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; m_mpWindow-&gt;AddLayer(m_leg);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; m_mpWindow-&gt;AddLayer(m_coords);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; m_mpWindow-&gt;AddLayer(chartTitle);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; m_leg-&gt;SetVisible(m_showLeg);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; m_coords-&gt;SetVisible(m_showCoords);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">if</span>(fit) Fit();</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; wxColour grey(96, 96, 96);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(m_darkTheme) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxBLACK, *wxWHITE, grey);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; m_leg-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; m_coords-&gt;SetBrush(*wxBLACK_BRUSH);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; m_mpWindow-&gt;SetColourTheme(*wxWHITE, *wxBLACK, grey);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_leg-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; m_coords-&gt;SetBrush(*wxWHITE_BRUSH);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="keywordtype">void</span> ChartView::OnTreeItemActivated(wxTreeEvent&amp; event)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(event.GetItem()))) {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">bool</span> isPlotting = data-&gt;IsPlot() ? false : <span class="keyword">true</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; data-&gt;SetPlot(isPlotting);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; m_pgPropDraw-&gt;SetValue(data-&gt;IsPlot());</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(isPlotting) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; wxColour colour = GetNextColour();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; data-&gt;SetColour(colour);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; m_pgPropColor-&gt;SetValue(static_cast&lt;wxVariant&gt;(colour));</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">true</span>);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; m_treeCtrl-&gt;SetItemBold(m_treeCtrl-&gt;GetSelection(), <span class="keyword">false</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; UpdatePlot(<span class="keyword">true</span>);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(event.GetItem() == m_treeTimeID) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; AllToYAxis(m_treeCtrl-&gt;GetRootItem());</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; m_treeCtrl-&gt;SetItemTextColour(m_treeTimeID, *wxRED);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; m_xAxisValues = m_time;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; UpdatePlot(<span class="keyword">true</span>);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;<span class="keywordtype">void</span> ChartView::OnTreeItemSelectionChanged(wxTreeEvent&amp; event)</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;{</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(event.GetItem()))) {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; m_pgPropDraw-&gt;SetValue(data-&gt;IsPlot());</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; wxVariant colour;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; colour &lt;&lt; data-&gt;GetColour();</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; m_pgPropColor-&gt;SetValue(colour);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; m_pgProplineThick-&gt;SetValue(data-&gt;GetThick());</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_pgProplineType-&gt;SetValue(data-&gt;GetPenType());</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; m_pgProplineAxis-&gt;SetValue(data-&gt;GetAxis());</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;}</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;<span class="keywordtype">void</span> ChartView::BuildColourList()</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;{</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; m_colourList.push_back(wxColour(255, 0, 0));</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_colourList.push_back(wxColour(0, 0, 255));</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; m_colourList.push_back(wxColour(0, 255, 0));</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; m_colourList.push_back(wxColour(255, 128, 0));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_colourList.push_back(wxColour(128, 0, 255));</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; m_colourList.push_back(wxColour(0, 255, 128));</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; m_colourList.push_back(wxColour(255, 255, 0));</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; m_colourList.push_back(wxColour(255, 0, 255));</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; m_colourList.push_back(wxColour(0, 255, 255));</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; m_colourList.push_back(wxColour(128, 255, 0));</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; m_colourList.push_back(wxColour(255, 0, 128));</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; m_colourList.push_back(wxColour(0, 128, 255));</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_colourList.push_back(wxColour(128, 128, 128));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; m_colourList.push_back(*wxBLACK);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_itColourList = --m_colourList.end();</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;}</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;wxColour ChartView::GetNextColour()</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;{</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">if</span>(*m_itColourList == *wxBLACK)</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; m_itColourList = m_colourList.begin();</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; ++m_itColourList;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">return</span> *m_itColourList;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;}</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160;wxTreeItemId ChartView::AllToYAxis(wxTreeItemId root)</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;{</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; m_treeCtrl-&gt;SetItemTextColour(item, *wxBLACK);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) data-&gt;SetAxis(0); <span class="comment">// X axis.</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; wxTreeItemId nextChild = AllToYAxis(item);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;}</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;wxTreeItemId ChartView::UpdateAllPlots(wxTreeItemId root)</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;{</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>(data-&gt;IsPlot()) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; wxString parentName = m_treeCtrl-&gt;GetItemText(m_treeCtrl-&gt;GetItemParent(item));</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; mpFXYVector* newLayer = <span class="keyword">new</span> mpFXYVector(data-&gt;GetName() + <span class="stringliteral">&quot; (&quot;</span> + parentName + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; newLayer-&gt;SetData(m_xAxisValues, data-&gt;GetValues());</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; newLayer-&gt;SetContinuity(<span class="keyword">true</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; wxPen layerPen(data-&gt;GetColour(), data-&gt;GetThick(), data-&gt;GetPenType());</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; newLayer-&gt;SetPen(layerPen);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; newLayer-&gt;SetDrawOutsideMargins(<span class="keyword">false</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; newLayer-&gt;ShowName(<span class="keyword">false</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; m_mpWindow-&gt;AddLayer(newLayer);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; wxTreeItemId nextChild = UpdateAllPlots(item);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;}</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;<span class="keywordtype">void</span> ChartView::OnMenuExpCSVClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;{</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save CSV file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CSV file (*.csv)|*.csv&quot;</span>,</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; wxTextFile csvFile(saveFileDialog.GetPath());</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span>(!csvFile.Create()) {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">if</span>(!csvFile.Open()) {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open or create the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; csvFile.Open();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span>(csvFile.IsOpened()) {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; csvFile.Clear();</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; csvFile.AddLine(GetActiveCurvesCSV());</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; csvFile.Write();</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; csvFile.Close();</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;}</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;wxString ChartView::GetActiveCurvesCSV()</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;{</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; std::vector&lt;PlotData*&gt; activePlotDataList;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; GetActivePlotData(m_treeCtrl-&gt;GetRootItem(), activePlotDataList);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; std::vector&lt;double&gt; xValues;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; wxString xName = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// Find X axis curve, if none is found, X is the m_time.</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordtype">bool</span> foundXAxis = <span class="keyword">false</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(), itEnd = activePlotDataList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = *it;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">if</span>(data-&gt;GetAxis() == 1) {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; xValues = data-&gt;GetValues();</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; xName = data-&gt;GetName();</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; foundXAxis = <span class="keyword">true</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; activePlotDataList.erase(it);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">delete</span> data;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; }</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span>(!foundXAxis) {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; xValues = m_time;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; xName = _(<span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="comment">// Build CSV text.</span></div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; wxString csvText = xName + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(), itEnd = activePlotDataList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = *it;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; csvText += data-&gt;GetName() + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; csvText[csvText.length() - 1] = <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; xValues.size(); ++i) {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; csvText += wxString::FromCDouble(xValues[i], 13) + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; activePlotDataList.size(); ++j) {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">if</span>(i &lt; activePlotDataList[j]-&gt;GetValues().size()) {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; value = activePlotDataList[j]-&gt;GetValues()[i];</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; csvText += wxString::FromCDouble(value, 13) + <span class="stringliteral">&quot;;&quot;</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; csvText[csvText.length() - 1] = <span class="charliteral">&#39;\n&#39;</span>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="comment">// Clear active plot data vector.</span></div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = activePlotDataList.begin(); it != activePlotDataList.end(); ++it) {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">delete</span>(*it);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; activePlotDataList.clear();</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> csvText;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;}</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;wxTreeItemId ChartView::GetActivePlotData(wxTreeItemId root, std::vector&lt;PlotData*&gt;&amp; plotDataList)</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;{</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; wxTreeItemIdValue cookie;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; wxTreeItemId item = m_treeCtrl-&gt;GetFirstChild(root, cookie);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; wxTreeItemId child;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">while</span>(item.IsOk()) {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_plot_data.html">PlotData</a>* data = dynamic_cast&lt;PlotData*&gt;(m_treeCtrl-&gt;GetItemData(item))) {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(data-&gt;IsPlot() || data-&gt;GetAxis() == 1) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; wxString parentName = m_treeCtrl-&gt;GetItemText(m_treeCtrl-&gt;GetItemParent(item));</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* dataCopy = <span class="keyword">new</span> <a class="code" href="class_plot_data.html">PlotData</a>();</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; *dataCopy = *data;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; dataCopy-&gt;SetName(data-&gt;GetName() + <span class="stringliteral">&quot; (&quot;</span> + parentName + <span class="stringliteral">&quot;)&quot;</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; plotDataList.push_back(dataCopy);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span>(m_treeCtrl-&gt;ItemHasChildren(item)) {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; wxTreeItemId nextChild = GetActivePlotData(item, plotDataList);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">if</span>(nextChild.IsOk()) <span class="keywordflow">return</span> nextChild;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; item = m_treeCtrl-&gt;GetNextChild(root, cookie);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; wxTreeItemId dummyID;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">return</span> dummyID;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;}</div><div class="ttc" id="class_chart_view_base_html"><div class="ttname"><a href="class_chart_view_base.html">ChartViewBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_base_8h_source.html#l00039">ChartViewBase.h:39</a></div></div>
+<div class="ttc" id="_chart_view_8h_html"><div class="ttname"><a href="_chart_view_8h.html">ChartView.h</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_element_plot_data_8h_html"><div class="ttname"><a href="_element_plot_data_8h.html">ElementPlotData.h</a></div></div>
+<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdoc">This class is responsible to manage the graphical data of electromechanical result to be plotted on c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00035">ElementPlotData.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_chart_view_8h.html b/docs/doxygen/html/_chart_view_8h.html
new file mode 100644
index 0000000..90336b5
--- /dev/null
+++ b/docs/doxygen/html/_chart_view_8h.html
@@ -0,0 +1,122 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ChartView.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_chart_view_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ChartView.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ChartViewBase.h&quot;</code><br />
+<code>#include &quot;wxMathPlot/mathplot.h&quot;</code><br />
+<code>#include &lt;wx/msgdlg.h&gt;</code><br />
+<code>#include &lt;wx/clipbrd.h&gt;</code><br />
+<code>#include &lt;wx/bitmap.h&gt;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &lt;wx/filedlg.h&gt;</code><br />
+<code>#include &lt;wx/textfile.h&gt;</code><br />
+</div>
+<p><a href="_chart_view_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_chart_view.html">ChartView</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is responsible to manage the charts generated in the transient electromechanical studies. <a href="class_chart_view.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_chart_view_8h.html">ChartView.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_chart_view_8h_source.html b/docs/doxygen/html/_chart_view_8h_source.html
index 2b4ad7f..f861742 100644
--- a/docs/doxygen/html/_chart_view_8h_source.html
+++ b/docs/doxygen/html/_chart_view_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_chart_view_8h_source.html','');});
<div class="title">ChartView.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CHARTVIEW_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CHARTVIEW_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ChartViewBase.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;wxMathPlot/mathplot.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/clipbrd.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;wx/bitmap.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;wx/filedlg.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">class </span><a class="code" href="class_plot_data.html">PlotData</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_chart_view.html"> 16</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a> : <span class="keyword">public</span> <a class="code" href="class_chart_view_base.html">ChartViewBase</a></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>(wxWindow* parent, std::vector&lt;ElementPlotData&gt; epdList, std::vector&lt;double&gt; time);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_chart_view.html">ChartView</a>();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">void</span> Fit();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">void</span> UpdatePlot(<span class="keywordtype">bool</span> fit = <span class="keyword">true</span>);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuExpCSVClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTreeItemActivated(wxTreeEvent&amp; event);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTreeItemSelectionChanged(wxTreeEvent&amp; event);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuDarkThemeClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuExitClick(wxCommandEvent&amp; event) { Close(); }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuFitClick(wxCommandEvent&amp; event) { Fit(); }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuSaveImageClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuSendClipClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowCoordinatesClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowGridClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowLabelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPropertyGridChange(wxPropertyGridEvent&amp; event);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMPWindow();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTreectrl();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> BuildColourList();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> wxColour GetNextColour();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> wxTreeItemId AllToYAxis(wxTreeItemId root);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> wxTreeItemId UpdateAllPlots(wxTreeItemId root);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> wxString GetActiveCurvesCSV();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> wxTreeItemId GetActivePlotData(wxTreeItemId root, std::vector&lt;PlotData*&gt;&amp; plotDataList);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxPGProperty* m_pgPropColor = NULL;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxTreeItemId m_treeTimeID;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::vector&lt;ElementPlotData&gt; m_epdList;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::vector&lt;double&gt; m_time;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;double&gt; m_xAxisValues;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; mpWindow* m_mpWindow = NULL;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; mpScaleX* m_xaxis = NULL;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; mpScaleY* m_yaxis = NULL;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; mpText* m_chartTitle = NULL;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; mpInfoCoords* m_coords = NULL;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; mpInfoLegend* m_leg = NULL;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> m_hideGrid = <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">bool</span> m_showLeg = <span class="keyword">true</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">bool</span> m_showCoords = <span class="keyword">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">bool</span> m_darkTheme = <span class="keyword">false</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;wxColour&gt; m_colourList;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;wxColour&gt;::iterator m_itColourList;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="preprocessor">#endif // CHARTVIEW_H</span></div><div class="ttc" id="class_chart_view_base_html"><div class="ttname"><a href="class_chart_view_base.html">ChartViewBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_base_8h_source.html#l00039">ChartViewBase.h:39</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00010">ElementPlotData.h:10</a></div></div>
+<a href="_chart_view_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CHARTVIEW_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CHARTVIEW_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ChartViewBase.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;wxMathPlot/mathplot.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/clipbrd.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;wx/bitmap.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;wx/filedlg.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_plot_data.html">PlotData</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_chart_view.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a> : <span class="keyword">public</span> <a class="code" href="class_chart_view_base.html">ChartViewBase</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>(wxWindow* parent, std::vector&lt;ElementPlotData&gt; epdList, std::vector&lt;double&gt; time);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_chart_view.html">ChartView</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">void</span> Fit();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> UpdatePlot(<span class="keywordtype">bool</span> fit = <span class="keyword">true</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuExpCSVClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTreeItemActivated(wxTreeEvent&amp; event);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTreeItemSelectionChanged(wxTreeEvent&amp; event);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuDarkThemeClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuExitClick(wxCommandEvent&amp; event) { Close(); }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuFitClick(wxCommandEvent&amp; event) { Fit(); }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuSaveImageClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuSendClipClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowCoordinatesClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowGridClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMenuShowLabelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPropertyGridChange(wxPropertyGridEvent&amp; event);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetMPWindow();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTreectrl();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> BuildColourList();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> wxColour GetNextColour();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> wxTreeItemId AllToYAxis(wxTreeItemId root);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> wxTreeItemId UpdateAllPlots(wxTreeItemId root);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> wxString GetActiveCurvesCSV();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> wxTreeItemId GetActivePlotData(wxTreeItemId root, std::vector&lt;PlotData*&gt;&amp; plotDataList);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; wxPGProperty* m_pgPropColor = NULL;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxTreeItemId m_treeTimeID;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;ElementPlotData&gt; m_epdList;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; std::vector&lt;double&gt; m_time;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; std::vector&lt;double&gt; m_xAxisValues;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; mpWindow* m_mpWindow = NULL;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; mpScaleX* m_xaxis = NULL;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; mpScaleY* m_yaxis = NULL;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; mpText* m_chartTitle = NULL;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; mpInfoCoords* m_coords = NULL;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; mpInfoLegend* m_leg = NULL;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">bool</span> m_hideGrid = <span class="keyword">true</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">bool</span> m_showLeg = <span class="keyword">true</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">bool</span> m_showCoords = <span class="keyword">false</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">bool</span> m_darkTheme = <span class="keyword">false</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::vector&lt;wxColour&gt; m_colourList;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;wxColour&gt;::iterator m_itColourList;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;};</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif // CHARTVIEW_H</span></div><div class="ttc" id="class_chart_view_base_html"><div class="ttname"><a href="class_chart_view_base.html">ChartViewBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_base_8h_source.html#l00039">ChartViewBase.h:39</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdoc">This class is responsible to manage the graphical data of electromechanical result to be plotted on c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00035">ElementPlotData.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ChartView.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_chart_view_8h.html">ChartView.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_chart_view_base_8cpp_source.html b/docs/doxygen/html/_chart_view_base_8cpp_source.html
index 48c58bf..0825678 100644
--- a/docs/doxygen/html/_chart_view_base_8cpp_source.html
+++ b/docs/doxygen/html/_chart_view_base_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_chart_view_base_8h_source.html b/docs/doxygen/html/_chart_view_base_8h_source.html
index 536573d..e729e4c 100644
--- a/docs/doxygen/html/_chart_view_base_8h_source.html
+++ b/docs/doxygen/html/_chart_view_base_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_chart_view_bitmaps_8cpp_source.html b/docs/doxygen/html/_chart_view_bitmaps_8cpp_source.html
index 46f6cf0..8424734 100644
--- a/docs/doxygen/html/_chart_view_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_chart_view_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_connection_line_8cpp_source.html b/docs/doxygen/html/_connection_line_8cpp_source.html
index 2a92d45..01771a2 100644
--- a/docs/doxygen/html/_connection_line_8cpp_source.html
+++ b/docs/doxygen/html/_connection_line_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,18 @@ $(document).ready(function(){initNavTree('_connection_line_8cpp_source.html','')
<div class="title">ConnectionLine.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;ConnectionLine::ConnectionLine() : <a class="code" href="class_control_element.html">ControlElement</a>(-1)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;}</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;ConnectionLine::ConnectionLine(<a class="code" href="class_node.html">Node</a>* firstNode, <span class="keywordtype">int</span> <span class="keywordtype">id</span>)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxPoint2DDouble pt = firstNode-&gt;GetPosition();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_tmpSndPt = pt;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 6; i++) {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_pointList.push_back(pt);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; }</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_nodeList.push_back(firstNode);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; firstNode-&gt;SetConnected();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;ConnectionLine::~ConnectionLine() {}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e"> 21</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// Line selected (Layer 1).</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// Draw line (Layer 2)</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(m_type == ELEMENT_LINE) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; DrawCircle(m_pointList[5], 3, 10, GL_POLYGON);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f"> 41</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(PointToLineDistance(position) &lt; 5.0) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6"> 49</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_pointList.begin(); it != m_pointList.end(); ++it) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(rect.Contains(*it)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> ConnectionLine::UpdatePoints()</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(m_type == ELEMENT_ELEMENT) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> hasOneNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; wxPoint2DDouble pt1 = m_nodeList[0]-&gt;GetPosition();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxPoint2DDouble pt2;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() == 1)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; pt2 = m_tmpSndPt;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; pt2 = m_nodeList[1]-&gt;GetPosition();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; hasOneNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxPoint2DDouble midPt = (pt1 + pt2) / 2.0 + wxPoint2DDouble(0.0, m_lineOffset);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_pointList[0] = pt1;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_pointList[2] = m_pointList[1] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[1].m_y);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_pointList[5] = pt2;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(hasOneNode)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_pointList[4] = pt2;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_pointList[3] = m_pointList[4] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[4].m_y);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_type == ELEMENT_LINE) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; wxPoint2DDouble pt1 = m_nodeList[0]-&gt;GetPosition();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; wxPoint2DDouble pt2 = m_parentLine-&gt;GetMidPoint();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; wxPoint2DDouble midPt = (pt1 + pt2) / 2.0 + wxPoint2DDouble(0.0, m_lineOffset);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_pointList[0] = pt1;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_pointList[2] = m_pointList[1] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[1].m_y);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_pointList[5] = pt2;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(m_pointList[2].m_y &gt; pt2.m_y) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_pointList[3] = m_pointList[4] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[4].m_y);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; child-&gt;UpdatePoints();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keywordtype">bool</span> ConnectionLine::AppendNode(<a class="code" href="class_node.html">Node</a>* node, <a class="code" href="class_control_element.html">ControlElement</a>* parent)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;{</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0] == node) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetNodeType() == node-&gt;GetNodeType()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">auto</span> nodeList = parent-&gt;GetNodeList();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = nodeList.begin(), itEnd = nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_node.html">Node</a>* parentNode = *it;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(parentNode == m_nodeList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_nodeList.push_back(node);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; node-&gt;SetConnected();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7"> 146</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_lineOffset = m_moveStartOffset + position.m_y - m_moveStartPtY;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; UpdatePoints();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"><a class="line" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36"> 152</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_moveStartPtY = position.m_y;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_moveStartOffset = m_lineOffset;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;wxPoint2DDouble ConnectionLine::GetMidPoint()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((m_pointList[2] + m_pointList[3]) / 2.0); }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;<span class="keywordtype">bool</span> ConnectionLine::SetParentLine(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent)</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;{</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetNodeType() != Node::NODE_IN) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(!parent) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_type = ELEMENT_LINE;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_parentLine = parent;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;std::vector&lt;ConnectionLine*&gt; ConnectionLine::GetLineChildList()<span class="keyword"> const</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; std::vector&lt;ConnectionLine*&gt; childList;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; childList.push_back(child);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> childList;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702"> 180</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); ++it) {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span>(element == parent) m_parentList.erase(it--);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c"> 188</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a>()</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copy = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00146">ConnectionLine.cpp:146</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_connection_line_html_a131a890bd54059c5370f1dc5156c192c"><div class="ttname"><a href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a></div><div class="ttdeci">Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00188">ConnectionLine.cpp:188</a></div></div>
-<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00021">ConnectionLine.cpp:21</a></div></div>
-<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00041">ConnectionLine.cpp:41</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_connection_line_html_a3f5584348b86e665161b033d4ce8d702"><div class="ttname"><a href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00180">ConnectionLine.cpp:180</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00152">ConnectionLine.cpp:152</a></div></div>
-<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00049">ConnectionLine.cpp:49</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;ConnectionLine::ConnectionLine() : <a class="code" href="class_control_element.html">ControlElement</a>(-1) {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;ConnectionLine::ConnectionLine(<a class="code" href="class_node.html">Node</a>* firstNode, <span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; wxPoint2DDouble pt = firstNode-&gt;GetPosition();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_tmpSndPt = pt;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 6; i++) {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_pointList.push_back(pt);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_nodeList.push_back(firstNode);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; firstNode-&gt;SetConnected();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;ConnectionLine::~ConnectionLine() {}</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e"> 33</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Line selected (Layer 1).</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Draw line (Layer 2)</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(m_type == ELEMENT_LINE) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; DrawCircle(m_pointList[5], 3, 10, GL_POLYGON);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f"> 53</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(PointToLineDistance(position) &lt; 5.0) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6"> 61</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_pointList.begin(); it != m_pointList.end(); ++it) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(rect.Contains(*it)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> ConnectionLine::UpdatePoints()</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(m_type == ELEMENT_ELEMENT) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">bool</span> hasOneNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxPoint2DDouble pt1 = m_nodeList[0]-&gt;GetPosition();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; wxPoint2DDouble pt2;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() == 1)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; pt2 = m_tmpSndPt;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; pt2 = m_nodeList[1]-&gt;GetPosition();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; hasOneNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; wxPoint2DDouble midPt = (pt1 + pt2) / 2.0 + wxPoint2DDouble(0.0, m_lineOffset);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_pointList[0] = pt1;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_pointList[2] = m_pointList[1] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[1].m_y);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_pointList[5] = pt2;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(hasOneNode)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_pointList[4] = pt2;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[1]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_pointList[3] = m_pointList[4] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[4].m_y);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_type == ELEMENT_LINE) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; wxPoint2DDouble pt1 = m_nodeList[0]-&gt;GetPosition();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; wxPoint2DDouble pt2 = m_parentLine-&gt;GetMidPoint();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; wxPoint2DDouble midPt = (pt1 + pt2) / 2.0 + wxPoint2DDouble(0.0, m_lineOffset);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_pointList[0] = pt1;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 0.0)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(-10, 0);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 90.0)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 180.0)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(10, 0);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetAngle() == 270.0)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_pointList[1] = m_pointList[0] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_pointList[2] = m_pointList[1] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[1].m_y);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_pointList[5] = pt2;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span>(m_pointList[2].m_y &gt; pt2.m_y) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, 10);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_pointList[4] = m_pointList[5] + wxPoint2DDouble(0, -10);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_pointList[3] = m_pointList[4] + wxPoint2DDouble(0.0, midPt.m_y - m_pointList[4].m_y);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; child-&gt;UpdatePoints();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;<span class="keywordtype">bool</span> ConnectionLine::AppendNode(<a class="code" href="class_node.html">Node</a>* node, <a class="code" href="class_control_element.html">ControlElement</a>* parent)</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;{</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0] == node) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetNodeType() == node-&gt;GetNodeType()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">auto</span> nodeList = parent-&gt;GetNodeList();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = nodeList.begin(), itEnd = nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="class_node.html">Node</a>* parentNode = *it;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(parentNode == m_nodeList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_nodeList.push_back(node);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; node-&gt;SetConnected();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7"> 158</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_lineOffset = m_moveStartOffset + position.m_y - m_moveStartPtY;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; UpdatePoints();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36"> 164</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_moveStartPtY = position.m_y;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_moveStartOffset = m_lineOffset;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;}</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;wxPoint2DDouble ConnectionLine::GetMidPoint()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> ((m_pointList[2] + m_pointList[3]) / 2.0); }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">bool</span> ConnectionLine::SetParentLine(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(m_nodeList[0]-&gt;GetNodeType() != Node::NODE_IN) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(!parent) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_type = ELEMENT_LINE;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_parentLine = parent;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;std::vector&lt;ConnectionLine*&gt; ConnectionLine::GetLineChildList()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; std::vector&lt;ConnectionLine*&gt; childList;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; childList.push_back(child);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> childList;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702"> 191</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); ++it) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(element == parent) m_parentList.erase(it--);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c"> 199</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a>()</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copy = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00158">ConnectionLine.cpp:158</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_connection_line_html_a131a890bd54059c5370f1dc5156c192c"><div class="ttname"><a href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a></div><div class="ttdeci">Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00199">ConnectionLine.cpp:199</a></div></div>
+<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00033">ConnectionLine.cpp:33</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00053">ConnectionLine.cpp:53</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_connection_line_html_a3f5584348b86e665161b033d4ce8d702"><div class="ttname"><a href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00191">ConnectionLine.cpp:191</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00164">ConnectionLine.cpp:164</a></div></div>
+<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00061">ConnectionLine.cpp:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_connection_line_8h.html b/docs/doxygen/html/_connection_line_8h.html
new file mode 100644
index 0000000..a8e17fc
--- /dev/null
+++ b/docs/doxygen/html/_connection_line_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ConnectionLine.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_connection_line_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ConnectionLine.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_connection_line_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_connection_line.html">ConnectionLine</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Connection between two control elements or other connection line and an element. <a href="class_connection_line.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_connection_line_8h.html">ConnectionLine.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_connection_line_8h_source.html b/docs/doxygen/html/_connection_line_8h_source.html
index a9d1037..0c1688b 100644
--- a/docs/doxygen/html/_connection_line_8h_source.html
+++ b/docs/doxygen/html/_connection_line_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,24 @@ $(document).ready(function(){initNavTree('_connection_line_8h_source.html','');}
<div class="title">ConnectionLine.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONNECTIONLINE_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONNECTIONLINE_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_connection_line.html"> 6</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">enum</span> ConnectionLineType { ELEMENT_ELEMENT = 0, ELEMENT_LINE };</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>(<a class="code" href="class_node.html">Node</a>* firstNode, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">Intersects</a>(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AppendNode(<a class="code" href="class_node.html">Node</a>* node, <a class="code" href="class_control_element.html">ControlElement</a>* parent);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTemporarySecondPoint(wxPoint2DDouble point) { m_tmpSndPt = point; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble GetMidPoint() <span class="keyword">const</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetOffset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lineOffset; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetOffset(<span class="keywordtype">double</span> offset) { m_lineOffset = offset; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> ConnectionLineType GetType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_type; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetType(ConnectionLineType newType) { m_type = newType; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>* GetParentLine()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_parentLine; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetParentLine(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ConnectionLine*&gt; GetLineChildList() <span class="keyword">const</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value) { m_value = value; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">GetCopy</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> m_lineOffset = 0.0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> m_moveStartPtY = 0.0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">double</span> m_moveStartOffset = 0.0;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxPoint2DDouble m_tmpSndPt;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ConnectionLineType m_type = ELEMENT_ELEMENT;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* m_parentLine = NULL;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; </div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> m_value;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="preprocessor">#endif // CONNECTIONLINE_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00146">ConnectionLine.cpp:146</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_connection_line_html_a131a890bd54059c5370f1dc5156c192c"><div class="ttname"><a href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a></div><div class="ttdeci">Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00188">ConnectionLine.cpp:188</a></div></div>
-<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00021">ConnectionLine.cpp:21</a></div></div>
-<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00041">ConnectionLine.cpp:41</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_connection_line_html_a3f5584348b86e665161b033d4ce8d702"><div class="ttname"><a href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00180">ConnectionLine.cpp:180</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00152">ConnectionLine.cpp:152</a></div></div>
-<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00049">ConnectionLine.cpp:49</a></div></div>
+<a href="_connection_line_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONNECTIONLINE_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONNECTIONLINE_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_connection_line.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">enum</span> ConnectionLineType { ELEMENT_ELEMENT = 0, ELEMENT_LINE };</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>(<a class="code" href="class_node.html">Node</a>* firstNode, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_connection_line.html">ConnectionLine</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">Intersects</a>(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AppendNode(<a class="code" href="class_node.html">Node</a>* node, <a class="code" href="class_control_element.html">ControlElement</a>* parent);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetTemporarySecondPoint(wxPoint2DDouble point) { m_tmpSndPt = point; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble GetMidPoint() <span class="keyword">const</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetOffset()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lineOffset; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetOffset(<span class="keywordtype">double</span> offset) { m_lineOffset = offset; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> ConnectionLineType GetType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_type; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetType(ConnectionLineType newType) { m_type = newType; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>* GetParentLine()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_parentLine; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetParentLine(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ConnectionLine*&gt; GetLineChildList() <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value) { m_value = value; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">GetCopy</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">double</span> m_lineOffset = 0.0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">double</span> m_moveStartPtY = 0.0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> m_moveStartOffset = 0.0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; wxPoint2DDouble m_tmpSndPt;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; ConnectionLineType m_type = ELEMENT_ELEMENT;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* m_parentLine = NULL;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> m_value;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // CONNECTIONLINE_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00158">ConnectionLine.cpp:158</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_connection_line_html_a131a890bd54059c5370f1dc5156c192c"><div class="ttname"><a href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine::GetCopy</a></div><div class="ttdeci">Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00199">ConnectionLine.cpp:199</a></div></div>
+<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00033">ConnectionLine.cpp:33</a></div></div>
+<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00053">ConnectionLine.cpp:53</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_connection_line_html_a3f5584348b86e665161b033d4ce8d702"><div class="ttname"><a href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00191">ConnectionLine.cpp:191</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00164">ConnectionLine.cpp:164</a></div></div>
+<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00061">ConnectionLine.cpp:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ConnectionLine.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_connection_line_8h.html">ConnectionLine.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_constant_8cpp_source.html b/docs/doxygen/html/_constant_8cpp_source.html
index 1d1eeb3..2329458 100644
--- a/docs/doxygen/html/_constant_8cpp_source.html
+++ b/docs/doxygen/html/_constant_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,21 @@ $(document).ready(function(){initNavTree('_constant_8cpp_source.html','');});
<div class="title">Constant.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Constant.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ConstantForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Constant::Constant(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_angle = 180.0;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;Constant::~Constant() {}</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591"> 15</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; DrawNodes();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061"> 39</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_constant_form.html">ConstantForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_constant_form.html">ConstantForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6"> 50</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; UpdatePoints();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> Constant::UpdatePoints()</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> Constant::SetValue(<span class="keywordtype">double</span> value)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_value = value;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; wxString text = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(m_value);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 6 + 2 * m_borderSize;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_height = m_glStringValue-&gt;getheight() + 6 + 2 * m_borderSize;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; UpdatePoints();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa"> 106</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a>()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_constant.html">Constant</a>* copy = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(m_elementID);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_constant_html_ac566e3a63326d3f543a55af14ae0f8fa"><div class="ttname"><a href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00106">Constant.cpp:106</a></div></div>
-<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00053">Element.cpp:53</a></div></div>
-<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00007">ConstantForm.h:7</a></div></div>
-<div class="ttc" id="class_constant_html_af6bded0e01717303bb71da9e45c2b061"><div class="ttname"><a href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00039">Constant.cpp:39</a></div></div>
-<div class="ttc" id="class_constant_html_a867addfc3c1a755b7aa0032d119245c6"><div class="ttname"><a href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00050">Constant.cpp:50</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_8h.html">Constant.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_form_8h.html">ConstantForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Constant::Constant(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_angle = 180.0;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;Constant::~Constant() {}</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591"> 32</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawNodes();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061"> 56</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_constant_form.html">ConstantForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_constant_form.html">ConstantForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6"> 67</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; UpdatePoints();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">void</span> Constant::UpdatePoints()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keywordtype">void</span> Constant::SetValue(<span class="keywordtype">double</span> value)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_value = value;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxString text = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(m_value);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 6 + 2 * m_borderSize;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_height = m_glStringValue-&gt;getheight() + 6 + 2 * m_borderSize;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; UpdatePoints();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa"> 123</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a>()</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="class_constant.html">Constant</a>* copy = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(m_elementID);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_constant_html_ac566e3a63326d3f543a55af14ae0f8fa"><div class="ttname"><a href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00123">Constant.cpp:123</a></div></div>
+<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00069">Element.cpp:69</a></div></div>
+<div class="ttc" id="_constant_form_8h_html"><div class="ttname"><a href="_constant_form_8h.html">ConstantForm.h</a></div></div>
+<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdoc">Form to edit the constant control data. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00031">ConstantForm.h:31</a></div></div>
+<div class="ttc" id="_constant_8h_html"><div class="ttname"><a href="_constant_8h.html">Constant.h</a></div></div>
+<div class="ttc" id="class_constant_html_af6bded0e01717303bb71da9e45c2b061"><div class="ttname"><a href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00056">Constant.cpp:56</a></div></div>
+<div class="ttc" id="class_constant_html_a867addfc3c1a755b7aa0032d119245c6"><div class="ttname"><a href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00067">Constant.cpp:67</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
-<div class="ttc" id="class_constant_html_afc4d8739980ae1b57e9c5058c2e05591"><div class="ttname"><a href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00015">Constant.cpp:15</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
+<div class="ttc" id="class_constant_html_afc4d8739980ae1b57e9c5058c2e05591"><div class="ttname"><a href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00032">Constant.cpp:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_constant_8h.html b/docs/doxygen/html/_constant_8h.html
new file mode 100644
index 0000000..30c1dbf
--- /dev/null
+++ b/docs/doxygen/html/_constant_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Constant.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_constant_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Constant.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &quot;wxGLString.h&quot;</code><br />
+</div>
+<p><a href="_constant_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_constant.html">Constant</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">A control element that provides a constant value. <a href="class_constant.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_constant_8h.html">Constant.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_constant_8h_source.html b/docs/doxygen/html/_constant_8h_source.html
index 9b8c707..53dc0fa 100644
--- a/docs/doxygen/html/_constant_8h_source.html
+++ b/docs/doxygen/html/_constant_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,24 @@ $(document).ready(function(){initNavTree('_constant_8h_source.html','');});
<div class="title">Constant.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONSTANT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONSTANT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant_form.html">ConstantForm</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_constant.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_constant.html">Constant</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; ~<a class="code" href="class_constant.html">Constant</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_constant.html#ae091eb79633beb158dc06880424f7ce6"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#ae091eb79633beb158dc06880424f7ce6">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2"> 19</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">GetCopy</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> m_value = 1.0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif // CONSTANT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_constant_html_ae091eb79633beb158dc06880424f7ce6"><div class="ttname"><a href="class_constant.html#ae091eb79633beb158dc06880424f7ce6">Constant::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00018">Constant.h:18</a></div></div>
-<div class="ttc" id="class_constant_html_ac2e2c958b3d38ed381d59cbb361974b2"><div class="ttname"><a href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2">Constant::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00019">Constant.h:19</a></div></div>
-<div class="ttc" id="class_constant_html_ac566e3a63326d3f543a55af14ae0f8fa"><div class="ttname"><a href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00106">Constant.cpp:106</a></div></div>
-<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00007">ConstantForm.h:7</a></div></div>
-<div class="ttc" id="class_constant_html_af6bded0e01717303bb71da9e45c2b061"><div class="ttname"><a href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00039">Constant.cpp:39</a></div></div>
-<div class="ttc" id="class_constant_html_a867addfc3c1a755b7aa0032d119245c6"><div class="ttname"><a href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00050">Constant.cpp:50</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<a href="_constant_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONSTANT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONSTANT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant_form.html">ConstantForm</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_constant.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_constant.html">Constant</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ~<a class="code" href="class_constant.html">Constant</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_constant.html#ae091eb79633beb158dc06880424f7ce6"> 42</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#ae091eb79633beb158dc06880424f7ce6">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2"> 43</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">GetCopy</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> m_value = 1.0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif // CONSTANT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_constant_html_ae091eb79633beb158dc06880424f7ce6"><div class="ttname"><a href="class_constant.html#ae091eb79633beb158dc06880424f7ce6">Constant::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00042">Constant.h:42</a></div></div>
+<div class="ttc" id="class_constant_html_ac2e2c958b3d38ed381d59cbb361974b2"><div class="ttname"><a href="class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2">Constant::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00043">Constant.h:43</a></div></div>
+<div class="ttc" id="class_constant_html_ac566e3a63326d3f543a55af14ae0f8fa"><div class="ttname"><a href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00123">Constant.cpp:123</a></div></div>
+<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdoc">Form to edit the constant control data. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00031">ConstantForm.h:31</a></div></div>
+<div class="ttc" id="class_constant_html_af6bded0e01717303bb71da9e45c2b061"><div class="ttname"><a href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00056">Constant.cpp:56</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_constant_html_a867addfc3c1a755b7aa0032d119245c6"><div class="ttname"><a href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00067">Constant.cpp:67</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
-<div class="ttc" id="class_constant_html_afc4d8739980ae1b57e9c5058c2e05591"><div class="ttname"><a href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00015">Constant.cpp:15</a></div></div>
+<div class="ttc" id="class_constant_html_afc4d8739980ae1b57e9c5058c2e05591"><div class="ttname"><a href="class_constant.html#afc4d8739980ae1b57e9c5058c2e05591">Constant::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8cpp_source.html#l00032">Constant.cpp:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Constant.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_constant_8h.html">Constant.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_constant_form_8cpp_source.html b/docs/doxygen/html/_constant_form_8cpp_source.html
index 0b1dae9..f90c121 100644
--- a/docs/doxygen/html/_constant_form_8cpp_source.html
+++ b/docs/doxygen/html/_constant_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_constant_form_8cpp_source.html','');}
<div class="title">ConstantForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ConstantForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Constant.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;ConstantForm::ConstantForm(wxWindow* parent, <a class="code" href="class_constant.html">Constant</a>* constant) : <a class="code" href="class_constant_form_base.html">ConstantFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_parent = parent;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_constant = constant;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_textCtrlValue-&gt;SetValue(m_constant-&gt;StringFromDouble(m_constant-&gt;GetValue()));</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;ConstantForm::~ConstantForm() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keywordtype">void</span> ConstantForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;}</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keywordtype">bool</span> ConstantForm::ValidateData()</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> value;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span>(!m_constant-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlValue-&gt;GetValue(), value,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Constant value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_constant-&gt;SetValue(value);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="ttc" id="class_constant_form_base_html"><div class="ttname"><a href="class_constant_form_base.html">ConstantFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00923">ElementForm.h:923</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_form_8h.html">ConstantForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_8h.html">Constant.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;ConstantForm::ConstantForm(wxWindow* parent, <a class="code" href="class_constant.html">Constant</a>* constant) : <a class="code" href="class_constant_form_base.html">ConstantFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_parent = parent;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_constant = constant;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlValue-&gt;SetValue(m_constant-&gt;StringFromDouble(m_constant-&gt;GetValue()));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;ConstantForm::~ConstantForm() {}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> ConstantForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keywordtype">bool</span> ConstantForm::ValidateData()</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> value;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(!m_constant-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlValue-&gt;GetValue(), value,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Constant value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_constant-&gt;SetValue(value);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="_constant_form_8h_html"><div class="ttname"><a href="_constant_form_8h.html">ConstantForm.h</a></div></div>
+<div class="ttc" id="class_constant_form_base_html"><div class="ttname"><a href="class_constant_form_base.html">ConstantFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00923">ElementForm.h:923</a></div></div>
+<div class="ttc" id="_constant_8h_html"><div class="ttname"><a href="_constant_8h.html">Constant.h</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_constant_form_8h.html b/docs/doxygen/html/_constant_form_8h.html
new file mode 100644
index 0000000..dfc7ed2
--- /dev/null
+++ b/docs/doxygen/html/_constant_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ConstantForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_constant_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ConstantForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_constant_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_constant_form.html">ConstantForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the constant control data. <a href="class_constant_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_constant_form_8h.html">ConstantForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_constant_form_8h_source.html b/docs/doxygen/html/_constant_form_8h_source.html
index 55610ba..60eae01 100644
--- a/docs/doxygen/html/_constant_form_8h_source.html
+++ b/docs/doxygen/html/_constant_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_constant_form_8h_source.html','');});
<div class="title">ConstantForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONSTANTFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONSTANTFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_constant_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_constant_form.html">ConstantForm</a> : <span class="keyword">public</span> <a class="code" href="class_constant_form_base.html">ConstantFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_constant_form.html">ConstantForm</a>(wxWindow* parent, <a class="code" href="class_constant.html">Constant</a>* constant);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_constant_form.html">ConstantForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_constant.html">Constant</a>* m_constant = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // CONSTANTFORM_H</span></div><div class="ttc" id="class_constant_form_base_html"><div class="ttname"><a href="class_constant_form_base.html">ConstantFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00923">ElementForm.h:923</a></div></div>
-<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00007">ConstantForm.h:7</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<a href="_constant_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONSTANTFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONSTANTFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_constant_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_constant_form.html">ConstantForm</a> : <span class="keyword">public</span> <a class="code" href="class_constant_form_base.html">ConstantFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_constant_form.html">ConstantForm</a>(wxWindow* parent, <a class="code" href="class_constant.html">Constant</a>* constant);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_constant_form.html">ConstantForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_constant.html">Constant</a>* m_constant = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif // CONSTANTFORM_H</span></div><div class="ttc" id="class_constant_form_base_html"><div class="ttname"><a href="class_constant_form_base.html">ConstantFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00923">ElementForm.h:923</a></div></div>
+<div class="ttc" id="class_constant_form_html"><div class="ttname"><a href="class_constant_form.html">ConstantForm</a></div><div class="ttdoc">Form to edit the constant control data. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_form_8h_source.html#l00031">ConstantForm.h:31</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ConstantForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_constant_form_8h.html">ConstantForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_control_editor_8cpp_source.html b/docs/doxygen/html/_control_editor_8cpp_source.html
index 0cf4967..a71cf1d 100644
--- a/docs/doxygen/html/_control_editor_8cpp_source.html
+++ b/docs/doxygen/html/_control_editor_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,46 +88,63 @@ $(document).ready(function(){initNavTree('_control_editor_8cpp_source.html','');
<div class="title">ControlEditor.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;FileHanding.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;Camera.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;TransferFunction.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Sum.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Multiplier.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;Limiter.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;RateLimiter.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;Exponential.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;Constant.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;Gain.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;ControlElementSolver.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;ChartView.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;ElementPlotData.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image, wxWindowID <span class="keywordtype">id</span>)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; : wxWindow(parent, id)</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; SetBackgroundColour(*wxWHITE);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// m_font = wxFont(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_label = label;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_image = image;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_imageSize = wxSize(image.GetWidth(), image.GetHeight());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Calculate label size.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; dc.SetFont(m_font);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; wxSize textSize = dc.GetTextExtent(label);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">int</span> buttonWidth = 0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(textSize.GetWidth() &gt; m_imageSize.GetWidth()) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; buttonWidth = textSize.GetWidth();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_imagePosition = wxPoint((buttonWidth - m_imageSize.GetWidth()) / 2 + m_borderSize, m_borderSize);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_labelPosition = wxPoint(m_borderSize, m_imageSize.GetHeight() + m_borderSize);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; buttonWidth = m_imageSize.GetWidth();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_imagePosition = wxPoint(m_borderSize, m_borderSize);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_labelPosition =</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxPoint((buttonWidth - textSize.GetWidth()) / 2 + m_borderSize, m_imageSize.GetHeight() + m_borderSize);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_buttonSize =</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; wxSize(buttonWidth + 2 * m_borderSize, textSize.GetHeight() + m_imageSize.GetHeight() + 2 * m_borderSize);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; SetMinSize(m_buttonSize + wxSize(m_borderSize, m_borderSize));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Events.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; Bind(wxEVT_PAINT, &amp;ControlElementButton::OnPaint, <span class="keyword">this</span>);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; Bind(wxEVT_ENTER_WINDOW, &amp;ControlElementButton::OnMouseEnter, <span class="keyword">this</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; Bind(wxEVT_LEAVE_WINDOW, &amp;ControlElementButton::OnMouseLeave, <span class="keyword">this</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; Bind(wxEVT_LEFT_DOWN, &amp;ControlElementButton::OnLeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; Bind(wxEVT_LEFT_UP, &amp;ControlElementButton::OnLeftClickUp, <span class="keyword">this</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;ControlElementButton::~ControlElementButton() {}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; wxPaintDC dc(<span class="keyword">this</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; wxGraphicsContext* gc = wxGraphicsContext::Create(dc);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(gc) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_mouseAbove) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; gc-&gt;SetPen(wxPen(wxColour(0, 125, 255, 255), m_borderSize - 1));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; gc-&gt;SetBrush(wxBrush(wxColour(0, 125, 255, 100)));</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; gc-&gt;SetPen(*wxTRANSPARENT_PEN);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; gc-&gt;SetBrush(wxBrush(wxColour(0, 125, 255, 70)));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; gc-&gt;DrawRectangle(m_borderSize / 2, m_borderSize / 2, m_buttonSize.GetWidth(), m_buttonSize.GetHeight());</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; gc-&gt;DrawBitmap(gc-&gt;CreateBitmapFromImage(m_image), m_imagePosition.x, m_imagePosition.y, m_imageSize.GetWidth(),</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_imageSize.GetHeight());</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; gc-&gt;SetFont(m_font, *wxBLACK);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; gc-&gt;DrawText(m_label, m_labelPosition.x, m_labelPosition.y);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">delete</span> gc;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnMouseEnter(wxMouseEvent&amp; event)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_mouseAbove = <span class="keyword">true</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; Refresh();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnMouseLeave(wxMouseEvent&amp; event)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_mouseAbove = <span class="keyword">false</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; Refresh();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_selected = <span class="keyword">true</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; Refresh();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; Refresh();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;ControlEditor::ControlEditor(wxWindow* parent, <span class="keywordtype">int</span> ioflags) : <a class="code" href="class_control_editor_base.html">ControlEditorBase</a>(parent)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; BuildControlElementPanel();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_glContext = <span class="keyword">new</span> wxGLContext(m_glCanvas);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_camera = <span class="keyword">new</span> <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// m_camera-&gt;SetScale(1.2);</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_ioFlags = ioflags;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;ControlEditor::~ControlEditor()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// m_tfButton-&gt;Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditor::LeftClickDown), m_tfButton, this);</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keywordtype">void</span> ControlEditor::BuildControlElementPanel()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_panelControlElements-&gt;SetDoubleBuffered(<span class="keyword">true</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; wxWrapSizer* wrapSizer = <span class="keyword">new</span> wxWrapSizer();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_panelControlElements-&gt;SetSizer(wrapSizer);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* ioButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;In/Out&quot;</span>),</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\io.png&quot;</span>), ID_IO);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wrapSizer-&gt;Add(ioButton, 0, wxALL, 5);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; ioButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* tfButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Transfer fcn&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\transferFunc.png&quot;</span>), ID_TF);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; wrapSizer-&gt;Add(tfButton, 0, wxALL, 5);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; tfButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* sumButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;Sum&quot;</span>),</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\sum.png&quot;</span>), ID_SUM);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; wrapSizer-&gt;Add(sumButton, 0, wxALL, 5);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; sumButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* constButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Constant&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\value.png&quot;</span>), ID_CONST);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wrapSizer-&gt;Add(constButton, 0, wxALL, 5);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; constButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* limButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Limiter&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\limiter.png&quot;</span>), ID_LIMITER);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; wrapSizer-&gt;Add(limButton, 0, wxALL, 5);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; limButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* gainButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Gain&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\gain.png&quot;</span>), ID_GAIN);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; wrapSizer-&gt;Add(gainButton, 0, wxALL, 5);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; gainButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* multButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Multiplier&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\mult.png&quot;</span>), ID_MULT);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; wrapSizer-&gt;Add(multButton, 0, wxALL, 5);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; multButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* satButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;Exponential&quot;</span>),</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\sat.png&quot;</span>), ID_EXP);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; wrapSizer-&gt;Add(satButton, 0, wxALL, 5);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; satButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* rateLimButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Rate limiter&quot;</span>), wxImage(<span class="stringliteral">&quot;..\\data\\images\\control\\rateLimiter.png&quot;</span>), ID_RATELIM);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; wrapSizer-&gt;Add(rateLimButton, 0, wxALL, 5);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; rateLimButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;<span class="keywordtype">void</span> ControlEditor::LeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; AddElement(static_cast&lt;ControlElementButtonID&gt;(event.GetId()));</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keywordtype">void</span> ControlEditor::SetViewport()</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; glClearColor(1.0, 1.0, 1.0, 1.0); <span class="comment">// White background.</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; glDisable(GL_DEPTH_TEST);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; glEnable(GL_COLOR_MATERIAL);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; glEnable(GL_BLEND);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; glEnable(GL_LINE_SMOOTH);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">double</span> width = m_glCanvas-&gt;GetSize().x - 1;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">double</span> height = m_glCanvas-&gt;GetSize().y - 1;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="comment">// Viewport fit the screen.</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; glViewport(0, 0, width, height);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; glMatrixMode(GL_PROJECTION);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; gluOrtho2D(0.0, width, height, 0.0);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; glMatrixMode(GL_MODELVIEW);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keywordtype">void</span> ControlEditor::AddElement(ControlElementButtonID <span class="keywordtype">id</span>)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">switch</span>(<span class="keywordtype">id</span>) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">case</span> ID_IO: {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(m_ioFlags, m_lastElementID);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_elementList.push_back(io);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> ID_TF: {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(m_lastElementID);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_elementList.push_back(tf);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> ID_SUM: {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(m_lastElementID);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_elementList.push_back(sum);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> ID_CONST: {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(m_lastElementID);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_elementList.push_back(constant);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> ID_LIMITER: {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(m_lastElementID);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; m_elementList.push_back(limiter);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> ID_GAIN: {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(m_lastElementID);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_elementList.push_back(gain);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> ID_MULT: {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* mult = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(m_lastElementID);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_elementList.push_back(mult);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> ID_EXP: {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exp = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(m_lastElementID);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_elementList.push_back(exp);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">case</span> ID_RATELIM: {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLim = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(m_lastElementID);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_elementList.push_back(rateLim);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_lastElementID++;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;}</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; wxPaintDC dc(m_glCanvas);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_glContext-&gt;SetCurrent(*m_glCanvas);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; SetViewport();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// Set GLCanvas scale and translation.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; glScaled(m_camera-&gt;GetScale(), m_camera-&gt;GetScale(), 0.0); <span class="comment">// Scale</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; glTranslated(m_camera-&gt;GetTranslation().m_x, m_camera-&gt;GetTranslation().m_y, 0.0); <span class="comment">// Translation</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; element-&gt;<a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Selection rectangle</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; glColor4d(0.0, 0.5, 1.0, 1.0);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; glBegin(GL_LINE_LOOP);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; glEnd();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.3);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; glBegin(GL_QUADS);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; glEnd();</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; glFlush(); <span class="comment">// Sends all pending information directly to the GPU.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_glCanvas-&gt;SwapBuffers();</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; CheckConnections();</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; }</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordtype">bool</span> foundElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordtype">bool</span> foundNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(node-&gt;Contains(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_mode = MODE_INSERT_LINE;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>(node, m_lastElementID);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; m_lastElementID++;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; m_connectionList.push_back(line);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(line);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; line-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(!foundNode) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// Set movement initial position (not necessarily will be moved).</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; element-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; }</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; }</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(m_mode != MODE_INSERT_LINE) {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; line-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; m_mode = MODE_MOVE_LINE;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; m_mode = MODE_SELECTION_RECT;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_startSelRect = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; Redraw();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;}</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;{</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordtype">bool</span> foundNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE) {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span>(node-&gt;Contains(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span>(line-&gt;AppendNode(node, element)) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; line-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(line);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span>(!element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE &amp;&amp; !foundNode &amp;&amp; it != (itEnd - 1)) {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* iLine = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(iLine-&gt;SetParentLine(cLine)) {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; cLine-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(iLine);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; iLine-&gt;UpdatePoints();</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>(!cLine-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE &amp;&amp; !foundNode) {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="comment">// Free nodes</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; node-&gt;SetConnected(<span class="keyword">false</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="comment">// Remove the associated child from parents.</span></div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_connectionList.pop_back();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>(cLine) <span class="keyword">delete</span> cLine;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode != MODE_INSERT) {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; Redraw();</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;}</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMiddleDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// Set to drag mode.</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; m_mode = MODE_DRAG_INSERT;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; m_mode = MODE_DRAG_PASTE;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; m_mode = MODE_DRAG;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; }</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; m_camera-&gt;StartTranslation(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;}</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMiddleUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;{</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT: {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// Does nothing.</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;}</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMouseMotion(wxMouseEvent&amp; event)</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;{</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = *(m_elementList.end() - 1); <span class="comment">// Get the last element in the list.</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; newElement-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_LINE: {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; line-&gt;SetTemporarySecondPoint(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">case</span> MODE_DRAG:</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; m_camera-&gt;SetTranslation(clickPoint);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT: {</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; itC++) {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_LINE: {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT: {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; wxPoint2DDouble currentPos = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">double</span> x, y, w, h;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(currentPos.m_x &lt; m_startSelRect.m_x) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; x = currentPos.m_x;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; w = m_startSelRect.m_x - currentPos.m_x;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; x = m_startSelRect.m_x;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; w = currentPos.m_x - m_startSelRect.m_x;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span>(currentPos.m_y &lt; m_startSelRect.m_y) {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; y = currentPos.m_y;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; h = m_startSelRect.m_y - currentPos.m_y;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; y = m_startSelRect.m_y;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; h = currentPos.m_y - m_startSelRect.m_y;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; }</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; m_selectionRect = wxRect2DDouble(x, y, w, h);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;}</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnScroll(wxMouseEvent&amp; event)</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;{</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">if</span>(event.GetWheelRotation() &gt; 0)</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), +0.05);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), -0.05);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; Redraw();</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;}</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnIdle(wxIdleEvent&amp; event) { ConsolidateTexts(); }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnKeyDown(wxKeyEvent&amp; event)</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;{</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordtype">char</span> key = <span class="keyword">event</span>.GetUnicodeKey();</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">if</span>(key != WXK_NONE) {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">switch</span>(key) {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">case</span> WXK_DELETE: <span class="comment">// Delete selected elements.</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; DeleteSelectedElements();</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;R&#39;</span>: <span class="comment">// Rotate the selected elements.</span></div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;L&#39;</span>: {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="comment">// tests</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; }</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;}</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="keywordtype">void</span> ControlEditor::RotateSelectedElements(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;{</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(clockwise);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; itC++) {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; }</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; Redraw();</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;}</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="keywordtype">void</span> ControlEditor::DeleteSelectedElements()</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;{</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEnd = childList.end(); itC != itEnd; ++itC) {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="comment">// The child is always a connection line.</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="comment">// Delete the connection line.</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCo = m_connectionList.begin(); itCo != m_connectionList.end(); ++itCo) {</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *itCo;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span>(line == child) {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; itCo = DeleteLineFromList(itCo);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; m_elementList.erase(it--);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(); it != m_connectionList.end(); ++it) {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; it = DeleteLineFromList(it);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; }</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; Redraw();</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;}</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;std::vector&lt;ConnectionLine*&gt;::iterator ControlEditor::DeleteLineFromList(std::vector&lt;ConnectionLine*&gt;::iterator&amp; it)</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160;{</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keyword">auto</span> childList = cLine-&gt;GetLineChildList();</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = *itC;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itL = m_connectionList.begin(); itL != m_connectionList.end(); ++itL) {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* childOnList = *itL;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">if</span>(childOnList == child) {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; itL = DeleteLineFromList(itL);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; }</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; }</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="comment">// Remove</span></div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itEnd = parentList.end(); itP != itEnd; ++itP) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itP;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">if</span>(parent) parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetParentLine()) cLine-&gt;GetParentLine()-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="comment">// Free nodes</span></div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; node-&gt;SetConnected(<span class="keyword">false</span>);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; m_connectionList.erase(it--);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">if</span>(cLine) <span class="keyword">delete</span> cLine;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">return</span> it;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160;}</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;<span class="keywordtype">void</span> ControlEditor::CheckConnections()</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;{</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(); it != m_connectionList.end(); ++it) {</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetType() == ConnectionLine::ELEMENT_ELEMENT) {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() &lt; 2) {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; it = DeleteLineFromList(it);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160;}</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnExportClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;{</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(<span class="keyword">this</span>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save CTL file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CTL files (*.ctl)|*.ctl&quot;</span>,</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; fileHandling.SaveControl(saveFileDialog.GetPath());</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;}</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnImportClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;{</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; wxFileDialog openFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open CTL file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CTL files (*.ctl)|*.ctl&quot;</span>,</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; wxFD_OPEN | wxFD_FILE_MUST_EXIST);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(openFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; wxFileName fileName(openFileDialog.GetPath());</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(<span class="keyword">this</span>);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span>(!fileHandling.OpenControl(fileName, m_elementList, m_connectionList)) {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; SetLastElementID();</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; Redraw();</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;}</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnTestClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;{</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <a class="code" href="class_control_system_test.html">ControlSystemTest</a> csTest(<span class="keyword">this</span>, &amp;m_inputType, &amp;m_startTime, &amp;m_slope, &amp;m_timeStep, &amp;m_simTime);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">if</span>(csTest.ShowModal() == wxID_OK) {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordtype">double</span> printStep = 1e-3;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordtype">double</span> pdbStep = 1e-1;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; wxProgressDialog pbd(_(<span class="stringliteral">&quot;Test&quot;</span>), _(<span class="stringliteral">&quot;Initializing...&quot;</span>), 100, <span class="keyword">this</span>,</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_SMOOTH);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a> solver(<span class="keyword">this</span>, m_timeStep, 1e-5);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span>(solver.IsOK()) {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordtype">bool</span> simStopped = <span class="keyword">false</span>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordtype">double</span> currentTime = 0.0;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordtype">double</span> printTime = 0.0;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordtype">double</span> pdbTime = 0.0;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; std::vector&lt;double&gt; time;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; std::vector&lt;double&gt; solution;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; std::vector&lt;double&gt; inputV;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">while</span>(currentTime &lt;= m_simTime) {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordtype">double</span> input = 0.0;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">if</span>(currentTime &gt;= m_startTime) {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">switch</span>(m_inputType) {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; input = m_slope;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; input = m_slope * (currentTime - m_startTime);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; input = m_slope * std::pow(currentTime - m_startTime, 2);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; input = 0.0;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; }</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; }</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; solver.SolveNextStep(input);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">if</span>(printTime &gt;= printStep) {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; time.push_back(currentTime);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; solution.push_back(solver.GetLastSolution());</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; inputV.push_back(input);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; printTime = 0.0;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; }</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">if</span>(pdbTime &gt; pdbStep) {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">if</span>(!pbd.Update((currentTime / m_simTime) * 100, wxString::Format(<span class="stringliteral">&quot;Time = %.2fs&quot;</span>, currentTime))) {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; pbd.Update(100);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; simStopped = <span class="keyword">true</span>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; currentTime = m_simTime;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; pdbTime = 0.0;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; printTime += m_timeStep;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; currentTime += m_timeStep;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; pdbTime += m_timeStep;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">if</span>(!simStopped) {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; std::vector&lt;ElementPlotData&gt; epdList;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> curveData(_(<span class="stringliteral">&quot;I/O&quot;</span>), ElementPlotData::CT_TEST);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; curveData.AddData(inputV, _(<span class="stringliteral">&quot;Input&quot;</span>));</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; curveData.AddData(solution, _(<span class="stringliteral">&quot;Output&quot;</span>));</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; curveData.SetPlot(0);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; curveData.SetColour(0, *wxRED);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; curveData.SetPlot(1);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; curveData.SetColour(1, *wxBLUE);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; epdList.push_back(curveData);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(<span class="keyword">this</span>, epdList, time);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; cView-&gt;UpdatePlot();</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to solve the control system&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;}</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnClose(wxCloseEvent&amp; event)</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;{</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">if</span>(m_ctrlContainer) {</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; m_ctrlContainer-&gt;FillContainer(<span class="keyword">this</span>);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; }</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;}</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="keywordtype">void</span> ControlEditor::ConsolidateTexts()</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;{</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="comment">// Solve wxGLString bug.</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">if</span>(m_firstDraw) {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(0);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; m_elementList.push_back(tf);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; element-&gt;UpdateText();</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; Redraw();</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; m_elementList.pop_back();</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keyword">delete</span> tf;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; m_firstDraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; }</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;}</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="keywordtype">void</span> ControlEditor::SetLastElementID()</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;{</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordtype">int</span> elementID = (*it)-&gt;GetID();</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt; elementID) <span class="keywordtype">id</span> = elementID;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordtype">int</span> elementID = (*it)-&gt;GetID();</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt; elementID) <span class="keywordtype">id</span> = elementID;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; m_lastElementID = ++id;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;}</div><div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
-<div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00123">Element.h:123</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00146">ConnectionLine.cpp:146</a></div></div>
-<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00523">Element.h:523</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00019">FileHanding.h:19</a></div></div>
-<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00021">ConnectionLine.cpp:21</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00335">Element.cpp:335</a></div></div>
-<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00100">ControlElement.cpp:100</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_file_handing_8h.html">FileHanding.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_camera_8h.html">Camera.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_8h.html">TransferFunction.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_8h.html">Sum.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_multiplier_8h.html">Multiplier.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_8h.html">Limiter.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_8h.html">RateLimiter.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_8h.html">Exponential.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_8h.html">Constant.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_8h.html">Gain.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_solver_8h.html">ControlElementSolver.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_chart_view_8h.html">ChartView.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_plot_data_8h.html">ElementPlotData.h</a>&quot;</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;ControlElementButton::ControlElementButton(wxWindow* parent, wxString label, wxImage image, wxWindowID <span class="keywordtype">id</span>)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; : wxWindow(parent, id)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; SetBackgroundColour(*wxWHITE);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// m_font = wxFont(8, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_label = label;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_image = image;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_imageSize = wxSize(image.GetWidth(), image.GetHeight());</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Calculate label size.</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; dc.SetFont(m_font);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; wxSize textSize = dc.GetTextExtent(label);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">int</span> buttonWidth = 0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(textSize.GetWidth() &gt; m_imageSize.GetWidth()) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; buttonWidth = textSize.GetWidth();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_imagePosition = wxPoint((buttonWidth - m_imageSize.GetWidth()) / 2 + m_borderSize, m_borderSize);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_labelPosition = wxPoint(m_borderSize, m_imageSize.GetHeight() + m_borderSize);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; buttonWidth = m_imageSize.GetWidth();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_imagePosition = wxPoint(m_borderSize, m_borderSize);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_labelPosition =</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; wxPoint((buttonWidth - textSize.GetWidth()) / 2 + m_borderSize, m_imageSize.GetHeight() + m_borderSize);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_buttonSize =</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxSize(buttonWidth + 2 * m_borderSize, textSize.GetHeight() + m_imageSize.GetHeight() + 2 * m_borderSize);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; SetMinSize(m_buttonSize + wxSize(m_borderSize, m_borderSize));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Events.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; Bind(wxEVT_PAINT, &amp;ControlElementButton::OnPaint, <span class="keyword">this</span>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; Bind(wxEVT_ENTER_WINDOW, &amp;ControlElementButton::OnMouseEnter, <span class="keyword">this</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; Bind(wxEVT_LEAVE_WINDOW, &amp;ControlElementButton::OnMouseLeave, <span class="keyword">this</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; Bind(wxEVT_LEFT_DOWN, &amp;ControlElementButton::OnLeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; Bind(wxEVT_LEFT_UP, &amp;ControlElementButton::OnLeftClickUp, <span class="keyword">this</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;ControlElementButton::~ControlElementButton() {}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; wxPaintDC dc(<span class="keyword">this</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; wxGraphicsContext* gc = wxGraphicsContext::Create(dc);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(gc) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(m_mouseAbove) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; gc-&gt;SetPen(wxPen(wxColour(0, 125, 255, 255), m_borderSize - 1));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; gc-&gt;SetBrush(wxBrush(wxColour(0, 125, 255, 100)));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; gc-&gt;SetPen(*wxTRANSPARENT_PEN);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; gc-&gt;SetBrush(wxBrush(wxColour(0, 125, 255, 70)));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; gc-&gt;DrawRectangle(m_borderSize / 2, m_borderSize / 2, m_buttonSize.GetWidth(), m_buttonSize.GetHeight());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; gc-&gt;DrawBitmap(gc-&gt;CreateBitmapFromImage(m_image), m_imagePosition.x, m_imagePosition.y, m_imageSize.GetWidth(),</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_imageSize.GetHeight());</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; gc-&gt;SetFont(m_font, *wxBLACK);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; gc-&gt;DrawText(m_label, m_labelPosition.x, m_labelPosition.y);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">delete</span> gc;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnMouseEnter(wxMouseEvent&amp; event)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_mouseAbove = <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; Refresh();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnMouseLeave(wxMouseEvent&amp; event)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_mouseAbove = <span class="keyword">false</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; Refresh();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_selected = <span class="keyword">true</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; Refresh();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keywordtype">void</span> ControlElementButton::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; Refresh();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;ControlEditor::ControlEditor(wxWindow* parent, <span class="keywordtype">int</span> ioflags) : <a class="code" href="class_control_editor_base.html">ControlEditorBase</a>(parent)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; BuildControlElementPanel();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_glContext = <span class="keyword">new</span> wxGLContext(m_glCanvas);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_camera = <span class="keyword">new</span> <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// m_camera-&gt;SetScale(1.2);</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_ioFlags = ioflags;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;ControlEditor::~ControlEditor()</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="comment">// m_tfButton-&gt;Disconnect(wxEVT_LEFT_DOWN, wxMouseEventHandler(ControlEditor::LeftClickDown), m_tfButton, this);</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span> ControlEditor::BuildControlElementPanel()</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_panelControlElements-&gt;SetDoubleBuffered(<span class="keyword">true</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; wxWrapSizer* wrapSizer = <span class="keyword">new</span> wxWrapSizer();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_panelControlElements-&gt;SetSizer(wrapSizer);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wxFileName exeFileName(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; wxString exePath = exeFileName.GetPath();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* ioButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;In/Out&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\io.png&quot;</span>), ID_IO);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; wrapSizer-&gt;Add(ioButton, 0, wxALL, 5);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; ioButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* tfButton =</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;Transfer fcn&quot;</span>),</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\transferFunc.png&quot;</span>), ID_TF);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; wrapSizer-&gt;Add(tfButton, 0, wxALL, 5);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; tfButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* sumButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Sum&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\sum.png&quot;</span>), ID_SUM);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; wrapSizer-&gt;Add(sumButton, 0, wxALL, 5);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; sumButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* constButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Constant&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\value.png&quot;</span>), ID_CONST);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; wrapSizer-&gt;Add(constButton, 0, wxALL, 5);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; constButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* limButton =</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;Limiter&quot;</span>),</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\limiter.png&quot;</span>), ID_LIMITER);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; wrapSizer-&gt;Add(limButton, 0, wxALL, 5);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; limButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* gainButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Gain&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\gain.png&quot;</span>), ID_GAIN);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; wrapSizer-&gt;Add(gainButton, 0, wxALL, 5);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; gainButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* multButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Multiplier&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\mult.png&quot;</span>), ID_MULT);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; wrapSizer-&gt;Add(multButton, 0, wxALL, 5);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; multButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* satButton = <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_panelControlElements, _(<span class="stringliteral">&quot;Exponential&quot;</span>), wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\sat.png&quot;</span>), ID_EXP);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; wrapSizer-&gt;Add(satButton, 0, wxALL, 5);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; satButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>* rateLimButton =</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">new</span> <a class="code" href="class_control_element_button.html">ControlElementButton</a>(m_panelControlElements, _(<span class="stringliteral">&quot;Rate limiter&quot;</span>),</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\control\\rateLimiter.png&quot;</span>), ID_RATELIM);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; wrapSizer-&gt;Add(rateLimButton, 0, wxALL, 5);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; rateLimButton-&gt;Bind(wxEVT_LEFT_DOWN, &amp;ControlEditor::LeftClickDown, <span class="keyword">this</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keywordtype">void</span> ControlEditor::LeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; AddElement(static_cast&lt;ControlElementButtonID&gt;(event.GetId()));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;}</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="keywordtype">void</span> ControlEditor::SetViewport()</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; glClearColor(1.0, 1.0, 1.0, 1.0); <span class="comment">// White background.</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; glDisable(GL_DEPTH_TEST);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; glEnable(GL_COLOR_MATERIAL);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; glEnable(GL_BLEND);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; glEnable(GL_LINE_SMOOTH);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">double</span> width = m_glCanvas-&gt;GetSize().x - 1;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">double</span> height = m_glCanvas-&gt;GetSize().y - 1;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="comment">// Viewport fit the screen.</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; glViewport(0, 0, width, height);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; glMatrixMode(GL_PROJECTION);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; gluOrtho2D(0.0, width, height, 0.0);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; glMatrixMode(GL_MODELVIEW);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;<span class="keywordtype">void</span> ControlEditor::AddElement(ControlElementButtonID <span class="keywordtype">id</span>)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">switch</span>(<span class="keywordtype">id</span>) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">case</span> ID_IO: {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(m_ioFlags, m_lastElementID);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_elementList.push_back(io);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> ID_TF: {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(m_lastElementID);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_elementList.push_back(tf);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> ID_SUM: {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(m_lastElementID);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_elementList.push_back(sum);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">case</span> ID_CONST: {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(m_lastElementID);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_elementList.push_back(constant);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">case</span> ID_LIMITER: {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(m_lastElementID);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_elementList.push_back(limiter);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">case</span> ID_GAIN: {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(m_lastElementID);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_elementList.push_back(gain);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">case</span> ID_MULT: {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* mult = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(m_lastElementID);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_elementList.push_back(mult);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">case</span> ID_EXP: {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exp = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(m_lastElementID);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_elementList.push_back(exp);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">case</span> ID_RATELIM: {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLim = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(m_lastElementID);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_elementList.push_back(rateLim);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_lastElementID++;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; wxPaintDC dc(m_glCanvas);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_glContext-&gt;SetCurrent(*m_glCanvas);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; SetViewport();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="comment">// Set GLCanvas scale and translation.</span></div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; glScaled(m_camera-&gt;GetScale(), m_camera-&gt;GetScale(), 0.0); <span class="comment">// Scale</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; glTranslated(m_camera-&gt;GetTranslation().m_x, m_camera-&gt;GetTranslation().m_y, 0.0); <span class="comment">// Translation</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; element-&gt;<a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// Selection rectangle</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; glColor4d(0.0, 0.5, 1.0, 1.0);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; glBegin(GL_LINE_LOOP);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; glEnd();</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.3);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; glBegin(GL_QUADS);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; glEnd();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; glFlush(); <span class="comment">// Sends all pending information directly to the GPU.</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; m_glCanvas-&gt;SwapBuffers();</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;}</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;{</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; CheckConnections();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; }</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;}</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;{</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">bool</span> foundElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordtype">bool</span> foundNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(node-&gt;Contains(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; m_mode = MODE_INSERT_LINE;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>(node, m_lastElementID);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; m_lastElementID++;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; m_connectionList.push_back(line);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(line);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; line-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(!foundNode) {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="comment">// Set movement initial position (not necessarily will be moved).</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; element-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(m_mode != MODE_INSERT_LINE) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; line-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; m_mode = MODE_MOVE_LINE;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_mode = MODE_SELECTION_RECT;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; m_startSelRect = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; Redraw();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;}</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;{</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordtype">bool</span> foundNode = <span class="keyword">false</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE) {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span>(node-&gt;Contains(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span>(line-&gt;AppendNode(node, element)) {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; line-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(line);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span>(!element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE &amp;&amp; !foundNode &amp;&amp; it != (itEnd - 1)) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* iLine = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(iLine-&gt;SetParentLine(cLine)) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; cLine-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(iLine);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; iLine-&gt;UpdatePoints();</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; foundNode = <span class="keyword">true</span>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>(!cLine-&gt;<a class="code" href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_LINE &amp;&amp; !foundNode) {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// Free nodes</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; node-&gt;SetConnected(<span class="keyword">false</span>);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// Remove the associated child from parents.</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; m_connectionList.pop_back();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span>(cLine) <span class="keyword">delete</span> cLine;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode != MODE_INSERT) {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; Redraw();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMiddleDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// Set to drag mode.</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; m_mode = MODE_DRAG_INSERT;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; m_mode = MODE_DRAG_PASTE;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; m_mode = MODE_DRAG;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; m_camera-&gt;StartTranslation(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;}</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMiddleUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;{</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT: {</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">// Does nothing.</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;}</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnMouseMotion(wxMouseEvent&amp; event)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;{</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; wxPoint2DDouble clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = *(m_elementList.end() - 1); <span class="comment">// Get the last element in the list.</span></div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; newElement-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_LINE: {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *(m_connectionList.end() - 1);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; line-&gt;SetTemporarySecondPoint(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">case</span> MODE_DRAG:</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; m_camera-&gt;SetTranslation(clickPoint);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT: {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; itC++) {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_LINE: {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; line-&gt;<a class="code" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">Move</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT: {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; wxPoint2DDouble currentPos = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordtype">double</span> x, y, w, h;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span>(currentPos.m_x &lt; m_startSelRect.m_x) {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; x = currentPos.m_x;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; w = m_startSelRect.m_x - currentPos.m_x;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; x = m_startSelRect.m_x;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; w = currentPos.m_x - m_startSelRect.m_x;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">if</span>(currentPos.m_y &lt; m_startSelRect.m_y) {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; y = currentPos.m_y;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; h = m_startSelRect.m_y - currentPos.m_y;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; y = m_startSelRect.m_y;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; h = currentPos.m_y - m_startSelRect.m_y;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; m_selectionRect = wxRect2DDouble(x, y, w, h);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;}</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnScroll(wxMouseEvent&amp; event)</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;{</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">if</span>(event.GetWheelRotation() &gt; 0)</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), +0.05);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), -0.05);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; Redraw();</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;}</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnIdle(wxIdleEvent&amp; event) { ConsolidateTexts(); }</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnKeyDown(wxKeyEvent&amp; event)</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;{</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordtype">char</span> key = <span class="keyword">event</span>.GetUnicodeKey();</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">if</span>(key != WXK_NONE) {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">switch</span>(key) {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">case</span> WXK_DELETE: <span class="comment">// Delete selected elements.</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; DeleteSelectedElements();</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;R&#39;</span>: <span class="comment">// Rotate the selected elements.</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;L&#39;</span>: {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="comment">// tests</span></div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;}</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="keywordtype">void</span> ControlEditor::RotateSelectedElements(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;{</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(clockwise);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; itC++) {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; line-&gt;UpdatePoints();</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; Redraw();</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;}</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="keywordtype">void</span> ControlEditor::DeleteSelectedElements()</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;{</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEnd = childList.end(); itC != itEnd; ++itC) {</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="comment">// The child is always a connection line.</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="comment">// Delete the connection line.</span></div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCo = m_connectionList.begin(); itCo != m_connectionList.end(); ++itCo) {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *itCo;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">if</span>(line == child) {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; itCo = DeleteLineFromList(itCo);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; }</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; m_elementList.erase(it--);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; }</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; }</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(); it != m_connectionList.end(); ++it) {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* line = *it;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; it = DeleteLineFromList(it);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; }</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; Redraw();</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;}</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;std::vector&lt;ConnectionLine*&gt;::iterator ControlEditor::DeleteLineFromList(std::vector&lt;ConnectionLine*&gt;::iterator&amp; it)</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;{</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">auto</span> childList = cLine-&gt;GetLineChildList();</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = *itC;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itL = m_connectionList.begin(); itL != m_connectionList.end(); ++itL) {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* childOnList = *itL;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">if</span>(childOnList == child) {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; itL = DeleteLineFromList(itL);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="comment">// Remove</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itEnd = parentList.end(); itP != itEnd; ++itP) {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itP;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">if</span>(parent) parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetParentLine()) cLine-&gt;GetParentLine()-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(cLine);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="comment">// Free nodes</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; node-&gt;SetConnected(<span class="keyword">false</span>);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; }</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; m_connectionList.erase(it--);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">if</span>(cLine) <span class="keyword">delete</span> cLine;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">return</span> it;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;}</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;<span class="keywordtype">void</span> ControlEditor::CheckConnections()</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;{</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(); it != m_connectionList.end(); ++it) {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetType() == ConnectionLine::ELEMENT_ELEMENT) {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() &lt; 2) {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; it = DeleteLineFromList(it);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; }</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160;}</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnExportClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;{</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(<span class="keyword">this</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save CTL file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CTL files (*.ctl)|*.ctl&quot;</span>,</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; fileHandling.SaveControl(saveFileDialog.GetPath());</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;}</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnImportClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;{</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; wxFileDialog openFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open CTL file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;CTL files (*.ctl)|*.ctl&quot;</span>,</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; wxFD_OPEN | wxFD_FILE_MUST_EXIST);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">if</span>(openFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; wxFileName fileName(openFileDialog.GetPath());</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(<span class="keyword">this</span>);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span>(!fileHandling.OpenControl(fileName, m_elementList, m_connectionList)) {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; }</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; SetLastElementID();</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; Redraw();</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;}</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnTestClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;{</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <a class="code" href="class_control_system_test.html">ControlSystemTest</a> csTest(<span class="keyword">this</span>, &amp;m_inputType, &amp;m_startTime, &amp;m_slope, &amp;m_timeStep, &amp;m_simTime);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">if</span>(csTest.ShowModal() == wxID_OK) {</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordtype">double</span> printStep = 1e-3;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordtype">double</span> pdbStep = 1e-1;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; wxProgressDialog pbd(_(<span class="stringliteral">&quot;Test&quot;</span>), _(<span class="stringliteral">&quot;Initializing...&quot;</span>), 100, <span class="keyword">this</span>,</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_SMOOTH);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a> solver(<span class="keyword">this</span>, m_timeStep, 1e-5);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span>(solver.IsOK()) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordtype">bool</span> simStopped = <span class="keyword">false</span>;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordtype">double</span> currentTime = 0.0;</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordtype">double</span> printTime = 0.0;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordtype">double</span> pdbTime = 0.0;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; std::vector&lt;double&gt; time;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; std::vector&lt;double&gt; solution;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; std::vector&lt;double&gt; inputV;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">while</span>(currentTime &lt;= m_simTime) {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordtype">double</span> input = 0.0;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">if</span>(currentTime &gt;= m_startTime) {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">switch</span>(m_inputType) {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; input = m_slope;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; input = m_slope * (currentTime - m_startTime);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; input = m_slope * std::pow(currentTime - m_startTime, 2);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; input = 0.0;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; solver.SolveNextStep(input);</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span>(printTime &gt;= printStep) {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; time.push_back(currentTime);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; solution.push_back(solver.GetLastSolution());</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; inputV.push_back(input);</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; printTime = 0.0;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span>(pdbTime &gt; pdbStep) {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>(!pbd.Update((currentTime / m_simTime) * 100, wxString::Format(<span class="stringliteral">&quot;Time = %.2fs&quot;</span>, currentTime))) {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; pbd.Update(100);</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; simStopped = <span class="keyword">true</span>;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; currentTime = m_simTime;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; pdbTime = 0.0;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; printTime += m_timeStep;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; currentTime += m_timeStep;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; pdbTime += m_timeStep;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">if</span>(!simStopped) {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; std::vector&lt;ElementPlotData&gt; epdList;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> curveData(_(<span class="stringliteral">&quot;I/O&quot;</span>), ElementPlotData::CT_TEST);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; curveData.AddData(inputV, _(<span class="stringliteral">&quot;Input&quot;</span>));</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; curveData.AddData(solution, _(<span class="stringliteral">&quot;Output&quot;</span>));</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; curveData.SetPlot(0);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; curveData.SetColour(0, *wxRED);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; curveData.SetPlot(1);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; curveData.SetColour(1, *wxBLUE);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; epdList.push_back(curveData);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(<span class="keyword">this</span>, epdList, time);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; cView-&gt;UpdatePlot();</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to solve the control system&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;}</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;<span class="keywordtype">void</span> ControlEditor::OnClose(wxCloseEvent&amp; event)</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;{</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">if</span>(m_ctrlContainer) {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; m_ctrlContainer-&gt;FillContainer(<span class="keyword">this</span>);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;}</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160;<span class="keywordtype">void</span> ControlEditor::ConsolidateTexts()</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;{</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="comment">// Solve wxGLString bug.</span></div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">if</span>(m_firstDraw) {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(0);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; m_elementList.push_back(tf);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; element-&gt;UpdateText();</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; Redraw();</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; m_elementList.pop_back();</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keyword">delete</span> tf;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; m_firstDraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; }</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;}</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160;<span class="keywordtype">void</span> ControlEditor::SetLastElementID()</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160;{</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordtype">int</span> elementID = (*it)-&gt;GetID();</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt; elementID) <span class="keywordtype">id</span> = elementID;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; }</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_connectionList.begin(), itEnd = m_connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordtype">int</span> elementID = (*it)-&gt;GetID();</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span>(<span class="keywordtype">id</span> &lt; elementID) <span class="keywordtype">id</span> = elementID;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; m_lastElementID = ++id;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;}</div><div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00123">Element.cpp:123</a></div></div>
+<div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00146">Element.h:146</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="class_connection_line_html_a49300d04c6dd4bcc6f4569c0c47780c7"><div class="ttname"><a href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00158">ConnectionLine.cpp:158</a></div></div>
+<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00511">Element.h:511</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="_multiplier_8h_html"><div class="ttname"><a href="_multiplier_8h.html">Multiplier.h</a></div></div>
+<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdoc">Save and opens the projects created on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00043">FileHanding.h:43</a></div></div>
+<div class="ttc" id="class_connection_line_html_a71cb3502dd098e1d1ef541668789586e"><div class="ttname"><a href="class_connection_line.html#a71cb3502dd098e1d1ef541668789586e">ConnectionLine::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00033">ConnectionLine.cpp:33</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="_chart_view_8h_html"><div class="ttname"><a href="_chart_view_8h.html">ChartView.h</a></div></div>
+<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00354">Element.cpp:354</a></div></div>
+<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00117">ControlElement.cpp:117</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00006">Camera.h:6</a></div></div>
-<div class="ttc" id="class_control_element_button_html"><div class="ttname"><a href="class_control_element_button.html">ControlElementButton</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00039">ControlEditor.h:39</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00234">Element.h:234</a></div></div>
+<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdoc">Class responsible for the correct visualization of the elements on screen. </div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00030">Camera.h:30</a></div></div>
+<div class="ttc" id="class_control_element_button_html"><div class="ttname"><a href="class_control_element_button.html">ControlElementButton</a></div><div class="ttdoc">This class is responsible to handle the user interaction with control elements. </div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00063">ControlEditor.h:63</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00240">Element.h:240</a></div></div>
<div class="ttc" id="class_element_html_a551ed1eeab446b5366d56c2ee9dec187"><div class="ttname"><a href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00302">Element.h:302</a></div></div>
<div class="ttc" id="class_control_editor_base_html"><div class="ttname"><a href="class_control_editor_base.html">ControlEditorBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00047">ControlEditorBase.h:47</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00308">Element.h:308</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00547">Element.h:547</a></div></div>
-<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00041">ConnectionLine.cpp:41</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00189">Element.h:189</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="_gain_8h_html"><div class="ttname"><a href="_gain_8h.html">Gain.h</a></div></div>
+<div class="ttc" id="_sum_8h_html"><div class="ttname"><a href="_sum_8h.html">Sum.h</a></div></div>
+<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00307">Element.h:307</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="_file_handing_8h_html"><div class="ttname"><a href="_file_handing_8h.html">FileHanding.h</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00534">Element.h:534</a></div></div>
+<div class="ttc" id="_element_plot_data_8h_html"><div class="ttname"><a href="_element_plot_data_8h.html">ElementPlotData.h</a></div></div>
+<div class="ttc" id="class_connection_line_html_a65c6d7139587c973a92dd1009909597f"><div class="ttname"><a href="class_connection_line.html#a65c6d7139587c973a92dd1009909597f">ConnectionLine::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00053">ConnectionLine.cpp:53</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="_constant_8h_html"><div class="ttname"><a href="_constant_8h.html">Constant.h</a></div></div>
+<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00202">Element.h:202</a></div></div>
+<div class="ttc" id="_exponential_8h_html"><div class="ttname"><a href="_exponential_8h.html">Exponential.h</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="_control_element_solver_8h_html"><div class="ttname"><a href="_control_element_solver_8h.html">ControlElementSolver.h</a></div></div>
+<div class="ttc" id="_camera_8h_html"><div class="ttname"><a href="_camera_8h.html">Camera.h</a></div></div>
<div class="ttc" id="class_element_html_abf6c4949733debca55b2f56d8e9b7372"><div class="ttname"><a href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const =0</div><div class="ttdoc">Checks if the element contains a position. </div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00152">ConnectionLine.cpp:152</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
-<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00049">ConnectionLine.cpp:49</a></div></div>
-<div class="ttc" id="class_control_system_test_html"><div class="ttname"><a href="class_control_system_test.html">ControlSystemTest</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_system_test_8h_source.html#l00008">ControlSystemTest.h:8</a></div></div>
+<div class="ttc" id="_rate_limiter_8h_html"><div class="ttname"><a href="_rate_limiter_8h.html">RateLimiter.h</a></div></div>
+<div class="ttc" id="_limiter_8h_html"><div class="ttname"><a href="_limiter_8h.html">Limiter.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_connection_line_html_a292d284d6f30b209995c2a9877f9fe36"><div class="ttname"><a href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00164">ConnectionLine.cpp:164</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
+<div class="ttc" id="_transfer_function_8h_html"><div class="ttname"><a href="_transfer_function_8h.html">TransferFunction.h</a></div></div>
+<div class="ttc" id="class_connection_line_html_aaa3e63c2e48338e324ee7b58911c86b6"><div class="ttname"><a href="class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6">ConnectionLine::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8cpp_source.html#l00061">ConnectionLine.cpp:61</a></div></div>
+<div class="ttc" id="class_control_system_test_html"><div class="ttname"><a href="class_control_system_test.html">ControlSystemTest</a></div><div class="ttdoc">Form to edit properties to test the control system created. </div><div class="ttdef"><b>Definition:</b> <a href="_control_system_test_8h_source.html#l00032">ControlSystemTest.h:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_control_editor_8h.html b/docs/doxygen/html/_control_editor_8h.html
new file mode 100644
index 0000000..de363bb
--- /dev/null
+++ b/docs/doxygen/html/_control_editor_8h.html
@@ -0,0 +1,145 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ControlEditor.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_control_editor_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">ControlEditor.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ControlEditorBase.h&quot;</code><br />
+<code>#include &lt;wx/wrapsizer.h&gt;</code><br />
+<code>#include &lt;wx/dcclient.h&gt;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &lt;wx/graphics.h&gt;</code><br />
+<code>#include &lt;GL/gl.h&gt;</code><br />
+<code>#include &lt;GL/glu.h&gt;</code><br />
+<code>#include &lt;wx/progdlg.h&gt;</code><br />
+<code>#include &quot;<a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_control_system_test_8h_source.html">ControlSystemTest.h</a>&quot;</code><br />
+</div>
+<p><a href="_control_editor_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_element_button.html">ControlElementButton</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is responsible to handle the user interaction with control elements. <a href="class_control_element_button.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_editor.html">ControlEditor</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a8b2fbb4494abb95ea860e1b6b3cb7076"><td class="memItemLeft" align="right" valign="top"><a id="a8b2fbb4494abb95ea860e1b6b3cb7076"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ControlElementButtonID</b> { <br />
+&#160;&#160;<b>ID_IO</b> = 0,
+<b>ID_TF</b>,
+<b>ID_SUM</b>,
+<b>ID_CONST</b>,
+<br />
+&#160;&#160;<b>ID_LIMITER</b>,
+<b>ID_GAIN</b>,
+<b>ID_MULT</b>,
+<b>ID_EXP</b>,
+<br />
+&#160;&#160;<b>ID_RATELIM</b>
+<br />
+ }</td></tr>
+<tr class="separator:a8b2fbb4494abb95ea860e1b6b3cb7076"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_editor_8h.html">ControlEditor.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_control_editor_8h.js b/docs/doxygen/html/_control_editor_8h.js
new file mode 100644
index 0000000..41a8e39
--- /dev/null
+++ b/docs/doxygen/html/_control_editor_8h.js
@@ -0,0 +1,16 @@
+var _control_editor_8h =
+[
+ [ "ControlElementButton", "class_control_element_button.html", "class_control_element_button" ],
+ [ "ControlEditor", "class_control_editor.html", "class_control_editor" ],
+ [ "ControlElementButtonID", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076", [
+ [ "ID_IO", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a82d160d51a00e0512485fb0afff4a09a", null ],
+ [ "ID_TF", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076aa141db7d0f650ecdc828cb8f36fe6ac8", null ],
+ [ "ID_SUM", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076ac09b0c2232a1d94b9cf4caeeff65a959", null ],
+ [ "ID_CONST", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a39af4bb4f8a6a60d53796dc24c7ef52e", null ],
+ [ "ID_LIMITER", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a007742cc97c341c08b014bc2e0385c40", null ],
+ [ "ID_GAIN", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076abc8cc51c937d00684cb6967548dbbe12", null ],
+ [ "ID_MULT", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a4db14943629d93315bc091b2d7e8ac1b", null ],
+ [ "ID_EXP", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a9f541dfe8890f2636816ed2d7f8d07d7", null ],
+ [ "ID_RATELIM", "_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076aec5fbed678b51ff6e1b215cb36ac9bfa", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_control_editor_8h_source.html b/docs/doxygen/html/_control_editor_8h_source.html
index 5feed6d..f8bfc03 100644
--- a/docs/doxygen/html/_control_editor_8h_source.html
+++ b/docs/doxygen/html/_control_editor_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,32 +88,34 @@ $(document).ready(function(){initNavTree('_control_editor_8h_source.html','');})
<div class="title">ControlEditor.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONTROLEDITOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONTROLEDITOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlEditorBase.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/wrapsizer.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcclient.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;wx/graphics.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;GL/glu.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &lt;wx/progdlg.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;IOControl.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;ControlSystemTest.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">enum</span> ControlElementButtonID { ID_IO = 0, ID_TF, ID_SUM, ID_CONST, ID_LIMITER, ID_GAIN, ID_MULT, ID_EXP, ID_RATELIM };</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_control_element_button.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_button.html">ControlElementButton</a> : <span class="keyword">public</span> wxWindow</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>(wxWindow* parent, wxString label, wxImage image, wxWindowID <span class="keywordtype">id</span> = wxID_ANY);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ~<a class="code" href="class_control_element_button.html">ControlElementButton</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseEnter(wxMouseEvent&amp; event);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseLeave(wxMouseEvent&amp; event);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; wxString m_label;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxFont m_font;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; wxPoint m_labelPosition;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; wxImage m_image;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; wxSize m_imageSize;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxPoint m_imagePosition;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">int</span> m_borderSize = 2;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">bool</span> m_mouseAbove = <span class="keyword">false</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; wxSize m_buttonSize;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;};</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_control_editor.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a> : <span class="keyword">public</span> <a class="code" href="class_control_editor_base.html">ControlEditorBase</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">enum</span> ControlEditorMode {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; MODE_EDIT = 0,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; MODE_MOVE_ELEMENT,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; MODE_MOVE_LINE,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; MODE_DRAG,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; MODE_DRAG_INSERT,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; MODE_INSERT,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; MODE_INSERT_LINE,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; MODE_SELECTION_RECT,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; MODE_PASTE,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; MODE_DRAG_PASTE</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; };</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>(wxWindow* parent,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">int</span> ioflags = IOControl::IN_TERMINAL_VOLTAGE | IOControl::IN_VELOCITY | IOControl::OUT_FIELD_VOLTAGE |</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_editor.html">ControlEditor</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddElement(ControlElementButtonID <span class="keywordtype">id</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Redraw() { m_glCanvas-&gt;Refresh(); }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateSelectedElements(<span class="keywordtype">bool</span> clockwise);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DeleteSelectedElements();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CheckConnections();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ConnectionLine*&gt; GetConnectionLineList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_connectionList; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ControlElement*&gt; GetControlElementList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementList; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElementsList(std::vector&lt;ControlElement*&gt; elementList) { m_elementList = elementList; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetConnectionsList(std::vector&lt;ConnectionLine*&gt; connectionList) { m_connectionList = connectionList; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetControlContainer(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer) { m_ctrlContainer = ctrlContainer; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnClose(wxCloseEvent&amp; event);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTestClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event) { Close(); }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnImportClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExportClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnKeyDown(wxKeyEvent&amp; event);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnIdle(wxIdleEvent&amp; event);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnScroll(wxMouseEvent&amp; event);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseMotion(wxMouseEvent&amp; event);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> LeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> BuildControlElementPanel();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> SetViewport();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> ConsolidateTexts();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> SetLastElementID();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vector&lt;ConnectionLine*&gt;::iterator DeleteLineFromList(std::vector&lt;ConnectionLine*&gt;::iterator&amp; it);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; wxGLContext* m_glContext = NULL;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_camera.html">Camera</a>* m_camera = NULL;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; ControlEditorMode m_mode = MODE_EDIT;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxRect2DDouble m_selectionRect;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; wxPoint2DDouble m_startSelRect;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::vector&lt;ControlElement*&gt; m_elementList;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; std::vector&lt;ConnectionLine*&gt; m_connectionList;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* m_ctrlContainer = NULL;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">bool</span> m_firstDraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">int</span> m_ioFlags;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">int</span> m_lastElementID = 0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">int</span> m_inputType = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">double</span> m_startTime = 1.0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">double</span> m_slope = 1.0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">double</span> m_timeStep = 1e-4;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">double</span> m_simTime = 10.0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;};</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="preprocessor">#endif // CONTROLEDITOR_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00019">FileHanding.h:19</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00006">Camera.h:6</a></div></div>
-<div class="ttc" id="class_control_element_button_html"><div class="ttname"><a href="class_control_element_button.html">ControlElementButton</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00039">ControlEditor.h:39</a></div></div>
+<a href="_control_editor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONTROLEDITOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONTROLEDITOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ControlEditorBase.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/wrapsizer.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcclient.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;wx/graphics.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;GL/glu.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;wx/progdlg.h&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_8h.html">IOControl.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_system_test_8h.html">ControlSystemTest.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">enum</span> ControlElementButtonID { ID_IO = 0, ID_TF, ID_SUM, ID_CONST, ID_LIMITER, ID_GAIN, ID_MULT, ID_EXP, ID_RATELIM };</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_control_element_button.html"> 63</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_button.html">ControlElementButton</a> : <span class="keyword">public</span> wxWindow</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="class_control_element_button.html">ControlElementButton</a>(wxWindow* parent, wxString label, wxImage image, wxWindowID <span class="keywordtype">id</span> = wxID_ANY);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; ~<a class="code" href="class_control_element_button.html">ControlElementButton</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseEnter(wxMouseEvent&amp; event);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseLeave(wxMouseEvent&amp; event);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; wxString m_label;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxFont m_font;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; wxPoint m_labelPosition;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxImage m_image;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; wxSize m_imageSize;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxPoint m_imagePosition;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">int</span> m_borderSize = 2;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">bool</span> m_mouseAbove = <span class="keyword">false</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">bool</span> m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; wxSize m_buttonSize;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;};</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_control_editor.html"> 91</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a> : <span class="keyword">public</span> <a class="code" href="class_control_editor_base.html">ControlEditorBase</a></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">enum</span> ControlEditorMode {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; MODE_EDIT = 0,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; MODE_MOVE_ELEMENT,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; MODE_MOVE_LINE,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; MODE_DRAG,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; MODE_DRAG_INSERT,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; MODE_INSERT,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; MODE_INSERT_LINE,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; MODE_SELECTION_RECT,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; MODE_PASTE,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; MODE_DRAG_PASTE</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; };</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>(wxWindow* parent,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">int</span> ioflags = IOControl::IN_TERMINAL_VOLTAGE | IOControl::IN_VELOCITY | IOControl::OUT_FIELD_VOLTAGE |</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_editor.html">ControlEditor</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddElement(ControlElementButtonID <span class="keywordtype">id</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Redraw() { m_glCanvas-&gt;Refresh(); }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateSelectedElements(<span class="keywordtype">bool</span> clockwise);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DeleteSelectedElements();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CheckConnections();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ConnectionLine*&gt; GetConnectionLineList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_connectionList; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> std::vector&lt;ControlElement*&gt; GetControlElementList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementList; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElementsList(std::vector&lt;ControlElement*&gt; elementList) { m_elementList = elementList; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetConnectionsList(std::vector&lt;ConnectionLine*&gt; connectionList) { m_connectionList = connectionList; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetControlContainer(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer) { m_ctrlContainer = ctrlContainer; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnClose(wxCloseEvent&amp; event);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTestClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event) { Close(); }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnImportClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExportClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnKeyDown(wxKeyEvent&amp; event);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnIdle(wxIdleEvent&amp; event);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnScroll(wxMouseEvent&amp; event);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseMotion(wxMouseEvent&amp; event);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> LeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> BuildControlElementPanel();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">void</span> SetViewport();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">void</span> ConsolidateTexts();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">void</span> SetLastElementID();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::vector&lt;ConnectionLine*&gt;::iterator DeleteLineFromList(std::vector&lt;ConnectionLine*&gt;::iterator&amp; it);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; wxGLContext* m_glContext = NULL;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="class_camera.html">Camera</a>* m_camera = NULL;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; ControlEditorMode m_mode = MODE_EDIT;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wxRect2DDouble m_selectionRect;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; wxPoint2DDouble m_startSelRect;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; std::vector&lt;ControlElement*&gt; m_elementList;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::vector&lt;ConnectionLine*&gt; m_connectionList;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* m_ctrlContainer = NULL;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">bool</span> m_firstDraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">int</span> m_ioFlags;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">int</span> m_lastElementID = 0;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">int</span> m_inputType = 0;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordtype">double</span> m_startTime = 1.0;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">double</span> m_slope = 1.0;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordtype">double</span> m_timeStep = 1e-4;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">double</span> m_simTime = 10.0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;};</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="preprocessor">#endif // CONTROLEDITOR_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="_control_system_test_8h_html"><div class="ttname"><a href="_control_system_test_8h.html">ControlSystemTest.h</a></div></div>
+<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdoc">Save and opens the projects created on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00043">FileHanding.h:43</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdoc">Class responsible for the correct visualization of the elements on screen. </div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00030">Camera.h:30</a></div></div>
+<div class="ttc" id="class_control_element_button_html"><div class="ttname"><a href="class_control_element_button.html">ControlElementButton</a></div><div class="ttdoc">This class is responsible to handle the user interaction with control elements. </div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00063">ControlEditor.h:63</a></div></div>
<div class="ttc" id="class_control_editor_base_html"><div class="ttname"><a href="class_control_editor_base.html">ControlEditorBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00047">ControlEditorBase.h:47</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00012">ElementDataObject.h:12</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdoc">Class to store the elements in the clipboard. </div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00036">ElementDataObject.h:36</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="_i_o_control_8h_html"><div class="ttname"><a href="_i_o_control_8h.html">IOControl.h</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ControlEditor.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_editor_8h.html">ControlEditor.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_control_editor_base_8cpp_source.html b/docs/doxygen/html/_control_editor_base_8cpp_source.html
index dd5b8f7..c08213c 100644
--- a/docs/doxygen/html/_control_editor_base_8cpp_source.html
+++ b/docs/doxygen/html/_control_editor_base_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_control_editor_base_8h_source.html b/docs/doxygen/html/_control_editor_base_8h_source.html
index d294746..83db883 100644
--- a/docs/doxygen/html/_control_editor_base_8h_source.html
+++ b/docs/doxygen/html/_control_editor_base_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_control_editor_bitmaps_8cpp_source.html b/docs/doxygen/html/_control_editor_bitmaps_8cpp_source.html
index 5e26b1b..0b443a1 100644
--- a/docs/doxygen/html/_control_editor_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_control_editor_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_control_element_8cpp_source.html b/docs/doxygen/html/_control_element_8cpp_source.html
index c27c6e5..66bd3f0 100644
--- a/docs/doxygen/html/_control_element_8cpp_source.html
+++ b/docs/doxygen/html/_control_element_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,10 +88,11 @@ $(document).ready(function(){initNavTree('_control_element_8cpp_source.html','')
<div class="title">ControlElement.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;Node::Node(wxPoint2DDouble position, NodeType nodeType, <span class="keywordtype">double</span> borderSize)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keywordtype">double</span> totalRadius = m_radius + borderSize;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_rect = wxRect2DDouble(position.m_x - totalRadius, position.m_y - totalRadius, totalRadius * 2, totalRadius * 2);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_nodeType = nodeType;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius));</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius + 1, 0));</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;Node::~Node() {}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keywordtype">void</span> Node::SetPosition(wxPoint2DDouble position)</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_rect = wxRect2DDouble(position.m_x - m_rect.m_width / 2, position.m_y - m_rect.m_height / 2, m_rect.m_width,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_rect.m_height);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_triPts[0] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_triPts[1] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_triPts[2] = GetPosition() + wxPoint2DDouble(-m_radius + 1, 0);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// Rotate according to the angle (node rect center as reference)</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(m_angle != 0.0) RotateTriPt(m_angle);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> Node::StartMove(wxPoint2DDouble position)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_movePos = m_rect.GetPosition() - wxPoint2DDouble(-m_rect.m_width / 2, -m_rect.m_height / 2);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> Node::Move(wxPoint2DDouble position) { SetPosition(m_movePos + position - m_moveStartPt); }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;wxPoint2DDouble Node::GetPosition()<span class="keyword"> const</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> m_rect.GetPosition() + wxPoint2DDouble(m_rect.GetSize().GetWidth() / 2, m_rect.GetSize().GetHeight() / 2);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">void</span> Node::RotateTriPt(<span class="keywordtype">double</span> angle)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> radAngle = wxDegToRad(angle);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxPoint2DDouble rectCenter =</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_rect.GetPosition() + wxPoint2DDouble(m_rect.GetSize().GetWidth() / 2.0, m_rect.GetSize().GetHeight() / 2.0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_triPts[0] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[0].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::sin(radAngle) * (m_triPts[0].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::sin(radAngle) * (m_triPts[0].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::cos(radAngle) * (m_triPts[0].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_triPts[1] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[1].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::sin(radAngle) * (m_triPts[1].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::sin(radAngle) * (m_triPts[1].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; std::cos(radAngle) * (m_triPts[1].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_triPts[2] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[2].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::sin(radAngle) * (m_triPts[2].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::sin(radAngle) * (m_triPts[2].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::cos(radAngle) * (m_triPts[2].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> Node::Rotate(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Update input triangle points.</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_triPts[0] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_triPts[1] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_triPts[2] = GetPosition() + wxPoint2DDouble(-m_radius + 1, 0);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Rotate according to the angle (node rect center as reference)</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(m_angle != 0.0) RotateTriPt(m_angle);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">bool</span> Node::Contains(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(m_connected) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(position);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;ControlElement::ControlElement(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_element.html">Element</a>() { m_elementID = id; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;ControlElement::~ControlElement() {}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keywordtype">void</span> ControlElement::DrawNodes()<span class="keyword"> const</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DrawCircle(node-&gt;GetPosition(), node-&gt;GetRadius(), 10, GL_POLYGON);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() == Node::NODE_IN) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; DrawTriangle(node-&gt;GetInTrianglePts());</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec"> 100</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size(); ++i) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_nodeList[i]-&gt;StartMove(position);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708"> 109</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size(); ++i) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_nodeList[i]-&gt;Move(position);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;<span class="keywordtype">bool</span> ControlElement::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_output = input;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keywordtype">void</span> ControlElement::ReplaceNode(<a class="code" href="class_node.html">Node</a>* oldNode, <a class="code" href="class_node.html">Node</a>* newNode)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_nodeList.size(); i++) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(m_nodeList[i] == oldNode) m_nodeList[i] = newNode;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00100">ControlElement.cpp:100</a></div></div>
-<div class="ttc" id="class_control_element_html_ac8bd52ddb8eed51a217fecb2eed65708"><div class="ttname"><a href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00109">ControlElement.cpp:109</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Node::Node(wxPoint2DDouble position, NodeType nodeType, <span class="keywordtype">double</span> borderSize)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> totalRadius = m_radius + borderSize;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_rect = wxRect2DDouble(position.m_x - totalRadius, position.m_y - totalRadius, totalRadius * 2, totalRadius * 2);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_nodeType = nodeType;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_triPts.push_back(GetPosition() + wxPoint2DDouble(-m_radius + 1, 0));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;Node::~Node() {}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">void</span> Node::SetPosition(wxPoint2DDouble position)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_rect = wxRect2DDouble(position.m_x - m_rect.m_width / 2, position.m_y - m_rect.m_height / 2, m_rect.m_width,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_rect.m_height);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_triPts[0] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_triPts[1] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_triPts[2] = GetPosition() + wxPoint2DDouble(-m_radius + 1, 0);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// Rotate according to the angle (node rect center as reference)</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span>(m_angle != 0.0) RotateTriPt(m_angle);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">void</span> Node::StartMove(wxPoint2DDouble position)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_movePos = m_rect.GetPosition() - wxPoint2DDouble(-m_rect.m_width / 2, -m_rect.m_height / 2);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> Node::Move(wxPoint2DDouble position) { SetPosition(m_movePos + position - m_moveStartPt); }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;wxPoint2DDouble Node::GetPosition()<span class="keyword"> const</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> m_rect.GetPosition() + wxPoint2DDouble(m_rect.GetSize().GetWidth() / 2, m_rect.GetSize().GetHeight() / 2);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">void</span> Node::RotateTriPt(<span class="keywordtype">double</span> angle)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> radAngle = wxDegToRad(angle);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxPoint2DDouble rectCenter =</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_rect.GetPosition() + wxPoint2DDouble(m_rect.GetSize().GetWidth() / 2.0, m_rect.GetSize().GetHeight() / 2.0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_triPts[0] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[0].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::sin(radAngle) * (m_triPts[0].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::sin(radAngle) * (m_triPts[0].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::cos(radAngle) * (m_triPts[0].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_triPts[1] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[1].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::sin(radAngle) * (m_triPts[1].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; std::sin(radAngle) * (m_triPts[1].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::cos(radAngle) * (m_triPts[1].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_triPts[2] = wxPoint2DDouble(std::cos(radAngle) * (m_triPts[2].m_x - rectCenter.m_x) -</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::sin(radAngle) * (m_triPts[2].m_y - rectCenter.m_y) + rectCenter.m_x,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::sin(radAngle) * (m_triPts[2].m_x - rectCenter.m_x) +</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::cos(radAngle) * (m_triPts[2].m_y - rectCenter.m_y) + rectCenter.m_y);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> Node::Rotate(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Update input triangle points.</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_triPts[0] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, m_radius);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_triPts[1] = GetPosition() + wxPoint2DDouble(-m_radius - m_rect.GetSize().GetWidth() / 2, -m_radius);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_triPts[2] = GetPosition() + wxPoint2DDouble(-m_radius + 1, 0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Rotate according to the angle (node rect center as reference)</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(m_angle != 0.0) RotateTriPt(m_angle);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keywordtype">bool</span> Node::Contains(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(m_connected) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(position);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;ControlElement::ControlElement(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_element.html">Element</a>() { m_elementID = id; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;ControlElement::~ControlElement() {}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keywordtype">void</span> ControlElement::DrawNodes()<span class="keyword"> const</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; DrawCircle(node-&gt;GetPosition(), node-&gt;GetRadius(), 10, GL_POLYGON);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() == Node::NODE_IN) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; DrawTriangle(node-&gt;GetInTrianglePts());</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec"> 117</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size(); ++i) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_nodeList[i]-&gt;StartMove(position);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"><a class="line" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708"> 126</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size(); ++i) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_nodeList[i]-&gt;Move(position);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keywordtype">bool</span> ControlElement::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_output = input;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keywordtype">void</span> ControlElement::ReplaceNode(<a class="code" href="class_node.html">Node</a>* oldNode, <a class="code" href="class_node.html">Node</a>* newNode)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_nodeList.size(); i++) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(m_nodeList[i] == oldNode) m_nodeList[i] = newNode;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00117">ControlElement.cpp:117</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_control_element_html_ac8bd52ddb8eed51a217fecb2eed65708"><div class="ttname"><a href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00126">ControlElement.cpp:126</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_control_element_8h.html b/docs/doxygen/html/_control_element_8h.html
new file mode 100644
index 0000000..b059beb
--- /dev/null
+++ b/docs/doxygen/html/_control_element_8h.html
@@ -0,0 +1,124 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ControlElement.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_control_element_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ControlElement.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Base class of a control element. Provide general methods to other control classes.
+<a href="#details">More...</a></p>
+<div class="textblock"><code>#include &quot;<a class="el" href="_element_8h_source.html">Element.h</a>&quot;</code><br />
+</div>
+<p><a href="_control_element_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_node.html">Node</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> of a control element. This class manages the user interaction with the connection and control elements. <a href="class_node.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_element.html">ControlElement</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Base class of a control element. Provide general methods to other control classes. </p>
+
+<p class="definition">Definition in file <a class="el" href="_control_element_8h_source.html">ControlElement.h</a>.</p>
+</div></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_8h.html">ControlElement.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_control_element_8h_source.html b/docs/doxygen/html/_control_element_8h_source.html
index 25475b7..4e1c5d9 100644
--- a/docs/doxygen/html/_control_element_8h_source.html
+++ b/docs/doxygen/html/_control_element_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_control_element_8h_source.html','');}
<div class="title">ControlElement.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONTROLELEMENT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_node.html"> 6</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_node.html">Node</a></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">enum</span> NodeType { NODE_IN = 0, NODE_OUT };</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble position = wxPoint2DDouble(0, 0), NodeType nodeType = NODE_IN, <span class="keywordtype">double</span> borderSize = 0.0);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_node.html">Node</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; wxRect2DDouble GetRect()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect; }</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">void</span> SetRect(wxRect2DDouble rect) { m_rect = rect; }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; wxPoint2DDouble GetPosition() <span class="keyword">const</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">void</span> SetPosition(wxPoint2DDouble position);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; NodeType GetNodeType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nodeType; }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">void</span> SetNodeType(NodeType nodeType) { m_nodeType = nodeType; }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span> GetRadius()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_radius; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; std::vector&lt;wxPoint2DDouble&gt; GetInTrianglePts()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_triPts; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> GetAngle()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_angle; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">void</span> SetAngle(<span class="keywordtype">double</span> angle) { m_angle = angle; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> RotateTriPt(<span class="keywordtype">double</span> angle);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">bool</span> IsConnected()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_connected; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">void</span> SetConnected(<span class="keywordtype">bool</span> connected = <span class="keyword">true</span>) { m_connected = connected; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">int</span> GetID()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_id; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> SetID(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) { m_id = id; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">int</span> m_id = -1;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxRect2DDouble m_rect;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; NodeType m_nodeType;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">bool</span> m_connected = <span class="keyword">false</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxPoint2DDouble m_moveStartPt;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxPoint2DDouble m_movePos;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> m_radius = 3.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triPts;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> m_angle = 0.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_control_element.html"> 53</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; ~<a class="code" href="class_control_element.html">ControlElement</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">void</span> SetNodeList(std::vector&lt;Node*&gt; nodeList) { m_nodeList = nodeList; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::vector&lt;Node*&gt; GetNodeList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nodeList; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawNodes() <span class="keyword">const</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceNode(<a class="code" href="class_node.html">Node</a>* oldNode, <a class="code" href="class_node.html">Node</a>* newNode);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() {}</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsSolved()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_solved; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSolved(<span class="keywordtype">bool</span> solved = <span class="keyword">true</span>) { m_solved = solved; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetOutput()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_output; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetOutput(<span class="keywordtype">double</span> output) { m_output = output; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;Node*&gt; m_nodeList;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">bool</span> m_solved = <span class="keyword">false</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> m_output = 0.0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_control_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONTROLELEMENT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_node.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_node.html">Node</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">enum</span> NodeType { NODE_IN = 0, NODE_OUT };</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble position = wxPoint2DDouble(0, 0), NodeType nodeType = NODE_IN, <span class="keywordtype">double</span> borderSize = 0.0);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_node.html">Node</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; wxRect2DDouble GetRect()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">void</span> SetRect(wxRect2DDouble rect) { m_rect = rect; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxPoint2DDouble GetPosition() <span class="keyword">const</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">void</span> SetPosition(wxPoint2DDouble position);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; NodeType GetNodeType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nodeType; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> SetNodeType(NodeType nodeType) { m_nodeType = nodeType; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> GetRadius()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_radius; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; std::vector&lt;wxPoint2DDouble&gt; GetInTrianglePts()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_triPts; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> GetAngle()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_angle; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">void</span> SetAngle(<span class="keywordtype">double</span> angle) { m_angle = angle; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">void</span> RotateTriPt(<span class="keywordtype">double</span> angle);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> IsConnected()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_connected; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> SetConnected(<span class="keywordtype">bool</span> connected = <span class="keyword">true</span>) { m_connected = connected; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">int</span> GetID()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_id; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> SetID(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) { m_id = id; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">int</span> m_id = -1;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; wxRect2DDouble m_rect;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; NodeType m_nodeType;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">bool</span> m_connected = <span class="keyword">false</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxPoint2DDouble m_moveStartPt;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; wxPoint2DDouble m_movePos;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> m_radius = 3.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triPts;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> m_angle = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;};</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_control_element.html"> 84</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; ~<a class="code" href="class_control_element.html">ControlElement</a>();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> SetNodeList(std::vector&lt;Node*&gt; nodeList) { m_nodeList = nodeList; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; std::vector&lt;Node*&gt; GetNodeList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_nodeList; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawNodes() <span class="keyword">const</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceNode(<a class="code" href="class_node.html">Node</a>* oldNode, <a class="code" href="class_node.html">Node</a>* newNode);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() {}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsSolved()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_solved; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSolved(<span class="keywordtype">bool</span> solved = <span class="keyword">true</span>) { m_solved = solved; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetOutput()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_output; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetOutput(<span class="keywordtype">double</span> output) { m_output = output; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; std::vector&lt;Node*&gt; m_nodeList;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">bool</span> m_solved = <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> m_output = 0.0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;};</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ControlElement.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_8h.html">ControlElement.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_control_element_container_8cpp_source.html b/docs/doxygen/html/_control_element_container_8cpp_source.html
index e9e32c9..1e4bdf8 100644
--- a/docs/doxygen/html/_control_element_container_8cpp_source.html
+++ b/docs/doxygen/html/_control_element_container_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,25 +88,28 @@ $(document).ready(function(){initNavTree('_control_element_container_8cpp_source
<div class="title">ControlElementContainer.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;ControlElementContainer::ControlElementContainer() { ClearContainer(); }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;ControlElementContainer::~ControlElementContainer() {}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::FillContainer(<a class="code" href="class_control_editor.html">ControlEditor</a>* editor)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; ClearContainer();</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_ctrlElementsList = editor-&gt;GetControlElementList();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_cLineList = editor-&gt;GetConnectionLineList();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">auto</span> cElementList = editor-&gt;GetControlElementList();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = cElementList.begin(), itEnd = cElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_constant.html">Constant</a>* constant = dynamic_cast&lt;Constant*&gt;(*it)) {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_constantList.push_back(constant);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_exponential.html">Exponential</a>* exponential = dynamic_cast&lt;Exponential*&gt;(*it)) {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_exponentialList.push_back(exponential);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_gain.html">Gain</a>* gain = dynamic_cast&lt;Gain*&gt;(*it)) {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_gainList.push_back(gain);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_i_o_control.html">IOControl</a>* ioControl = dynamic_cast&lt;IOControl*&gt;(*it)) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_ioControlList.push_back(ioControl);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_limiter.html">Limiter</a>* limiter = dynamic_cast&lt;Limiter*&gt;(*it)) {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_limiterList.push_back(limiter);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = dynamic_cast&lt;Multiplier*&gt;(*it)) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_multiplierList.push_back(multiplier);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = dynamic_cast&lt;RateLimiter*&gt;(*it)) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_rateLimiterList.push_back(rateLimiter);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sum.html">Sum</a>* sum = dynamic_cast&lt;Sum*&gt;(*it)) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_sumList.push_back(sum);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = dynamic_cast&lt;TransferFunction*&gt;(*it)) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_tfList.push_back(tf);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::ClearContainer()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_cLineList.clear();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_constantList.clear();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_exponentialList.clear();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_gainList.clear();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_ioControlList.clear();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_limiterList.clear();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_multiplierList.clear();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_rateLimiterList.clear();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_sumList.clear();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_tfList.clear();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::FillContainer(std::vector&lt;ControlElement*&gt; controlElementList,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionLineList)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; ClearContainer();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_ctrlElementsList = controlElementList;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_cLineList = connectionLineList;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = controlElementList.begin(), itEnd = controlElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_constant.html">Constant</a>* constant = dynamic_cast&lt;Constant*&gt;(*it)) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_constantList.push_back(constant);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_exponential.html">Exponential</a>* exponential = dynamic_cast&lt;Exponential*&gt;(*it)) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_exponentialList.push_back(exponential);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_gain.html">Gain</a>* gain = dynamic_cast&lt;Gain*&gt;(*it)) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_gainList.push_back(gain);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_i_o_control.html">IOControl</a>* ioControl = dynamic_cast&lt;IOControl*&gt;(*it)) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_ioControlList.push_back(ioControl);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_limiter.html">Limiter</a>* limiter = dynamic_cast&lt;Limiter*&gt;(*it)) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_limiterList.push_back(limiter);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = dynamic_cast&lt;Multiplier*&gt;(*it)) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_multiplierList.push_back(multiplier);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = dynamic_cast&lt;RateLimiter*&gt;(*it)) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_rateLimiterList.push_back(rateLimiter);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sum.html">Sum</a>* sum = dynamic_cast&lt;Sum*&gt;(*it)) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_sumList.push_back(sum);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = dynamic_cast&lt;TransferFunction*&gt;(*it)) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_tfList.push_back(tf);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::GetContainerCopy(std::vector&lt;ControlElement*&gt;&amp; controlElementList,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; connectionLineList)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; controlElementList.clear();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; connectionLineList.clear();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Copy connection lines</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_cLineList.begin(), itEnd = m_cLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copy = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>((*it)-&gt;GetCopy());</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; connectionLineList.push_back(copy);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Copy elements (exept connection line).</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">int</span> nodeID = 0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_ctrlElementsList.begin(), itEnd = m_ctrlElementsList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="class_element.html">Element</a>* oldElement = *it;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* copy = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(oldElement-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>());</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; controlElementList.push_back(copy);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Copy nodes.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::vector&lt;Node*&gt; nodeList = copy-&gt;GetNodeList();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::vector&lt;Node*&gt; nodeListCopy;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; node-&gt;SetID(nodeID);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_node.html">Node</a>* copyNode = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; *copyNode = *node;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; nodeListCopy.push_back(copyNode);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; nodeID++;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; copy-&gt;SetNodeList(nodeListCopy);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Replace children to copies.</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">auto</span> childList = copy-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Replace child&#39;s parent to copy.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCL = connectionLineList.begin(), itEndCL = connectionLineList.end(); itCL != itEndCL; ++itCL) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copyLine = *itCL;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(copyLine-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == child-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">// Replace node.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; nodeList = child-&gt;GetNodeList();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeListCopy.begin(), itEndCN = nodeListCopy.end(); itCN != itEndCN; ++itCN) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeCopy = *itCN;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetID() == nodeCopy-&gt;GetID()) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; copyLine-&gt;ReplaceNode(node, nodeCopy);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; copyLine-&gt;<a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">ReplaceParent</a>(oldElement, copy);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; copy-&gt;<a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">ReplaceChild</a>(child, copyLine);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00523">Element.h:523</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00343">Element.cpp:343</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00270">Element.h:270</a></div></div>
-<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00326">Element.cpp:326</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
-<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00258">Element.h:258</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;ControlElementContainer::ControlElementContainer() { ClearContainer(); }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;ControlElementContainer::~ControlElementContainer() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::FillContainer(<a class="code" href="class_control_editor.html">ControlEditor</a>* editor)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; ClearContainer();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_ctrlElementsList = editor-&gt;GetControlElementList();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_cLineList = editor-&gt;GetConnectionLineList();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">auto</span> cElementList = editor-&gt;GetControlElementList();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = cElementList.begin(), itEnd = cElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_constant.html">Constant</a>* constant = dynamic_cast&lt;Constant*&gt;(*it)) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_constantList.push_back(constant);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_exponential.html">Exponential</a>* exponential = dynamic_cast&lt;Exponential*&gt;(*it)) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_exponentialList.push_back(exponential);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_gain.html">Gain</a>* gain = dynamic_cast&lt;Gain*&gt;(*it)) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_gainList.push_back(gain);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_i_o_control.html">IOControl</a>* ioControl = dynamic_cast&lt;IOControl*&gt;(*it)) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_ioControlList.push_back(ioControl);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_limiter.html">Limiter</a>* limiter = dynamic_cast&lt;Limiter*&gt;(*it)) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_limiterList.push_back(limiter);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = dynamic_cast&lt;Multiplier*&gt;(*it)) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_multiplierList.push_back(multiplier);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = dynamic_cast&lt;RateLimiter*&gt;(*it)) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_rateLimiterList.push_back(rateLimiter);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sum.html">Sum</a>* sum = dynamic_cast&lt;Sum*&gt;(*it)) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_sumList.push_back(sum);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = dynamic_cast&lt;TransferFunction*&gt;(*it)) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_tfList.push_back(tf);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::ClearContainer()</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_cLineList.clear();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_constantList.clear();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_exponentialList.clear();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_gainList.clear();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_ioControlList.clear();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_limiterList.clear();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_multiplierList.clear();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_rateLimiterList.clear();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_sumList.clear();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_tfList.clear();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::FillContainer(std::vector&lt;ControlElement*&gt; controlElementList,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionLineList)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;{</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; ClearContainer();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_ctrlElementsList = controlElementList;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_cLineList = connectionLineList;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = controlElementList.begin(), itEnd = controlElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_constant.html">Constant</a>* constant = dynamic_cast&lt;Constant*&gt;(*it)) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_constantList.push_back(constant);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_exponential.html">Exponential</a>* exponential = dynamic_cast&lt;Exponential*&gt;(*it)) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_exponentialList.push_back(exponential);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_gain.html">Gain</a>* gain = dynamic_cast&lt;Gain*&gt;(*it)) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_gainList.push_back(gain);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_i_o_control.html">IOControl</a>* ioControl = dynamic_cast&lt;IOControl*&gt;(*it)) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_ioControlList.push_back(ioControl);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_limiter.html">Limiter</a>* limiter = dynamic_cast&lt;Limiter*&gt;(*it)) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_limiterList.push_back(limiter);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = dynamic_cast&lt;Multiplier*&gt;(*it)) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_multiplierList.push_back(multiplier);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = dynamic_cast&lt;RateLimiter*&gt;(*it)) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_rateLimiterList.push_back(rateLimiter);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sum.html">Sum</a>* sum = dynamic_cast&lt;Sum*&gt;(*it)) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_sumList.push_back(sum);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = dynamic_cast&lt;TransferFunction*&gt;(*it)) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_tfList.push_back(tf);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="keywordtype">void</span> ControlElementContainer::GetContainerCopy(std::vector&lt;ControlElement*&gt;&amp; controlElementList,</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; connectionLineList)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; controlElementList.clear();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; connectionLineList.clear();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Copy connection lines</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_cLineList.begin(), itEnd = m_cLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copy = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>((*it)-&gt;GetCopy());</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; connectionLineList.push_back(copy);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Copy elements (exept connection line).</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">int</span> nodeID = 0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_ctrlElementsList.begin(), itEnd = m_ctrlElementsList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_element.html">Element</a>* oldElement = *it;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* copy = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(oldElement-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>());</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; controlElementList.push_back(copy);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Copy nodes.</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;Node*&gt; nodeList = copy-&gt;GetNodeList();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;Node*&gt; nodeListCopy;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; node-&gt;SetID(nodeID);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_node.html">Node</a>* copyNode = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; *copyNode = *node;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; nodeListCopy.push_back(copyNode);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; nodeID++;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; copy-&gt;SetNodeList(nodeListCopy);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Replace children to copies.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">auto</span> childList = copy-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itEndC = childList.end(); itC != itEndC; ++itC) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Replace child&#39;s parent to copy.</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCL = connectionLineList.begin(), itEndCL = connectionLineList.end(); itCL != itEndCL; ++itCL) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* copyLine = *itCL;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>(copyLine-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == child-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Replace node.</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; nodeList = child-&gt;GetNodeList();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itEndN = nodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeListCopy.begin(), itEndCN = nodeListCopy.end(); itCN != itEndCN; ++itCN) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeCopy = *itCN;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetID() == nodeCopy-&gt;GetID()) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; copyLine-&gt;ReplaceNode(node, nodeCopy);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; copyLine-&gt;<a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">ReplaceParent</a>(oldElement, copy);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; copy-&gt;<a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">ReplaceChild</a>(child, copyLine);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00511">Element.h:511</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00362">Element.cpp:362</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00272">Element.h:272</a></div></div>
+<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00346">Element.cpp:346</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
+<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00262">Element.h:262</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_control_element_container_8h.html b/docs/doxygen/html/_control_element_container_8h.html
new file mode 100644
index 0000000..1b8b197
--- /dev/null
+++ b/docs/doxygen/html/_control_element_container_8h.html
@@ -0,0 +1,125 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ControlElementContainer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_control_element_container_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ControlElementContainer.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;vector&gt;</code><br />
+<code>#include &quot;<a class="el" href="_connection_line_8h_source.html">ConnectionLine.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_constant_8h_source.html">Constant.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_exponential_8h_source.html">Exponential.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_gain_8h_source.html">Gain.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_limiter_8h_source.html">Limiter.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sum_8h_source.html">Sum.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>&quot;</code><br />
+</div>
+<p><a href="_control_element_container_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_element_container.html">ControlElementContainer</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic list and store them separately. <a href="class_control_element_container.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_container_8h.html">ControlElementContainer.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_control_element_container_8h_source.html b/docs/doxygen/html/_control_element_container_8h_source.html
index 0b62010..c91c02d 100644
--- a/docs/doxygen/html/_control_element_container_8h_source.html
+++ b/docs/doxygen/html/_control_element_container_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,25 @@ $(document).ready(function(){initNavTree('_control_element_container_8h_source.h
<div class="title">ControlElementContainer.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENTCONTAINER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONTROLELEMENTCONTAINER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Constant.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Exponential.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Gain.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;IOControl.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;Limiter.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;Multiplier.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;RateLimiter.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;Sum.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;TransferFunction.h&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_control_element_container.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; ~<a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillContainer(<a class="code" href="class_control_editor.html">ControlEditor</a>* editor);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillContainer(std::vector&lt;ControlElement*&gt; controlElementList,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionLineList);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetContainerCopy(std::vector&lt;ControlElement*&gt;&amp; controlElementList,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; connectionLineList);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ClearContainer();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; std::vector&lt;ControlElement*&gt; GetControlElementsList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ctrlElementsList; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; std::vector&lt;ConnectionLine*&gt; GetConnectionLineList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cLineList; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; std::vector&lt;Constant*&gt; GetConstantList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_constantList; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; std::vector&lt;Exponential*&gt; GetExponentialList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_exponentialList; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; std::vector&lt;Gain*&gt; GetGainList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_gainList; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;IOControl*&gt; GetIOControlList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ioControlList; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::vector&lt;Limiter*&gt; GetLimiterList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_limiterList; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::vector&lt;Multiplier*&gt; GetMultiplierList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_multiplierList; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;RateLimiter*&gt; GetRateLimiterList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rateLimiterList; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;Sum*&gt; GetSumList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_sumList; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; std::vector&lt;TransferFunction*&gt; GetTFList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_tfList; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; std::vector&lt;ControlElement*&gt; m_ctrlElementsList;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; std::vector&lt;Constant*&gt; m_constantList;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;ConnectionLine*&gt; m_cLineList;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::vector&lt;Exponential*&gt; m_exponentialList;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;Gain*&gt; m_gainList;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::vector&lt;IOControl*&gt; m_ioControlList;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::vector&lt;Limiter*&gt; m_limiterList;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;Multiplier*&gt; m_multiplierList;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; std::vector&lt;RateLimiter*&gt; m_rateLimiterList;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::vector&lt;Sum*&gt; m_sumList;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::vector&lt;TransferFunction*&gt; m_tfList;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENTCONTAINER_H</span></div><div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_control_element_container_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENTCONTAINER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONTROLELEMENTCONTAINER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element.html">ControlElement</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_8h.html">Constant.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_8h.html">Exponential.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_8h.html">Gain.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_8h.html">IOControl.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_8h.html">Limiter.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_multiplier_8h.html">Multiplier.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_8h.html">RateLimiter.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_8h.html">Sum.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_8h.html">TransferFunction.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_control_element_container.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ~<a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillContainer(<a class="code" href="class_control_editor.html">ControlEditor</a>* editor);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillContainer(std::vector&lt;ControlElement*&gt; controlElementList,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionLineList);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetContainerCopy(std::vector&lt;ControlElement*&gt;&amp; controlElementList,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; connectionLineList);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ClearContainer();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;ControlElement*&gt; GetControlElementsList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ctrlElementsList; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;ConnectionLine*&gt; GetConnectionLineList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_cLineList; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::vector&lt;Constant*&gt; GetConstantList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_constantList; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; std::vector&lt;Exponential*&gt; GetExponentialList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_exponentialList; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; std::vector&lt;Gain*&gt; GetGainList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_gainList; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::vector&lt;IOControl*&gt; GetIOControlList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ioControlList; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::vector&lt;Limiter*&gt; GetLimiterList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_limiterList; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;Multiplier*&gt; GetMultiplierList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_multiplierList; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::vector&lt;RateLimiter*&gt; GetRateLimiterList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rateLimiterList; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;Sum*&gt; GetSumList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_sumList; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;TransferFunction*&gt; GetTFList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_tfList; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; std::vector&lt;ControlElement*&gt; m_ctrlElementsList;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::vector&lt;Constant*&gt; m_constantList;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;ConnectionLine*&gt; m_cLineList;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::vector&lt;Exponential*&gt; m_exponentialList;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;Gain*&gt; m_gainList;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; std::vector&lt;IOControl*&gt; m_ioControlList;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; std::vector&lt;Limiter*&gt; m_limiterList;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; std::vector&lt;Multiplier*&gt; m_multiplierList;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; std::vector&lt;RateLimiter*&gt; m_rateLimiterList;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; std::vector&lt;Sum*&gt; m_sumList;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::vector&lt;TransferFunction*&gt; m_tfList;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;};</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENTCONTAINER_H</span></div><div class="ttc" id="_multiplier_8h_html"><div class="ttname"><a href="_multiplier_8h.html">Multiplier.h</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="_gain_8h_html"><div class="ttname"><a href="_gain_8h.html">Gain.h</a></div></div>
+<div class="ttc" id="_sum_8h_html"><div class="ttname"><a href="_sum_8h.html">Sum.h</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="_constant_8h_html"><div class="ttname"><a href="_constant_8h.html">Constant.h</a></div></div>
+<div class="ttc" id="_i_o_control_8h_html"><div class="ttname"><a href="_i_o_control_8h.html">IOControl.h</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="_exponential_8h_html"><div class="ttname"><a href="_exponential_8h.html">Exponential.h</a></div></div>
+<div class="ttc" id="_rate_limiter_8h_html"><div class="ttname"><a href="_rate_limiter_8h.html">RateLimiter.h</a></div></div>
+<div class="ttc" id="_limiter_8h_html"><div class="ttname"><a href="_limiter_8h.html">Limiter.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="_transfer_function_8h_html"><div class="ttname"><a href="_transfer_function_8h.html">TransferFunction.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ControlElementContainer.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_container_8h.html">ControlElementContainer.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_control_element_solver_8cpp_source.html b/docs/doxygen/html/_control_element_solver_8cpp_source.html
index c1d832a..a103734 100644
--- a/docs/doxygen/html/_control_element_solver_8cpp_source.html
+++ b/docs/doxygen/html/_control_element_solver_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,30 @@ $(document).ready(function(){initNavTree('_control_element_solver_8cpp_source.ht
<div class="title">ControlElementSolver.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ControlElementSolver.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;Constant.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;Exponential.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;Gain.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;IOControl.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Limiter.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Multiplier.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;RateLimiter.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;Sum.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;TransferFunction.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;ControlElementSolver::ControlElementSolver(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> input)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_ctrlContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_ctrlContainer-&gt;FillContainer(controlEditor);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; Initialize(controlEditor, timeStep, integrationError, startAllZero, input);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;ControlElementSolver::ControlElementSolver(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> input,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; wxWindow* parent)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_ctrlContainer = ctrlContainer;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; Initialize(parent, timeStep, integrationError, startAllZero, input);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::Initialize(wxWindow* parent,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> input)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Check if the sistem have one input and one output</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">bool</span> fail = <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxString failMessage = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">auto</span> ioList = m_ctrlContainer-&gt;GetIOControlList();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(ioList.size() != 2) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; failMessage = _(<span class="stringliteral">&quot;The control system must have one input and one output.&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">bool</span> haveInput, haveOutput;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; haveInput = haveOutput = <span class="keyword">false</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = ioList.begin(), itEnd = ioList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = *it;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(io-&gt;GetType() == Node::NODE_OUT) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_inputControl = io;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; haveInput = <span class="keyword">true</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(io-&gt;GetType() == Node::NODE_IN) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_outputControl = io;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; haveOutput = <span class="keyword">true</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(!fail &amp;&amp; !haveInput) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; failMessage = _(<span class="stringliteral">&quot;There is no input in the control system.&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(!fail &amp;&amp; !haveOutput) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; failMessage = _(<span class="stringliteral">&quot;There is no output in the control system.&quot;</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(!fail) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_inputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 0) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; failMessage = _(<span class="stringliteral">&quot;Input not connected.&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_timeStep = timeStep;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_integrationError = integrationError;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(!fail) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(!InitializeValues(input, startAllZero)) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; failMessage = _(<span class="stringliteral">&quot;It was not possible to initialize the control system.&quot;</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(fail) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxMessageDialog msgDialog(parent, failMessage, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_isOK = <span class="keyword">true</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keywordtype">bool</span> ControlElementSolver::InitializeValues(<span class="keywordtype">double</span> input, <span class="keywordtype">bool</span> startAllZero)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Reset Elements values</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">auto</span> elementList = m_ctrlContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; element-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; element-&gt;SetOutput(0.0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">auto</span> tfList = m_ctrlContainer-&gt;GetTFList();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = tfList.begin(), itEnd = tfList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = *it;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tf-&gt;CalculateSpaceState(100, m_integrationError);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> connectionLineList = m_ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; cLine-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; cLine-&gt;SetValue(0.0);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(!startAllZero) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">double</span> origTimeStep = m_timeStep;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">double</span> minStep = m_timeStep / 10;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">double</span> maxStep = m_timeStep * 10;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Calculate the steady-state results according to the input.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">double</span> minError = 1e-7 * m_timeStep;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">int</span> maxIteration = 100 / m_timeStep;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">double</span> prevSol = 0.0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">double</span> currentSol = 1.0;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">double</span> error = 1.0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">double</span> prevError = 1.0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">int</span> numIt = 0;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">while</span>(error &gt; minError) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; prevSol = currentSol;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; prevError = error;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; SolveNextStep(input);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; currentSol = GetLastSolution();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; numIt++;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; error = std::abs(prevSol - currentSol);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(std::abs(error - prevError) &lt; 1e-1) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(m_timeStep &lt; maxStep) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_timeStep *= 1.5;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(std::abs(error - prevError) &gt; 10) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(m_timeStep &gt; minStep) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_timeStep /= 1.5;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(numIt &gt;= maxIteration) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_timeStep = origTimeStep;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_solutions.clear();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::SolveNextStep(<span class="keywordtype">double</span> input)</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Set all elements as not solved</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">auto</span> elementList = m_ctrlContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; element-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> connectionLineList = m_ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; cLine-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// Get first node and set input value on connected lines</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* firstConn = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(m_inputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_inputControl-&gt;SetSolved();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; firstConn-&gt;SetValue(input);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; firstConn-&gt;SetSolved();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; FillAllConnectedChildren(firstConn);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// Set value to the connected lines in constants</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">auto</span> constantList = m_ctrlContainer-&gt;GetConstantList();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = constantList.begin(), itEnd = constantList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = *it;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(constant-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 1) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; constant-&gt;SetSolved();</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(constant-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; child-&gt;SetValue(constant-&gt;GetValue());</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; child-&gt;SetSolved();</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; FillAllConnectedChildren(child);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine = firstConn;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">while</span>(currentLine) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; currentLine = SolveNextElement(currentLine);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">bool</span> haveUnsolvedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">while</span>(haveUnsolvedElement) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; haveUnsolvedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Get the solved line connected with unsolved element (elements not connected in the main branch).</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;IsSolved()) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itPEnd = parentList.end(); itP != itPEnd; ++itP) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*itP);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(!parent-&gt;IsSolved()) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; haveUnsolvedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Solve secondary branch.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; currentLine = cLine;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">while</span>(currentLine) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; currentLine = SolveNextElement(currentLine);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(haveUnsolvedElement) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// Set the control system step output.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(m_outputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 1) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(m_outputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_solutions.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_solutions.push_back(0.0);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;}</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::FillAllConnectedChildren(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent)</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;{</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">auto</span> childList = parent-&gt;GetLineChildList();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = *it;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; child-&gt;SetValue(parent-&gt;GetValue());</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; child-&gt;SetSolved();</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; FillAllConnectedChildren(child);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;<a class="code" href="class_connection_line.html">ConnectionLine</a>* ControlElementSolver::SolveNextElement(<a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine)</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">auto</span> parentList = currentLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// Solve the unsolved parent.</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(!element-&gt;IsSolved()) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(!element-&gt;Solve(currentLine-&gt;GetValue(), m_timeStep)) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; element-&gt;SetSolved();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// Get the output node (must have one or will result NULL).</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="class_node.html">Node</a>* outNode = NULL;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() == Node::NODE_OUT) outNode = node;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(!outNode) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// Set connection line value associated with the output node.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itCEnd = childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(!cLine-&gt;IsSolved()) { <span class="comment">// Only check unsolved lines</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Check if the connection line have the output node on the list</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keyword">auto</span> lineNodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(childNode == outNode) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// Check if the line connect two elements, otherwise return NULL</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetType() != ConnectionLine::ELEMENT_ELEMENT) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// Set the connection line value and return it.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; cLine-&gt;SetValue(element-&gt;GetOutput());</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; cLine-&gt;SetSolved();</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; FillAllConnectedChildren(cLine);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">return</span> cLine;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00523">Element.h:523</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_solver_8h.html">ControlElementSolver.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_constant_8h.html">Constant.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_8h.html">Exponential.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_8h.html">Gain.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_8h.html">IOControl.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_8h.html">Limiter.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_multiplier_8h.html">Multiplier.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_8h.html">RateLimiter.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_8h.html">Sum.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_8h.html">TransferFunction.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;ControlElementSolver::ControlElementSolver(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> input)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_ctrlContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_ctrlContainer-&gt;FillContainer(controlEditor);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; Initialize(controlEditor, timeStep, integrationError, startAllZero, input);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;ControlElementSolver::ControlElementSolver(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> input,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxWindow* parent)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_ctrlContainer = ctrlContainer;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; Initialize(parent, timeStep, integrationError, startAllZero, input);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::Initialize(wxWindow* parent,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> timeStep,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> integrationError,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">bool</span> startAllZero,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> input)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Check if the sistem have one input and one output</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> fail = <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; wxString failMessage = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">auto</span> ioList = m_ctrlContainer-&gt;GetIOControlList();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(ioList.size() != 2) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; failMessage = _(<span class="stringliteral">&quot;The control system must have one input and one output.&quot;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">bool</span> haveInput, haveOutput;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; haveInput = haveOutput = <span class="keyword">false</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = ioList.begin(), itEnd = ioList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = *it;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(io-&gt;GetType() == Node::NODE_OUT) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_inputControl = io;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; haveInput = <span class="keyword">true</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(io-&gt;GetType() == Node::NODE_IN) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_outputControl = io;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; haveOutput = <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(!fail &amp;&amp; !haveInput) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; failMessage = _(<span class="stringliteral">&quot;There is no input in the control system.&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(!fail &amp;&amp; !haveOutput) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; failMessage = _(<span class="stringliteral">&quot;There is no output in the control system.&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(!fail) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(m_inputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 0) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; failMessage = _(<span class="stringliteral">&quot;Input not connected.&quot;</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_timeStep = timeStep;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_integrationError = integrationError;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(!fail) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(!InitializeValues(input, startAllZero)) {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; fail = <span class="keyword">true</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; failMessage = _(<span class="stringliteral">&quot;It was not possible to initialize the control system.&quot;</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(fail) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxMessageDialog msgDialog(parent, failMessage, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_isOK = <span class="keyword">true</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keywordtype">bool</span> ControlElementSolver::InitializeValues(<span class="keywordtype">double</span> input, <span class="keywordtype">bool</span> startAllZero)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="comment">// Reset Elements values</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">auto</span> elementList = m_ctrlContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; element-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; element-&gt;SetOutput(0.0);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">auto</span> tfList = m_ctrlContainer-&gt;GetTFList();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = tfList.begin(), itEnd = tfList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = *it;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; tf-&gt;<a class="code" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">CalculateSpaceState</a>(100, m_integrationError);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">auto</span> connectionLineList = m_ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; cLine-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; cLine-&gt;SetValue(0.0);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(!startAllZero) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">double</span> origTimeStep = m_timeStep;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">double</span> minStep = m_timeStep / 10;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">double</span> maxStep = m_timeStep * 10;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Calculate the steady-state results according to the input.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">double</span> minError = 1e-7 * m_timeStep;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">int</span> maxIteration = 100 / m_timeStep;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">double</span> prevSol = 0.0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">double</span> currentSol = 1.0;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">double</span> error = 1.0;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">double</span> prevError = 1.0;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">int</span> numIt = 0;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">while</span>(error &gt; minError) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; prevSol = currentSol;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; prevError = error;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; SolveNextStep(input);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; currentSol = GetLastSolution();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; numIt++;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; error = std::abs(prevSol - currentSol);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(std::abs(error - prevError) &lt; 1e-1) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(m_timeStep &lt; maxStep) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_timeStep *= 1.5;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(std::abs(error - prevError) &gt; 10) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(m_timeStep &gt; minStep) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_timeStep /= 1.5;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(numIt &gt;= maxIteration) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_timeStep = origTimeStep;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_solutions.clear();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::SolveNextStep(<span class="keywordtype">double</span> input)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Set all elements as not solved</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">auto</span> elementList = m_ctrlContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; element-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keyword">auto</span> connectionLineList = m_ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; cLine-&gt;SetSolved(<span class="keyword">false</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Get first node and set input value on connected lines</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* firstConn = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(m_inputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_inputControl-&gt;SetSolved();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; firstConn-&gt;SetValue(input);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; firstConn-&gt;SetSolved();</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; FillAllConnectedChildren(firstConn);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// Set value to the connected lines in constants</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">auto</span> constantList = m_ctrlContainer-&gt;GetConstantList();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = constantList.begin(), itEnd = constantList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = *it;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(constant-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 1) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; constant-&gt;SetSolved();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(constant-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; child-&gt;SetValue(constant-&gt;GetValue());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; child-&gt;SetSolved();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; FillAllConnectedChildren(child);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine = firstConn;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">while</span>(currentLine) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; currentLine = SolveNextElement(currentLine);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordtype">bool</span> haveUnsolvedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">while</span>(haveUnsolvedElement) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; haveUnsolvedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Get the solved line connected with unsolved element (elements not connected in the main branch).</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionLineList.begin(), itEnd = connectionLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;IsSolved()) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itPEnd = parentList.end(); itP != itPEnd; ++itP) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*itP);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(!parent-&gt;IsSolved()) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; haveUnsolvedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Solve secondary branch.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; currentLine = cLine;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">while</span>(currentLine) {</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; currentLine = SolveNextElement(currentLine);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(haveUnsolvedElement) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="comment">// Set the control system step output.</span></div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(m_outputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>().size() == 1) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(m_outputControl-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()[0]);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_solutions.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_solutions.push_back(0.0);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;}</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keywordtype">void</span> ControlElementSolver::FillAllConnectedChildren(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent)</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;{</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">auto</span> childList = parent-&gt;GetLineChildList();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* child = *it;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; child-&gt;SetValue(parent-&gt;GetValue());</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; child-&gt;SetSolved();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; FillAllConnectedChildren(child);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<a class="code" href="class_connection_line.html">ConnectionLine</a>* ControlElementSolver::SolveNextElement(<a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">auto</span> parentList = currentLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// Solve the unsolved parent.</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(!element-&gt;IsSolved()) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span>(!element-&gt;Solve(currentLine-&gt;GetValue(), m_timeStep)) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; element-&gt;SetSolved();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Get the output node (must have one or will result NULL).</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <a class="code" href="class_node.html">Node</a>* outNode = NULL;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keyword">auto</span> nodeList = element-&gt;GetNodeList();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = nodeList.begin(), itNEnd = nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() == Node::NODE_OUT) outNode = node;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">if</span>(!outNode) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// Set connection line value associated with the output node.</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keyword">auto</span> childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = childList.begin(), itCEnd = childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span>(!cLine-&gt;IsSolved()) { <span class="comment">// Only check unsolved lines</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="comment">// Check if the connection line have the output node on the list</span></div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keyword">auto</span> lineNodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(childNode == outNode) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Check if the line connect two elements, otherwise return NULL</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetType() != ConnectionLine::ELEMENT_ELEMENT) <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="comment">// Set the connection line value and return it.</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; cLine-&gt;SetValue(element-&gt;GetOutput());</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; cLine-&gt;SetSolved();</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; FillAllConnectedChildren(cLine);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">return</span> cLine;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00511">Element.h:511</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="_multiplier_8h_html"><div class="ttname"><a href="_multiplier_8h.html">Multiplier.h</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a5f09dd8e5c016a90c69a8e38ef302c8a"><div class="ttname"><a href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction::CalculateSpaceState</a></div><div class="ttdeci">virtual void CalculateSpaceState(int maxIteration=100, double error=1e-3)</div><div class="ttdoc">Convert the transfer function to space state on controllable canonical form (CCF). </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00268">TransferFunction.cpp:268</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="_gain_8h_html"><div class="ttname"><a href="_gain_8h.html">Gain.h</a></div></div>
+<div class="ttc" id="_sum_8h_html"><div class="ttname"><a href="_sum_8h.html">Sum.h</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="_constant_8h_html"><div class="ttname"><a href="_constant_8h.html">Constant.h</a></div></div>
+<div class="ttc" id="_i_o_control_8h_html"><div class="ttname"><a href="_i_o_control_8h.html">IOControl.h</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="_exponential_8h_html"><div class="ttname"><a href="_exponential_8h.html">Exponential.h</a></div></div>
+<div class="ttc" id="_control_element_solver_8h_html"><div class="ttname"><a href="_control_element_solver_8h.html">ControlElementSolver.h</a></div></div>
+<div class="ttc" id="_rate_limiter_8h_html"><div class="ttname"><a href="_rate_limiter_8h.html">RateLimiter.h</a></div></div>
+<div class="ttc" id="_limiter_8h_html"><div class="ttname"><a href="_limiter_8h.html">Limiter.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
+<div class="ttc" id="_transfer_function_8h_html"><div class="ttname"><a href="_transfer_function_8h.html">TransferFunction.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_control_element_solver_8h.html b/docs/doxygen/html/_control_element_solver_8h.html
new file mode 100644
index 0000000..6b14201
--- /dev/null
+++ b/docs/doxygen/html/_control_element_solver_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ControlElementSolver.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_control_element_solver_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ControlElementSolver.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wx/window.h&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+</div>
+<p><a href="_control_element_solver_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_element_solver.html">ControlElementSolver</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Solves in the time the control system. Can solve the control system directly from a <a class="el" href="class_control_editor.html">ControlEditor</a> or from a ControlEditorElement. <a href="class_control_element_solver.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_solver_8h.html">ControlElementSolver.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_control_element_solver_8h_source.html b/docs/doxygen/html/_control_element_solver_8h_source.html
index 006dfa1..1f88c74 100644
--- a/docs/doxygen/html/_control_element_solver_8h_source.html
+++ b/docs/doxygen/html/_control_element_solver_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,25 +88,25 @@ $(document).ready(function(){initNavTree('_control_element_solver_8h_source.html
<div class="title">ControlElementSolver.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENTSOLVER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONTROLELEMENTSOLVER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/window.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control.html">IOControl</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_control_element_solver.html"> 20</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-3,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">double</span> integrationError = 1e-3,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">bool</span> startAllZero = <span class="keyword">true</span>,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> input = 0.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-3,</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> integrationError = 1e-3,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> startAllZero = <span class="keyword">true</span>,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> input = 0.0,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; wxWindow* parent = NULL);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_element_solver.html">ControlElementSolver</a>() {}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> InitializeValues(<span class="keywordtype">double</span> input, <span class="keywordtype">bool</span> startAllZero);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SolveNextStep(<span class="keywordtype">double</span> input);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetSolutions() { <span class="keywordflow">return</span> m_solutions; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetLastSolution() { <span class="keywordflow">return</span> m_solutions[m_solutions.size() - 1]; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsOK()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_isOK; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> Initialize(wxWindow* parent, <span class="keywordtype">double</span> timeStep, <span class="keywordtype">double</span> integrationError, <span class="keywordtype">bool</span> startAllZero, <span class="keywordtype">double</span> input);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> FillAllConnectedChildren(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* SolveNextElement(<a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* m_ctrlContainer = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> m_timeStep;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> m_integrationError;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::vector&lt;double&gt; m_solutions;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">bool</span> m_isOK = <span class="keyword">false</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_inputControl = NULL;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_outputControl = NULL;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENTSOLVER_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
+<a href="_control_element_solver_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONTROLELEMENTSOLVER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONTROLELEMENTSOLVER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/window.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_constant.html">Constant</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control.html">IOControl</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_control_element_solver.html"> 45</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>() {}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-3,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">double</span> integrationError = 1e-3,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">bool</span> startAllZero = <span class="keyword">true</span>,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> input = 0.0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(<a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-3,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> integrationError = 1e-3,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> startAllZero = <span class="keyword">true</span>,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> input = 0.0,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wxWindow* parent = NULL);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_element_solver.html">ControlElementSolver</a>() {}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> InitializeValues(<span class="keywordtype">double</span> input, <span class="keywordtype">bool</span> startAllZero);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SolveNextStep(<span class="keywordtype">double</span> input);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetSolutions() { <span class="keywordflow">return</span> m_solutions; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetLastSolution() { <span class="keywordflow">return</span> m_solutions[m_solutions.size() - 1]; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> IsOK()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_isOK; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> Initialize(wxWindow* parent, <span class="keywordtype">double</span> timeStep, <span class="keywordtype">double</span> integrationError, <span class="keywordtype">bool</span> startAllZero, <span class="keywordtype">double</span> input);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">void</span> FillAllConnectedChildren(<a class="code" href="class_connection_line.html">ConnectionLine</a>* parent);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* SolveNextElement(<a class="code" href="class_connection_line.html">ConnectionLine</a>* currentLine);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* m_ctrlContainer = NULL;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> m_timeStep;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">double</span> m_integrationError;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::vector&lt;double&gt; m_solutions;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">bool</span> m_isOK = <span class="keyword">false</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_inputControl = NULL;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_outputControl = NULL;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif // CONTROLELEMENTSOLVER_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ControlElementSolver.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_element_solver_8h.html">ControlElementSolver.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_control_system_test_8cpp_source.html b/docs/doxygen/html/_control_system_test_8cpp_source.html
index e8244c7..c0230ae 100644
--- a/docs/doxygen/html/_control_system_test_8cpp_source.html
+++ b/docs/doxygen/html/_control_system_test_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_control_system_test_8cpp_source.html'
<div class="title">ControlSystemTest.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ControlSystemTest.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;ControlSystemTest::ControlSystemTest(<a class="code" href="class_control_editor.html">ControlEditor</a>* parent,</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; <span class="keywordtype">int</span>* inputType,</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keywordtype">double</span>* startTime,</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keywordtype">double</span>* slope,</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keywordtype">double</span>* timeStep,</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keywordtype">double</span>* simTime)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; : <a class="code" href="class_control_system_test_base.html">ControlSystemTestBase</a>(parent)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_inputType = inputType;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_startTime = startTime;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_slope = slope;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_timeStep = timeStep;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_simTime = simTime;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_choiceInput-&gt;SetSelection(*m_inputType);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_textCtrlStartTime-&gt;SetValue(wxString::FromDouble(*m_startTime));</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_textCtrlSlope-&gt;SetValue(wxString::FromDouble(*m_slope));</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_textCtrlTimeStep-&gt;SetValue(wxString::FromDouble(*m_timeStep));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_textCtrlSimTime-&gt;SetValue(wxString::FromDouble(*m_simTime));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;ControlSystemTest::~ControlSystemTest() {}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keywordtype">void</span> ControlSystemTest::OnRunButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">int</span> inputType;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> startTime, slope, timeStep, simTime;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; inputType = m_choiceInput-&gt;GetSelection();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlStartTime-&gt;GetValue().ToDouble(&amp;startTime)) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Start time\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlSlope-&gt;GetValue().ToDouble(&amp;slope)) {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Slope\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlTimeStep-&gt;GetValue().ToDouble(&amp;timeStep)) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time step\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlSimTime-&gt;GetValue().ToDouble(&amp;simTime)) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Simulation time\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; *m_inputType = inputType;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; *m_startTime = startTime;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; *m_slope = slope;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; *m_timeStep = timeStep;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; *m_simTime = simTime;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="ttc" id="class_control_system_test_base_html"><div class="ttname"><a href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00095">ControlEditorBase.h:95</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_system_test_8h.html">ControlSystemTest.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;ControlSystemTest::ControlSystemTest(<a class="code" href="class_control_editor.html">ControlEditor</a>* parent,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span>* inputType,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span>* startTime,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">double</span>* slope,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span>* timeStep,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">double</span>* simTime)</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; : <a class="code" href="class_control_system_test_base.html">ControlSystemTestBase</a>(parent)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_inputType = inputType;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_startTime = startTime;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_slope = slope;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_timeStep = timeStep;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_simTime = simTime;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_choiceInput-&gt;SetSelection(*m_inputType);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_textCtrlStartTime-&gt;SetValue(wxString::FromDouble(*m_startTime));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_textCtrlSlope-&gt;SetValue(wxString::FromDouble(*m_slope));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_textCtrlTimeStep-&gt;SetValue(wxString::FromDouble(*m_timeStep));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_textCtrlSimTime-&gt;SetValue(wxString::FromDouble(*m_simTime));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;ControlSystemTest::~ControlSystemTest() {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">void</span> ControlSystemTest::OnRunButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">int</span> inputType;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> startTime, slope, timeStep, simTime;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; inputType = m_choiceInput-&gt;GetSelection();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlStartTime-&gt;GetValue().ToDouble(&amp;startTime)) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Start time\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlSlope-&gt;GetValue().ToDouble(&amp;slope)) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Slope\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlTimeStep-&gt;GetValue().ToDouble(&amp;timeStep)) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time step\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(!m_textCtrlSimTime-&gt;GetValue().ToDouble(&amp;simTime)) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Simulation time\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; *m_inputType = inputType;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; *m_startTime = startTime;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; *m_slope = slope;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; *m_timeStep = timeStep;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; *m_simTime = simTime;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="ttc" id="_control_system_test_8h_html"><div class="ttname"><a href="_control_system_test_8h.html">ControlSystemTest.h</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="class_control_system_test_base_html"><div class="ttname"><a href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00095">ControlEditorBase.h:95</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_control_system_test_8h.html b/docs/doxygen/html/_control_system_test_8h.html
new file mode 100644
index 0000000..b414db8
--- /dev/null
+++ b/docs/doxygen/html/_control_system_test_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ControlSystemTest.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_control_system_test_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ControlSystemTest.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ControlEditorBase.h&quot;</code><br />
+</div>
+<p><a href="_control_system_test_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_control_system_test.html">ControlSystemTest</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit properties to test the control system created. <a href="class_control_system_test.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_system_test_8h.html">ControlSystemTest.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_control_system_test_8h_source.html b/docs/doxygen/html/_control_system_test_8h_source.html
index 999877f..cf82a39 100644
--- a/docs/doxygen/html/_control_system_test_8h_source.html
+++ b/docs/doxygen/html/_control_system_test_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_control_system_test_8h_source.html','
<div class="title">ControlSystemTest.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef CONTROLSYSTEMTEST_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define CONTROLSYSTEMTEST_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlEditorBase.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_control_system_test.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_system_test.html">ControlSystemTest</a> : <span class="keyword">public</span> <a class="code" href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_control_system_test.html">ControlSystemTest</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* parent, <span class="keywordtype">int</span>* inputType, <span class="keywordtype">double</span>* startTime, <span class="keywordtype">double</span>* slope, <span class="keywordtype">double</span>* timeStep, <span class="keywordtype">double</span>* simTime);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_system_test.html">ControlSystemTest</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRunButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">int</span>* m_inputType = NULL;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span>* m_startTime = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">double</span>* m_slope = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span>* m_timeStep = NULL;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span>* m_simTime = NULL;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;};</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif // CONTROLSYSTEMTEST_H</span></div><div class="ttc" id="class_control_system_test_base_html"><div class="ttname"><a href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00095">ControlEditorBase.h:95</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_control_system_test_html"><div class="ttname"><a href="class_control_system_test.html">ControlSystemTest</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_system_test_8h_source.html#l00008">ControlSystemTest.h:8</a></div></div>
+<a href="_control_system_test_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef CONTROLSYSTEMTEST_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define CONTROLSYSTEMTEST_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ControlEditorBase.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_control_system_test.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_control_system_test.html">ControlSystemTest</a> : <span class="keyword">public</span> <a class="code" href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_control_system_test.html">ControlSystemTest</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* parent,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">int</span>* inputType,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span>* startTime,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span>* slope,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span>* timeStep,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span>* simTime);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_control_system_test.html">ControlSystemTest</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRunButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span>* m_inputType = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span>* m_startTime = NULL;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span>* m_slope = NULL;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span>* m_timeStep = NULL;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span>* m_simTime = NULL;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;};</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif // CONTROLSYSTEMTEST_H</span></div><div class="ttc" id="class_control_system_test_base_html"><div class="ttname"><a href="class_control_system_test_base.html">ControlSystemTestBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_base_8h_source.html#l00095">ControlEditorBase.h:95</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_control_system_test_html"><div class="ttname"><a href="class_control_system_test.html">ControlSystemTest</a></div><div class="ttdoc">Form to edit properties to test the control system created. </div><div class="ttdef"><b>Definition:</b> <a href="_control_system_test_8h_source.html#l00032">ControlSystemTest.h:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ControlSystemTest.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_control_system_test_8h.html">ControlSystemTest.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_data_report_8cpp_source.html b/docs/doxygen/html/_data_report_8cpp_source.html
index 66ec420..56d6917 100644
--- a/docs/doxygen/html/_data_report_8cpp_source.html
+++ b/docs/doxygen/html/_data_report_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,25 +88,27 @@ $(document).ready(function(){initNavTree('_data_report_8cpp_source.html','');});
<div class="title">DataReport.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;DataReport.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Workspace.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;DataReport::DataReport(wxWindow* parent, <a class="code" href="class_workspace.html">Workspace</a>* workspace) : <a class="code" href="class_data_report_base.html">DataReportBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_workspace = workspace;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_headerColour = wxColour(150, 150, 150);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_offlineColour = wxColour(100, 100, 100);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_oddRowColour = wxColour(220, 220, 220);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_evenRowColour = wxColour(255, 255, 255);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; CreateGrids();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; SetHeaders();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; FillValues();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; SetRowsColours(m_gridPowerFlow);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; SetRowsColours(m_gridPFBuses);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; SetRowsColours(m_gridPFBranches);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; SetRowsColours(m_gridFault, 2);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; SetRowsColours(m_gridFaultBuses, 2);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetRowsColours(m_gridFaultBranches, 2);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; SetRowsColours(m_gridFaultGenerators, 2);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Layout();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;DataReport::~DataReport() {}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> DataReport::CreateGrids()</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; wxFont headerFont = m_gridPowerFlow-&gt;GetLabelFont();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; headerFont.SetWeight(wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> eCalc;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; eCalc.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">auto</span> lineList = eCalc.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">auto</span> transformerList = eCalc.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">auto</span> busList = eCalc.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">auto</span> generatorList = eCalc.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Power Flow</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_gridPowerFlow-&gt;AppendCols(7);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_gridPowerFlow-&gt;AppendRows();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_gridPowerFlow-&gt;HideColLabels();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_gridPowerFlow-&gt;HideRowLabels();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 7; ++i) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_gridPowerFlow-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_gridPowerFlow-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_gridPowerFlow-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_gridPowerFlow-&gt;AppendRows((lineList.size() + transformerList.size()) * 2);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_gridPowerFlow-&gt;AutoSize();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Power Flow buses</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_gridPFBuses-&gt;AppendCols(6);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_gridPFBuses-&gt;AppendRows();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_gridPFBuses-&gt;HideColLabels();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_gridPFBuses-&gt;HideRowLabels();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 6; ++i) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_gridPFBuses-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_gridPFBuses-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_gridPFBuses-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_gridPFBuses-&gt;AppendRows(busList.size());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_gridPFBuses-&gt;AutoSize();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_gridPFBranches-&gt;AppendCols(10);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_gridPFBranches-&gt;AppendRows(1);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_gridPFBranches-&gt;HideColLabels();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_gridPFBranches-&gt;HideRowLabels();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 10; ++i) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_gridPFBranches-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_gridPFBranches-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_gridPFBranches-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_gridPFBranches-&gt;AppendRows(lineList.size() + transformerList.size());</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_gridPFBranches-&gt;AutoSize();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_gridFault-&gt;AppendCols(7);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_gridFault-&gt;AppendRows(2);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_gridFault-&gt;HideColLabels();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_gridFault-&gt;HideRowLabels();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_gridFault-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_gridFault-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_gridFault-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_gridFault-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_gridFault-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_gridFault-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_gridFault-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(bus-&gt;GetElectricalData().hasFault) m_gridFault-&gt;AppendRows();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_gridFault-&gt;AutoSize();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_gridFaultBuses-&gt;AppendCols(7);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_gridFaultBuses-&gt;AppendRows(2);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_gridFaultBuses-&gt;HideColLabels();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_gridFaultBuses-&gt;HideRowLabels();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_gridFaultBuses-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_gridFaultBuses-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_gridFaultBuses-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_gridFaultBuses-&gt;AppendRows(busList.size());</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_gridFaultBuses-&gt;AutoSize();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_gridFaultBranches-&gt;AppendCols(11);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_gridFaultBranches-&gt;AppendRows(2);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_gridFaultBranches-&gt;HideColLabels();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_gridFaultBranches-&gt;HideRowLabels();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_gridFaultBranches-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_gridFaultBranches-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_gridFaultBranches-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 1, 2, 1);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 2, 2, 1);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 3, 2, 1);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 10, 2, 1);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 4, 1, 2);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 6, 1, 2);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 8, 1, 2);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_gridFaultBranches-&gt;AppendRows((lineList.size() + transformerList.size()) * 2);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_gridFaultBranches-&gt;AutoSize();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_gridFaultGenerators-&gt;AppendCols(7);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_gridFaultGenerators-&gt;AppendRows(2);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_gridFaultGenerators-&gt;HideColLabels();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_gridFaultGenerators-&gt;HideRowLabels();</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_gridFaultGenerators-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_gridFaultGenerators-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_gridFaultGenerators-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_gridFaultGenerators-&gt;AppendRows(generatorList.size());</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_gridFaultGenerators-&gt;AutoSize();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;<span class="keywordtype">void</span> DataReport::SetHeaders()</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Headers choices fill</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; wxString omega = <span class="keyword">static_cast&lt;</span>wxString<span class="keyword">&gt;</span>(L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (p.u.)&quot;</span>));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (V)&quot;</span>));</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (kV)&quot;</span>));</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (p.u.)&quot;</span>));</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (W)&quot;</span>));</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (kW)&quot;</span>));</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (MW)&quot;</span>));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (p.u.)&quot;</span>));</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (VAr)&quot;</span>));</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (kVAr)&quot;</span>));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (MVAr)&quot;</span>));</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_resistanceChoices.Add(_(<span class="stringliteral">&quot;R (p.u.)&quot;</span>));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_resistanceChoices.Add(_(<span class="stringliteral">&quot;R (&quot;</span>) + omega + wxT(<span class="stringliteral">&quot;)&quot;</span>));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_indReactanceChoices.Add(_(<span class="stringliteral">&quot;XL (p.u.)&quot;</span>));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; m_indReactanceChoices.Add(_(<span class="stringliteral">&quot;XL (&quot;</span>) + omega + wxT(<span class="stringliteral">&quot;)&quot;</span>));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; m_capSusceptanceChoices.Add(_(<span class="stringliteral">&quot;B (p.u.)&quot;</span>));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_capSusceptanceChoices.Add(_(<span class="stringliteral">&quot;B (S)&quot;</span>));</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (p.u.)&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (A)&quot;</span>));</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (kA)&quot;</span>));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// Power flow</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_gridPowerFlow-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_activePowerChoices));</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 4, m_activePowerChoices[3]);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_gridPowerFlow-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_reactivePowerChoices));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 5, m_reactivePowerChoices[3]);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 6, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// Power flow buses</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 2, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 2, m_voltageChoices[0]);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_activePowerChoices));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 4, m_activePowerChoices[3]);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_reactivePowerChoices));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 5, m_reactivePowerChoices[3]);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_resistanceChoices));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 4, m_resistanceChoices[0]);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_indReactanceChoices));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 5, m_indReactanceChoices[0]);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 6, <span class="keyword">new</span> wxGridCellChoiceEditor(m_capSusceptanceChoices));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 6, m_capSusceptanceChoices[0]);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 7, _(<span class="stringliteral">&quot;TAP&quot;</span>));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 8, _(<span class="stringliteral">&quot;Phase Shift&quot;</span>));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 9, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_gridFault-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Fault bus name&quot;</span>));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_gridFault-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_gridFault-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_gridFault-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_gridFault-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_gridFault-&gt;SetCellValue(1, 1, m_currentChoices[1]);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_gridFault-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_gridFault-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_gridFault-&gt;SetCellValue(1, 3, m_currentChoices[1]);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_gridFault-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; m_gridFault-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_gridFault-&gt;SetCellValue(1, 5, m_currentChoices[1]);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_gridFault-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 1, m_voltageChoices[0]);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 3, m_voltageChoices[0]);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 5, m_voltageChoices[0]);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 4, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 6, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 8, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 10, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 4, m_currentChoices[1]);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 5, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 6, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 6, m_currentChoices[1]);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 7, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 8, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 8, m_currentChoices[1]);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 9, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 1, m_currentChoices[1]);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 3, m_currentChoices[1]);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 5, m_currentChoices[1]);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;}</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;<span class="keywordtype">void</span> DataReport::FillValues(GridSelection gridToFill)</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;{</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_changingValues = <span class="keyword">true</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> eCalc;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; eCalc.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">double</span> basePower = m_workspace-&gt;GetProperties()-&gt;GetSimulationPropertiesData().basePower;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">switch</span>(m_workspace-&gt;GetProperties()-&gt;GetSimulationPropertiesData().basePowerUnit) {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; basePower *= 1e3;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; basePower *= 1e6;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; }</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordtype">int</span> rowNumber = 1;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keyword">auto</span> lineList = eCalc.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">auto</span> transformerList = eCalc.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">auto</span> busList = eCalc.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">auto</span> generatorList = eCalc.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="comment">// Power Flow</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PF) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordtype">double</span> kActivePower = 1.0;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[1])</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; kActivePower = basePower;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[2])</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; kActivePower = basePower / 1e3;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[3])</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; kActivePower = basePower / 1e6;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordtype">double</span> kReactivePower = 1.0;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[1])</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; kReactivePower = basePower;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[2])</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; kReactivePower = basePower / 1e3;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[3])</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; kReactivePower = basePower / 1e6;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; wxColour textColour = m_gridPowerFlow-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; m_gridPowerFlow-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[0]) * kActivePower));</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[0]) * kReactivePower));</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; rowNumber++;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[1]) * kActivePower));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[1]) * kReactivePower));</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; rowNumber++;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; wxColour textColour = m_gridPowerFlow-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; m_gridPowerFlow-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[0]) * kActivePower));</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[0]) * kReactivePower));</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; rowNumber++;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[1]) * kActivePower));</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[1]) * kReactivePower));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; rowNumber++;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; m_gridPowerFlow-&gt;AutoSize();</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="comment">// Power Flow buses</span></div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PFBUSES) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordtype">double</span> kActivePower = 1.0;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[1])</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; kActivePower = basePower;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[2])</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; kActivePower = basePower / 1e3;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[3])</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; kActivePower = basePower / 1e6;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordtype">double</span> kReactivePower = 1.0;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[1])</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; kReactivePower = basePower;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[2])</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; kReactivePower = basePower / 1e3;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[3])</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; kReactivePower = basePower / 1e6;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; rowNumber = 1;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordtype">double</span> vb = std::abs(data.nominalVoltage);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordtype">double</span> kVoltage = 1.0;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 2) == m_voltageChoices[1])</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 2) == m_voltageChoices[2])</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; wxString busTypeString = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">switch</span>(data.busType) {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">case</span> BUS_SLACK: {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; busTypeString = _(<span class="stringliteral">&quot;Slack&quot;</span>);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">case</span> BUS_PV: {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; busTypeString = _(<span class="stringliteral">&quot;PV&quot;</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">case</span> BUS_PQ: {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; busTypeString = _(<span class="stringliteral">&quot;PQ&quot;</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 1, busTypeString);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 2, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.voltage) * kVoltage));</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 3, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.voltage))));</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 4, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.power) * kActivePower));</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 5, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.power) * kReactivePower));</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; rowNumber++;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; m_gridPFBuses-&gt;AutoSize();</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PFBRANCHES) {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; rowNumber = 1;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">double</span> vb = data.nominalVoltage;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordtype">double</span> zb = (vb * vb) / basePower;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; wxColour textColour = m_gridPFBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; }</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 10; ++j) {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; m_gridPFBranches-&gt;SetCellTextColour(rowNumber, j, textColour);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">double</span> k = 1.0;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 4) == m_resistanceChoices[1]) k = zb;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 4, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.resistance * k));</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; k = 1.0;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 5) == m_indReactanceChoices[1]) k = zb;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 5, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.indReactance * k));</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; k = 1.0;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 6) == m_capSusceptanceChoices[1]) k = zb;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 6, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.capSusceptance / k));</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 7, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 8, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; rowNumber++;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; }</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordtype">double</span> vb = 0.0;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span>(data.baseVoltage == 0) {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; vb = data.primaryNominalVoltage;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>(data.primaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; vb = data.secondaryNominalVoltage;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">if</span>(data.secondaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordtype">double</span> zb = (vb * vb) / basePower;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; wxColour textColour = m_gridPFBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 10; ++j) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; m_gridPFBranches-&gt;SetCellTextColour(rowNumber, j, textColour);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">double</span> k = 1.0;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 4) == m_resistanceChoices[1]) k = zb;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.resistance * k));</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; k = 1.0;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 5) == m_indReactanceChoices[1]) k = zb;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.indReactance * k));</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 6, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.turnsRatio));</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.phaseShift));</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; rowNumber++;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; m_gridPFBranches-&gt;AutoSize();</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULT) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordtype">double</span> vb = bus-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 1) == m_currentChoices[1]) {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 1) == m_currentChoices[2]) {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0]) * kCurrent));</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 2,</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0]))));</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 3) == m_currentChoices[1]) {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 3) == m_currentChoices[2]) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; }</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1]) * kCurrent));</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1]))));</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 5) == m_currentChoices[1]) {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 5) == m_currentChoices[2]) {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; }</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[2]) * kCurrent));</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[2]))));</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; rowNumber++;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; m_gridFault-&gt;AutoSize();</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; }</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTBUSES) {</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordtype">double</span> vb = bus-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordtype">double</span> kVoltage = 1.0;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 1) == m_voltageChoices[1]) {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 1) == m_voltageChoices[2]) {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; }</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[0]) * kVoltage));</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 2,</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[0]))));</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; kVoltage = 1.0;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 3) == m_voltageChoices[1]) {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 3) == m_voltageChoices[2]) {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; }</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[1]) * kVoltage));</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[1]))));</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; kVoltage = 1.0;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 5) == m_voltageChoices[1]) {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 5) == m_voltageChoices[2]) {</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[2]) * kVoltage));</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[2]))));</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; rowNumber++;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; m_gridFaultBuses-&gt;AutoSize();</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; }</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTBRANCHES) {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordtype">double</span> vb = line-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; wxColour textColour = m_gridFaultBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; }</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; m_gridFaultBranches-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][0]) * kCurrent));</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][0]))));</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][1]) * kCurrent));</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 7,</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][1]))));</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 8,</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][2]) * kCurrent));</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 9,</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][2]))));</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; rowNumber++;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][0]) * kCurrent));</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][0]))));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][1]) * kCurrent));</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 7,</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][1]))));</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 8,</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][2]) * kCurrent));</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 9,</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][2]))));</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; rowNumber++;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordtype">double</span> vb = transformer-&gt;GetValueFromUnit(data.primaryNominalVoltage, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordtype">double</span> ibp = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; vb = transformer-&gt;GetValueFromUnit(data.secondaryNominalVoltage, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordtype">double</span> ibs = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; wxColour textColour = m_gridFaultBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; m_gridFaultBranches-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][0]) * kCurrent));</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][0]))));</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; }</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; rowNumber, 6, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][1]) * kCurrent));</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][1]))));</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; }</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][2]) * kCurrent));</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; rowNumber, 9, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][2]))));</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; rowNumber++;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][0]) * kCurrent));</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][0]))));</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; rowNumber, 6, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][1]) * kCurrent));</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][1]))));</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][2]) * kCurrent));</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; rowNumber, 9, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][2]))));</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; rowNumber++;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; m_gridFaultBranches-&gt;AutoSize();</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTGENERATORS) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = generatorList.begin(), itEnd = generatorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordtype">double</span> vb = generator-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 1) == m_currentChoices[1])</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 1) == m_currentChoices[2])</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0]) * kCurrent));</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; rowNumber, 2, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0]))));</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 3) == m_currentChoices[1])</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 3) == m_currentChoices[2])</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1]) * kCurrent));</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; rowNumber, 4, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1]))));</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 5) == m_currentChoices[1])</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 5) == m_currentChoices[2])</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[2]) * kCurrent));</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; rowNumber, 6, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[2]))));</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; rowNumber++;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; }</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; m_gridFaultGenerators-&gt;AutoSize();</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; m_changingValues = <span class="keyword">false</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160;}</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;<span class="keywordtype">void</span> DataReport::SetRowsColours(wxGrid* grid, <span class="keywordtype">int</span> rowStart)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;{</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = rowStart; i &lt; grid-&gt;GetNumberRows(); ++i) {</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; wxGridCellAttr* attr = grid-&gt;GetOrCreateCellAttr(i, 0);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">if</span>((i - rowStart) % 2 == 0)</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; attr-&gt;SetBackgroundColour(m_evenRowColour);</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; attr-&gt;SetBackgroundColour(m_oddRowColour);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; grid-&gt;SetRowAttr(i, attr);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; }</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;}</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;<span class="keywordtype">void</span> DataReport::OnPFBusGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;{</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PFBUSES);</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaulrGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;{</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULT);</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;}</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultBranchesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;{</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTBRANCHES);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160;}</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultBusesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;{</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTBUSES);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;}</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultGeneratorsGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;{</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTGENERATORS);</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;}</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;<span class="keywordtype">void</span> DataReport::OnPFBranchesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;{</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PFBRANCHES);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;}</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="keywordtype">void</span> DataReport::OnPowerFlowGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;{</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PF);</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160;}</div><div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00168">ElectricCalculation.h:168</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00128">ElectricCalculation.h:128</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00158">ElectricCalculation.h:158</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_data_report_8h.html">DataReport.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_workspace_8h.html">Workspace.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;DataReport::DataReport(wxWindow* parent, <a class="code" href="class_workspace.html">Workspace</a>* workspace) : <a class="code" href="class_data_report_base.html">DataReportBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_workspace = workspace;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_headerColour = wxColour(150, 150, 150);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_offlineColour = wxColour(100, 100, 100);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_oddRowColour = wxColour(220, 220, 220);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_evenRowColour = wxColour(255, 255, 255);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; CreateGrids();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; SetHeaders();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; FillValues();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; SetRowsColours(m_gridPowerFlow);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; SetRowsColours(m_gridPFBuses);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; SetRowsColours(m_gridPFBranches);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; SetRowsColours(m_gridFault, 2);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; SetRowsColours(m_gridFaultBuses, 2);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; SetRowsColours(m_gridFaultBranches, 2);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; SetRowsColours(m_gridFaultGenerators, 2);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; Layout();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;DataReport::~DataReport() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">void</span> DataReport::CreateGrids()</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxFont headerFont = m_gridPowerFlow-&gt;GetLabelFont();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; headerFont.SetWeight(wxFONTWEIGHT_BOLD);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> eCalc;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; eCalc.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">auto</span> lineList = eCalc.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">auto</span> transformerList = eCalc.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">auto</span> busList = eCalc.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">auto</span> generatorList = eCalc.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Power Flow</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_gridPowerFlow-&gt;AppendCols(7);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_gridPowerFlow-&gt;AppendRows();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_gridPowerFlow-&gt;HideColLabels();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_gridPowerFlow-&gt;HideRowLabels();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 7; ++i) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_gridPowerFlow-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_gridPowerFlow-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_gridPowerFlow-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_gridPowerFlow-&gt;AppendRows((lineList.size() + transformerList.size()) * 2);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_gridPowerFlow-&gt;AutoSize();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Power Flow buses</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_gridPFBuses-&gt;AppendCols(6);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_gridPFBuses-&gt;AppendRows();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_gridPFBuses-&gt;HideColLabels();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_gridPFBuses-&gt;HideRowLabels();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 6; ++i) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_gridPFBuses-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_gridPFBuses-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_gridPFBuses-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_gridPFBuses-&gt;AppendRows(busList.size());</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_gridPFBuses-&gt;AutoSize();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_gridPFBranches-&gt;AppendCols(10);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_gridPFBranches-&gt;AppendRows(1);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_gridPFBranches-&gt;HideColLabels();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_gridPFBranches-&gt;HideRowLabels();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 10; ++i) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_gridPFBranches-&gt;SetCellBackgroundColour(0, i, m_headerColour);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_gridPFBranches-&gt;SetCellFont(0, i, headerFont);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_gridPFBranches-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_gridPFBranches-&gt;AppendRows(lineList.size() + transformerList.size());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_gridPFBranches-&gt;AutoSize();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_gridFault-&gt;AppendCols(7);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_gridFault-&gt;AppendRows(2);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_gridFault-&gt;HideColLabels();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_gridFault-&gt;HideRowLabels();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_gridFault-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_gridFault-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_gridFault-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_gridFault-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_gridFault-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_gridFault-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_gridFault-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(bus-&gt;GetElectricalData().hasFault) m_gridFault-&gt;AppendRows();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_gridFault-&gt;AutoSize();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_gridFaultBuses-&gt;AppendCols(7);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_gridFaultBuses-&gt;AppendRows(2);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_gridFaultBuses-&gt;HideColLabels();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_gridFaultBuses-&gt;HideRowLabels();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_gridFaultBuses-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_gridFaultBuses-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_gridFaultBuses-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_gridFaultBuses-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_gridFaultBuses-&gt;AppendRows(busList.size());</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_gridFaultBuses-&gt;AutoSize();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_gridFaultBranches-&gt;AppendCols(11);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_gridFaultBranches-&gt;AppendRows(2);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_gridFaultBranches-&gt;HideColLabels();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_gridFaultBranches-&gt;HideRowLabels();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_gridFaultBranches-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_gridFaultBranches-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_gridFaultBranches-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 1, 2, 1);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 2, 2, 1);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 3, 2, 1);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 10, 2, 1);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 4, 1, 2);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 6, 1, 2);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_gridFaultBranches-&gt;SetCellSize(0, 8, 1, 2);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_gridFaultBranches-&gt;AppendRows((lineList.size() + transformerList.size()) * 2);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_gridFaultBranches-&gt;AutoSize();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// Header</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_gridFaultGenerators-&gt;AppendCols(7);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_gridFaultGenerators-&gt;AppendRows(2);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_gridFaultGenerators-&gt;HideColLabels();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_gridFaultGenerators-&gt;HideRowLabels();</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_gridFaultGenerators-&gt;SetCellBackgroundColour(i, j, m_headerColour);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_gridFaultGenerators-&gt;SetCellFont(i, j, headerFont);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_gridFaultGenerators-&gt;SetDefaultCellAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 0, 2, 1);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 1, 1, 2);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 3, 1, 2);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_gridFaultGenerators-&gt;SetCellSize(0, 5, 1, 2);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="comment">// Values</span></div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_gridFaultGenerators-&gt;AppendRows(generatorList.size());</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_gridFaultGenerators-&gt;AutoSize();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;<span class="keywordtype">void</span> DataReport::SetHeaders()</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// Headers choices fill</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; wxString omega = <span class="keyword">static_cast&lt;</span>wxString<span class="keyword">&gt;</span>(L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (p.u.)&quot;</span>));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (V)&quot;</span>));</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_voltageChoices.Add(_(<span class="stringliteral">&quot;Voltage (kV)&quot;</span>));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (p.u.)&quot;</span>));</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (W)&quot;</span>));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (kW)&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_activePowerChoices.Add(_(<span class="stringliteral">&quot;Active Power (MW)&quot;</span>));</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (p.u.)&quot;</span>));</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (VAr)&quot;</span>));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (kVAr)&quot;</span>));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; m_reactivePowerChoices.Add(_(<span class="stringliteral">&quot;Reactive Power (MVAr)&quot;</span>));</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; m_resistanceChoices.Add(_(<span class="stringliteral">&quot;R (p.u.)&quot;</span>));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_resistanceChoices.Add(_(<span class="stringliteral">&quot;R (&quot;</span>) + omega + wxT(<span class="stringliteral">&quot;)&quot;</span>));</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_indReactanceChoices.Add(_(<span class="stringliteral">&quot;XL (p.u.)&quot;</span>));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_indReactanceChoices.Add(_(<span class="stringliteral">&quot;XL (&quot;</span>) + omega + wxT(<span class="stringliteral">&quot;)&quot;</span>));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_capSusceptanceChoices.Add(_(<span class="stringliteral">&quot;B (p.u.)&quot;</span>));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_capSusceptanceChoices.Add(_(<span class="stringliteral">&quot;B (S)&quot;</span>));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (p.u.)&quot;</span>));</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (A)&quot;</span>));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_currentChoices.Add(_(<span class="stringliteral">&quot;Current (kA)&quot;</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// Power flow</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_gridPowerFlow-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_activePowerChoices));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 4, m_activePowerChoices[3]);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_gridPowerFlow-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_reactivePowerChoices));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 5, m_reactivePowerChoices[3]);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_gridPowerFlow-&gt;SetCellValue(0, 6, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// Power flow buses</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 2, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 2, m_voltageChoices[0]);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_activePowerChoices));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 4, m_activePowerChoices[3]);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_gridPFBuses-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_reactivePowerChoices));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_gridPFBuses-&gt;SetCellValue(0, 5, m_reactivePowerChoices[3]);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_resistanceChoices));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 4, m_resistanceChoices[0]);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_indReactanceChoices));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 5, m_indReactanceChoices[0]);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; m_gridPFBranches-&gt;SetCellEditor(0, 6, <span class="keyword">new</span> wxGridCellChoiceEditor(m_capSusceptanceChoices));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 6, m_capSusceptanceChoices[0]);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 7, _(<span class="stringliteral">&quot;TAP&quot;</span>));</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 8, _(<span class="stringliteral">&quot;Phase Shift&quot;</span>));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_gridPFBranches-&gt;SetCellValue(0, 9, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_gridFault-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Fault bus name&quot;</span>));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_gridFault-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; m_gridFault-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_gridFault-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_gridFault-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_gridFault-&gt;SetCellValue(1, 1, m_currentChoices[1]);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_gridFault-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; m_gridFault-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_gridFault-&gt;SetCellValue(1, 3, m_currentChoices[1]);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; m_gridFault-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_gridFault-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; m_gridFault-&gt;SetCellValue(1, 5, m_currentChoices[1]);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; m_gridFault-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_gridFaultBuses-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 1, m_voltageChoices[0]);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 3, m_voltageChoices[0]);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; m_gridFaultBuses-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_voltageChoices));</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 5, m_voltageChoices[0]);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; m_gridFaultBuses-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 2, _(<span class="stringliteral">&quot;From&quot;</span>));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;To&quot;</span>));</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 4, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 6, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 8, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; m_gridFaultBranches-&gt;SetCellValue(0, 10, _(<span class="stringliteral">&quot;Online&quot;</span>));</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 4, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 4, m_currentChoices[1]);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 5, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 6, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 6, m_currentChoices[1]);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 7, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; m_gridFaultBranches-&gt;SetCellEditor(1, 8, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 8, m_currentChoices[1]);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; m_gridFaultBranches-&gt;SetCellValue(1, 9, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 0, _(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 1, _(<span class="stringliteral">&quot;Phase A&quot;</span>));</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 3, _(<span class="stringliteral">&quot;Phase B&quot;</span>));</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(0, 5, _(<span class="stringliteral">&quot;Phase C&quot;</span>));</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 1, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 1, m_currentChoices[1]);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 2, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 3, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 3, m_currentChoices[1]);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 4, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; m_gridFaultGenerators-&gt;SetCellEditor(1, 5, <span class="keyword">new</span> wxGridCellChoiceEditor(m_currentChoices));</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 5, m_currentChoices[1]);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(1, 6, _(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;<span class="keywordtype">void</span> DataReport::FillValues(GridSelection gridToFill)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; m_changingValues = <span class="keyword">true</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> eCalc;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; eCalc.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">double</span> basePower = m_workspace-&gt;GetProperties()-&gt;GetSimulationPropertiesData().basePower;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">switch</span>(m_workspace-&gt;GetProperties()-&gt;GetSimulationPropertiesData().basePowerUnit) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; basePower *= 1e3;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; basePower *= 1e6;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordtype">int</span> rowNumber = 1;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">auto</span> lineList = eCalc.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">auto</span> transformerList = eCalc.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">auto</span> busList = eCalc.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">auto</span> generatorList = eCalc.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">// Power Flow</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PF) {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordtype">double</span> kActivePower = 1.0;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[1])</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; kActivePower = basePower;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[2])</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; kActivePower = basePower / 1e3;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 4) == m_activePowerChoices[3])</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; kActivePower = basePower / 1e6;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordtype">double</span> kReactivePower = 1.0;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[1])</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; kReactivePower = basePower;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[2])</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; kReactivePower = basePower / 1e3;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPowerFlow-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[3])</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; kReactivePower = basePower / 1e6;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; wxColour textColour = m_gridPowerFlow-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_gridPowerFlow-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[0]) * kActivePower));</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[0]) * kReactivePower));</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; rowNumber++;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[1]) * kActivePower));</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[1]) * kReactivePower));</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; rowNumber++;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; wxColour textColour = m_gridPowerFlow-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 7; ++j) {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; m_gridPowerFlow-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[0]) * kActivePower));</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[0]) * kReactivePower));</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; rowNumber++;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.powerFlow[1]) * kActivePower));</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.powerFlow[1]) * kReactivePower));</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; m_gridPowerFlow-&gt;SetCellValue(rowNumber, 6, isOnline);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; rowNumber++;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_gridPowerFlow-&gt;AutoSize();</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="comment">// Power Flow buses</span></div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PFBUSES) {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">double</span> kActivePower = 1.0;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[1])</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; kActivePower = basePower;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[2])</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; kActivePower = basePower / 1e3;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 4) == m_activePowerChoices[3])</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; kActivePower = basePower / 1e6;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordtype">double</span> kReactivePower = 1.0;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[1])</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; kReactivePower = basePower;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[2])</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; kReactivePower = basePower / 1e3;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 5) == m_reactivePowerChoices[3])</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; kReactivePower = basePower / 1e6;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; rowNumber = 1;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordtype">double</span> vb = std::abs(data.nominalVoltage);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordtype">double</span> kVoltage = 1.0;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 2) == m_voltageChoices[1])</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridPFBuses-&gt;GetCellValue(0, 2) == m_voltageChoices[2])</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; wxString busTypeString = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">switch</span>(data.busType) {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">case</span> BUS_SLACK: {</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; busTypeString = _(<span class="stringliteral">&quot;Slack&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">case</span> BUS_PV: {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; busTypeString = _(<span class="stringliteral">&quot;PV&quot;</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">case</span> BUS_PQ: {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; busTypeString = _(<span class="stringliteral">&quot;PQ&quot;</span>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 1, busTypeString);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 2, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.voltage) * kVoltage));</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 3, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.voltage))));</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 4, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::real(data.power) * kActivePower));</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; m_gridPFBuses-&gt;SetCellValue(rowNumber, 5, bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::imag(data.power) * kReactivePower));</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; rowNumber++;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; m_gridPFBuses-&gt;AutoSize();</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="comment">// Power flow branches</span></div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_PFBRANCHES) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; rowNumber = 1;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordtype">double</span> vb = data.nominalVoltage;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">double</span> zb = (vb * vb) / basePower;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; wxColour textColour = m_gridPFBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 10; ++j) {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; m_gridPFBranches-&gt;SetCellTextColour(rowNumber, j, textColour);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordtype">double</span> k = 1.0;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 4) == m_resistanceChoices[1]) k = zb;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 4, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.resistance * k));</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; k = 1.0;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 5) == m_indReactanceChoices[1]) k = zb;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 5, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.indReactance * k));</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; k = 1.0;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 6) == m_capSusceptanceChoices[1]) k = zb;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 6, line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.capSusceptance / k));</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 7, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 8, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; rowNumber++;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordtype">double</span> vb = 0.0;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">if</span>(data.baseVoltage == 0) {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; vb = data.primaryNominalVoltage;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">if</span>(data.primaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; vb = data.secondaryNominalVoltage;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">if</span>(data.secondaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) vb *= 1e3;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordtype">double</span> zb = (vb * vb) / basePower;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; wxColour textColour = m_gridPFBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; }</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 10; ++j) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; m_gridPFBranches-&gt;SetCellTextColour(rowNumber, j, textColour);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; }</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordtype">double</span> k = 1.0;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 4) == m_resistanceChoices[1]) k = zb;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.resistance * k));</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; k = 1.0;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">if</span>(m_gridPFBranches-&gt;GetCellValue(0, 5) == m_indReactanceChoices[1]) k = zb;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.indReactance * k));</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 6, <span class="stringliteral">&quot;-&quot;</span>);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.turnsRatio));</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(data.phaseShift));</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; m_gridPFBranches-&gt;SetCellValue(rowNumber, 9, isOnline);</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; rowNumber++;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; m_gridPFBranches-&gt;AutoSize();</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULT) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordtype">double</span> vb = bus-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 1) == m_currentChoices[1]) {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 1) == m_currentChoices[2]) {</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0]) * kCurrent));</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 2,</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0]))));</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 3) == m_currentChoices[1]) {</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 3) == m_currentChoices[2]) {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1]) * kCurrent));</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1]))));</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 5) == m_currentChoices[1]) {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFault-&gt;GetCellValue(1, 5) == m_currentChoices[2]) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; }</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[2]) * kCurrent));</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; m_gridFault-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[2]))));</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; rowNumber++;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; }</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; m_gridFault-&gt;AutoSize();</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; }</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="comment">// Fault buses</span></div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTBUSES) {</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = busList.begin(), itEnd = busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordtype">double</span> vb = bus-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordtype">double</span> kVoltage = 1.0;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 1) == m_voltageChoices[1]) {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 1) == m_voltageChoices[2]) {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[0]) * kVoltage));</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 2,</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[0]))));</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; kVoltage = 1.0;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 3) == m_voltageChoices[1]) {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 3) == m_voltageChoices[2]) {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; }</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[1]) * kVoltage));</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[1]))));</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; kVoltage = 1.0;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 5) == m_voltageChoices[1]) {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; kVoltage = vb;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBuses-&gt;GetCellValue(1, 5) == m_voltageChoices[2]) {</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; kVoltage = vb / 1e3;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultVoltage[2]) * kVoltage));</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; m_gridFaultBuses-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; bus-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultVoltage[2]))));</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; rowNumber++;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; m_gridFaultBuses-&gt;AutoSize();</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; }</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="comment">// Fault branches</span></div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTBRANCHES) {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = lineList.begin(), itEnd = lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordtype">double</span> vb = line-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; busName1 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; busName2 = static_cast&lt;Bus*&gt;(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; wxColour textColour = m_gridFaultBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; m_gridFaultBranches-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; }</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][0]) * kCurrent));</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][0]))));</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][1]) * kCurrent));</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 7,</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][1]))));</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 8,</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][2]) * kCurrent));</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 9,</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][2]))));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; rowNumber++;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Line&quot;</span>));</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 4,</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][0]) * kCurrent));</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][0]))));</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 6,</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][1]) * kCurrent));</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 7,</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][1]))));</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 8,</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][2]) * kCurrent));</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 9,</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; line-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][2]))));</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; rowNumber++;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = transformerList.begin(), itEnd = transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordtype">double</span> vb = transformer-&gt;GetValueFromUnit(data.primaryNominalVoltage, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordtype">double</span> ibp = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; vb = transformer-&gt;GetValueFromUnit(data.secondaryNominalVoltage, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordtype">double</span> ibs = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; wxString busName1 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; busName1 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; wxString busName2 = <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; busName2 = static_cast&lt;Bus*&gt;(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().name;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; wxString isOnline = _(<span class="stringliteral">&quot;Yes&quot;</span>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; wxColour textColour = m_gridFaultBranches-&gt;GetDefaultCellTextColour();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; isOnline = _(<span class="stringliteral">&quot;No&quot;</span>);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; textColour = m_offlineColour;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; ++i) {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 11; ++j) {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; m_gridFaultBranches-&gt;SetCellTextColour(rowNumber + i, j, textColour);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; }</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName1);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName2);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][0]) * kCurrent));</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][0]))));</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; }</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; rowNumber, 6, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][1]) * kCurrent));</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][1]))));</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; kCurrent = ibp;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; kCurrent = ibp / 1e3;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; }</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0][2]) * kCurrent));</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; rowNumber, 9, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0][2]))));</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; rowNumber++;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 0, _(<span class="stringliteral">&quot;Transformer&quot;</span>));</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 1, data.name);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 2, busName2);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 3, busName1);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[1]) {</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 4) == m_currentChoices[2]) {</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; rowNumber, 4, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][0]) * kCurrent));</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; rowNumber, 5, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][0]))));</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[1]) {</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 6) == m_currentChoices[2]) {</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; rowNumber, 6, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][1]) * kCurrent));</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; rowNumber, 7, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][1]))));</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[1]) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; kCurrent = ibs;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultBranches-&gt;GetCellValue(1, 8) == m_currentChoices[2]) {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; kCurrent = ibs / 1e3;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; }</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; rowNumber, 8, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1][2]) * kCurrent));</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; m_gridFaultBranches-&gt;SetCellValue(</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; rowNumber, 9, transformer-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1][2]))));</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; m_gridFaultBranches-&gt;SetCellValue(rowNumber, 10, isOnline);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; rowNumber++;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; m_gridFaultBranches-&gt;AutoSize();</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; }</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="comment">// Fault generators</span></div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span>(gridToFill == GRID_ALL || gridToFill == GRID_FAULTGENERATORS) {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; rowNumber = 2;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = generatorList.begin(), itEnd = generatorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetPUElectricalData(basePower);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordtype">double</span> vb = generator-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordtype">double</span> ib = basePower / (std::sqrt(3.0) * vb);</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 0, data.name);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordtype">double</span> kCurrent = 1.0;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 1) == m_currentChoices[1])</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 1) == m_currentChoices[2])</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 1,</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[0]) * kCurrent));</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; rowNumber, 2, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[0]))));</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 3) == m_currentChoices[1])</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 3) == m_currentChoices[2])</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 3,</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[1]) * kCurrent));</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; rowNumber, 4, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[1]))));</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; kCurrent = 1.0;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 5) == m_currentChoices[1])</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; kCurrent = ib;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_gridFaultGenerators-&gt;GetCellValue(1, 5) == m_currentChoices[2])</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; kCurrent = ib / 1e3;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(rowNumber, 5,</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(std::abs(data.faultCurrent[2]) * kCurrent));</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; m_gridFaultGenerators-&gt;SetCellValue(</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; rowNumber, 6, generator-&gt;<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(wxRadToDeg(std::arg(data.faultCurrent[2]))));</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; rowNumber++;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; }</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; m_gridFaultGenerators-&gt;AutoSize();</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; m_changingValues = <span class="keyword">false</span>;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160;}</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160;<span class="keywordtype">void</span> DataReport::SetRowsColours(wxGrid* grid, <span class="keywordtype">int</span> rowStart)</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160;{</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = rowStart; i &lt; grid-&gt;GetNumberRows(); ++i) {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; wxGridCellAttr* attr = grid-&gt;GetOrCreateCellAttr(i, 0);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordflow">if</span>((i - rowStart) % 2 == 0)</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; attr-&gt;SetBackgroundColour(m_evenRowColour);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; attr-&gt;SetBackgroundColour(m_oddRowColour);</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; grid-&gt;SetRowAttr(i, attr);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; }</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;}</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160;<span class="keywordtype">void</span> DataReport::OnPFBusGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160;{</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PFBUSES);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;}</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaulrGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;{</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULT);</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;}</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultBranchesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;{</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTBRANCHES);</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;}</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultBusesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160;{</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTBUSES);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;}</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;<span class="keywordtype">void</span> DataReport::OnFaultGeneratorsGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;{</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_FAULTGENERATORS);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160;}</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;<span class="keywordtype">void</span> DataReport::OnPFBranchesGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;{</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PFBRANCHES);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;}</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;<span class="keywordtype">void</span> DataReport::OnPowerFlowGridChanged(wxGridEvent&amp; event)</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160;{</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">if</span>(!m_changingValues) FillValues(GRID_PF);</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;}</div><div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00185">ElectricCalculation.h:185</a></div></div>
+<div class="ttc" id="_workspace_8h_html"><div class="ttname"><a href="_workspace_8h.html">Workspace.h</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="_data_report_8h_html"><div class="ttname"><a href="_data_report_8h.html">DataReport.h</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00145">ElectricCalculation.h:145</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00175">ElectricCalculation.h:175</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
<div class="ttc" id="class_data_report_base_html"><div class="ttname"><a href="class_data_report_base.html">DataReportBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_base_8h_source.html#l00038">DataReportBase.h:38</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00008">ElectricCalculation.cpp:8</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00148">ElectricCalculation.h:148</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00025">ElectricCalculation.cpp:25</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00165">ElectricCalculation.h:165</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_data_report_8h.html b/docs/doxygen/html/_data_report_8h.html
new file mode 100644
index 0000000..9ffd33b
--- /dev/null
+++ b/docs/doxygen/html/_data_report_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/DataReport.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_data_report_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">DataReport.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;DataReportBase.h&quot;</code><br />
+</div>
+<p><a href="_data_report_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_data_report.html">DataReport</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form that shows the results of power flow and fault calculations. <a href="class_data_report.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_data_report_8h.html">DataReport.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_data_report_8h_source.html b/docs/doxygen/html/_data_report_8h_source.html
index 314265a..d3f000e 100644
--- a/docs/doxygen/html/_data_report_8h_source.html
+++ b/docs/doxygen/html/_data_report_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_data_report_8h_source.html','');});
<div class="title">DataReport.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef DATAREPORT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define DATAREPORT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;DataReportBase.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_electric_calculation.html">ElectricCalculation</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_data_report.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_data_report.html">DataReport</a> : <span class="keyword">public</span> <a class="code" href="class_data_report_base.html">DataReportBase</a></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">enum</span> GridSelection {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; GRID_ALL = 0,</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; GRID_PF,</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GRID_PFBUSES,</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; GRID_PFBRANCHES,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; GRID_FAULT,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; GRID_FAULTBUSES,</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; GRID_FAULTBRANCHES,</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; GRID_FAULTGENERATORS,</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="class_data_report.html">DataReport</a>(wxWindow* parent, <a class="code" href="class_workspace.html">Workspace</a>* workspace);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_data_report.html">DataReport</a>();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetHeaders();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CreateGrids();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillValues(GridSelection gridToFill = GRID_ALL);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetRowsColours(wxGrid* grid, <span class="keywordtype">int</span> rowStart = 1);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaulrGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultBranchesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultBusesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultGeneratorsGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFBranchesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPowerFlowGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFBusGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* m_workspace = NULL;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">bool</span> m_changingValues = <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Headers choices</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxArrayString m_voltageChoices;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxArrayString m_activePowerChoices;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxArrayString m_reactivePowerChoices;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxArrayString m_resistanceChoices;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxArrayString m_indReactanceChoices;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxArrayString m_capSusceptanceChoices;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxArrayString m_currentChoices;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Colors</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; wxColour m_headerColour;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxColour m_offlineColour;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; wxColour m_oddRowColour;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; wxColour m_evenRowColour;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="preprocessor">#endif // DATAREPORT_H</span></div><div class="ttc" id="class_data_report_base_html"><div class="ttname"><a href="class_data_report_base.html">DataReportBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_base_8h_source.html#l00038">DataReportBase.h:38</a></div></div>
-<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00009">DataReport.h:9</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
+<a href="_data_report_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef DATAREPORT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define DATAREPORT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;DataReportBase.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_electric_calculation.html">ElectricCalculation</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_data_report.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_data_report.html">DataReport</a> : <span class="keyword">public</span> <a class="code" href="class_data_report_base.html">DataReportBase</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">enum</span> GridSelection {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GRID_ALL = 0,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; GRID_PF,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; GRID_PFBUSES,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; GRID_PFBRANCHES,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; GRID_FAULT,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GRID_FAULTBUSES,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; GRID_FAULTBRANCHES,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; GRID_FAULTGENERATORS,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_data_report.html">DataReport</a>(wxWindow* parent, <a class="code" href="class_workspace.html">Workspace</a>* workspace);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_data_report.html">DataReport</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetHeaders();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CreateGrids();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> FillValues(GridSelection gridToFill = GRID_ALL);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetRowsColours(wxGrid* grid, <span class="keywordtype">int</span> rowStart = 1);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaulrGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultBranchesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultBusesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultGeneratorsGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFBranchesGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPowerFlowGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFBusGridChanged(wxGridEvent&amp; event);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* m_workspace = NULL;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">bool</span> m_changingValues = <span class="keyword">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Headers choices</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; wxArrayString m_voltageChoices;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; wxArrayString m_activePowerChoices;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxArrayString m_reactivePowerChoices;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; wxArrayString m_resistanceChoices;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; wxArrayString m_indReactanceChoices;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; wxArrayString m_capSusceptanceChoices;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxArrayString m_currentChoices;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Colors</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; wxColour m_headerColour;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxColour m_offlineColour;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; wxColour m_oddRowColour;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxColour m_evenRowColour;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;};</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="preprocessor">#endif // DATAREPORT_H</span></div><div class="ttc" id="class_data_report_base_html"><div class="ttname"><a href="class_data_report_base.html">DataReportBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_base_8h_source.html#l00038">DataReportBase.h:38</a></div></div>
+<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdoc">Form that shows the results of power flow and fault calculations. </div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00033">DataReport.h:33</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>DataReport.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_data_report_8h.html">DataReport.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_data_report_base_8cpp_source.html b/docs/doxygen/html/_data_report_base_8cpp_source.html
index 9073051..c7cecb9 100644
--- a/docs/doxygen/html/_data_report_base_8cpp_source.html
+++ b/docs/doxygen/html/_data_report_base_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_data_report_base_8h_source.html b/docs/doxygen/html/_data_report_base_8h_source.html
index f3ac16d..89ee097 100644
--- a/docs/doxygen/html/_data_report_base_8h_source.html
+++ b/docs/doxygen/html/_data_report_base_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_data_report_bitmaps_8cpp_source.html b/docs/doxygen/html/_data_report_bitmaps_8cpp_source.html
index 2e86f68..4951e8f 100644
--- a/docs/doxygen/html/_data_report_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_data_report_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_degrees_and_radians_8h_source.html b/docs/doxygen/html/_degrees_and_radians_8h_source.html
index 485fd42..e12c65b 100644
--- a/docs/doxygen/html/_degrees_and_radians_8h_source.html
+++ b/docs/doxygen/html/_degrees_and_radians_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_electric_calculation_8cpp_source.html b/docs/doxygen/html/_electric_calculation_8cpp_source.html
index 1e57a24..3833a23 100644
--- a/docs/doxygen/html/_electric_calculation_8cpp_source.html
+++ b/docs/doxygen/html/_electric_calculation_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,47 +88,47 @@ $(document).ready(function(){initNavTree('_electric_calculation_8cpp_source.html
<div class="title">ElectricCalculation.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70"> 6</a></span>&#160;<a class="code" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation::ElectricCalculation</a>() {}</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7"> 7</a></span>&#160;<a class="code" href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7">ElectricCalculation::~ElectricCalculation</a>() {}</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92"> 8</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a>(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_powerElementList.clear();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_busList.clear();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_capacitorList.clear();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_indMotorList.clear();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_inductorList.clear();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_lineList.clear();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_loadList.clear();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_syncGeneratorList.clear();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_syncMotorList.clear();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_transformerList.clear();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// TODO: Bad design?</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(); it != elementList.end(); it++) {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_powerElementList.push_back(static_cast&lt;PowerElement*&gt;(element));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bus.html">Bus</a>* bus = dynamic_cast&lt;Bus*&gt;(element))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_busList.push_back(bus);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = dynamic_cast&lt;Capacitor*&gt;(element))</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_capacitorList.push_back(capacitor);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = dynamic_cast&lt;IndMotor*&gt;(element))</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_indMotorList.push_back(indMotor);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_inductor.html">Inductor</a>* inductor = dynamic_cast&lt;Inductor*&gt;(element))</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_inductorList.push_back(inductor);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_line.html">Line</a>* line = dynamic_cast&lt;Line*&gt;(element))</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_lineList.push_back(line);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_load.html">Load</a>* load = dynamic_cast&lt;Load*&gt;(element))</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_loadList.push_back(load);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = dynamic_cast&lt;SyncGenerator*&gt;(element))</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_syncGeneratorList.push_back(syncGenerator);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = dynamic_cast&lt;SyncMotor*&gt;(element))</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_syncMotorList.push_back(syncMotor);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transformer.html">Transformer</a>* transformer = dynamic_cast&lt;Transformer*&gt;(element))</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_transformerList.push_back(transformer);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// Set buses numbers</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; data.number = busNumber;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; busNumber++;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d"> 56</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a>(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; yBus,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; YBusSequence sequence,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> includeSyncMachines,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> allLoadsAsImpedances)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(m_busList.size() == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Clear and fill with zeros the Ybus</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; yBus.clear();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; line;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)m_busList.size(); j++) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; line.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; yBus.push_back(line);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Set buses numbers</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data.number = busNumber;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; busNumber++;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Load</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_loadList.begin(), itEnd = m_loadList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *it;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(data.loadType == CONST_IMPEDANCE || allLoadsAsImpedances) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::complex&lt;double&gt; yLoad = std::complex&lt;double&gt;(data.activePower, -data.reactivePower);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(allLoadsAsImpedances) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; yLoad /= (std::abs(v) * std::abs(v));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; yBus[n][n] += yLoad;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// Capacitor</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_capacitorList.begin(), itEnd = m_capacitorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = *it;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; yBus[n][n] += std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="comment">// Inductor</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_inductorList.begin(), itEnd = m_inductorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = *it;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; yBus[n][n] += std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Power line</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ:</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Transformer</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// If the transformer have nominal turns ratio (1.0) and no phase shifting, it will be modelled as series</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// impedance.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0 &amp;&amp; sequence != ZERO_SEQ) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; yBus[n1][n2] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; yBus[n2][n1] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="comment">// If the transformer have no-nominal turn ratio and/or phase shifting, it will be modelled in a different</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="comment">// way (see references).</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">//[Ref. 1: Elementos de analise de sistemas de potencia - Stevenson - pg. 232]</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="comment">//[Ref. 2: http://www.ee.washington.edu/research/real/Library/Reports/Tap_Adjustments_in_AC_Load_Flows.pdf]</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">//[Ref. 3: http://www.columbia.edu/~dano/courses/power/notes/power/andersson1.pdf]</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence != ZERO_SEQ) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(sequence == POSITIVE_SEQ) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; yBus[n1][n2] += -(y / std::conj(a));</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence == NEGATIVE_SEQ) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; yBus[n1][n2] += -(y / a);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; yBus[n2][n1] += -(y / std::conj(a));</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence == ZERO_SEQ) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">switch</span>(data.connection) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> GWYE_GWYE: {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; 1.0 /</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::complex&lt;double&gt;(</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; data.zeroResistance + 3.0 * (data.primaryGrndResistance + data.secondaryGrndResistance),</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; data.zeroIndReactance +</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; 3.0 * (data.primaryGrndReactance + data.secondaryGrndReactance));</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio, 0.0);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; yBus[n1][n1] += y / (a * a);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; yBus[n1][n2] += -(y / a);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> DELTA_GWYE: {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * (data.secondaryGrndResistance),</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; data.zeroIndReactance + 3.0 * (data.secondaryGrndReactance));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">case</span> GWYE_DELTA: {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * (data.primaryGrndResistance),</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; data.zeroIndReactance + 3.0 * (data.primaryGrndReactance));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; yBus[n1][n1] += y;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(includeSyncMachines) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ: {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.positiveResistance, data.positiveReactance);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.negativeResistance, data.negativeReactance);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * data.groundResistance,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; data.zeroReactance + 3.0 * data.groundReactance);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncMotorList.begin(), itEnd = m_syncMotorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *it;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ: {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.positiveResistance, data.positiveReactance);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.negativeResistance, data.negativeReactance);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * data.groundResistance,</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; data.zeroReactance + 3.0 * data.groundReactance);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049"> 287</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049">ElectricCalculation::UpdateElementsPowerFlow</a>(std::vector&lt;std::complex&lt;double&gt; &gt; voltage,</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power,</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; std::vector&lt;BusType&gt; busType,</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordtype">double</span> zeroLimit = 1e-4;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; reactiveLimit.size(); ++i) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].maxLimit &gt; -zeroLimit &amp;&amp; reactiveLimit[i].maxLimit &lt; zeroLimit)</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; reactiveLimit[i].maxLimit = zeroLimit;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].minLimit &gt; -zeroLimit &amp;&amp; reactiveLimit[i].minLimit &lt; zeroLimit)</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; reactiveLimit[i].minLimit = zeroLimit;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; power.size(); ++i) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">if</span>(std::real(power[i]) &gt; -zeroLimit &amp;&amp; std::real(power[i]) &lt; zeroLimit)</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; power[i] = std::complex&lt;double&gt;(0.0, std::imag(power[i]));</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span>(std::imag(power[i]) &gt; -zeroLimit &amp;&amp; std::imag(power[i]) &lt; zeroLimit)</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; power[i] = std::complex&lt;double&gt;(std::real(power[i]), 0.0);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="comment">// Buses</span></div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_busList[i];</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; data.voltage = voltage[i];</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; data.power = power[i];</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; data.busType = busType[i];</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="comment">// Power line</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_lineList.size(); i++) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_lineList[i];</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; std::complex&lt;double&gt; v1 = voltage[n1];</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; std::complex&lt;double&gt; v2 = voltage[n2];</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; data.current[0] = (v1 - v2) / std::complex&lt;double&gt;(data.resistance, data.indReactance) +</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; v1 * std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; data.current[1] = (v2 - v1) / std::complex&lt;double&gt;(data.resistance, data.indReactance) +</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; v2 * std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; data.powerFlow[0] = v1 * std::conj(data.current[0]);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; data.powerFlow[1] = v2 * std::conj(data.current[1]);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(data.powerFlow[0].real() &gt; data.powerFlow[1].real())</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; line-&gt;<a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; line-&gt;<a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; }</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="comment">// Transformer</span></div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_transformerList.size(); i++) {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_transformerList[i];</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; std::complex&lt;double&gt; v1 = voltage[n1]; <span class="comment">// Primary voltage</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; std::complex&lt;double&gt; v2 = voltage[n2]; <span class="comment">// Secondary voltage</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; data.current[0] = (v1 - v2) * y;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; data.current[1] = (v2 - v1) * y;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">double</span> radPS = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; std::complex&lt;double&gt; a =</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPS), -data.turnsRatio * std::sin(radPS));</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; data.current[0] = v1 * (y / std::pow(std::abs(a), 2)) - v2 * (y / std::conj(a));</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; data.current[1] = -v1 * (y / a) + v2 * y;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; data.powerFlow[0] = v1 * std::conj(data.current[0]);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; data.powerFlow[1] = v2 * std::conj(data.current[1]);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(data.powerFlow[0].real() &gt; data.powerFlow[1].real())</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="comment">// Synchronous machines</span></div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_busList[i];</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="comment">// Get the synchronous machines connected and calculate the load power on the bus.</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; std::vector&lt;SyncGenerator*&gt; syncGeneratorsOnBus;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; std::vector&lt;SyncMotor*&gt; syncMotorsOnBus;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; std::complex&lt;double&gt; loadPower(0.0, 0.0);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; syncGeneratorsOnBus.push_back(syncGenerator);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; syncMotorsOnBus.push_back(syncMotor);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, 0.0);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itlo = m_loadList.begin(); itlo != m_loadList.end(); itlo++) {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *itlo;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(bus == load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> childData = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">if</span>(childData.loadType == CONST_POWER)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; }</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itim = m_indMotorList.begin(); itim != m_indMotorList.end(); itim++) {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = *itim;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span>(bus == indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> childData = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; }</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="comment">// Set the sync generator power</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = syncGeneratorsOnBus.begin(); itsg != syncGeneratorsOnBus.end(); itsg++) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *itsg;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">double</span> activePower =</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; (power[i].real() + loadPower.real()) * systemPowerBase / (<span class="keywordtype">double</span>)(syncGeneratorsOnBus.size());</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">switch</span>(childData.activePowerUnit) {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; activePower /= systemPowerBase;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; activePower /= 1e3;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; activePower /= 1e6;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; childData.activePower = activePower;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV || busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="comment">// double reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase /</span></div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="comment">// (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</span></div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData_PU = generator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordtype">double</span> reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MAX_REACHED)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; reactivePower *= (childData_PU.maxReactive / reactiveLimit[i].maxLimit);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MIN_REACHED)</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; reactivePower *= (childData_PU.minReactive / reactiveLimit[i].minLimit);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; reactivePower /= (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">switch</span>(childData.reactivePowerUnit) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; reactivePower /= systemPowerBase;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; reactivePower /= 1e3;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; reactivePower /= 1e6;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; childData.reactivePower = reactivePower;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; }</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; generator-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; generator-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; generator-&gt;SetElectricalData(childData);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; }</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// Set the sync motor reactive power</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordtype">double</span> exceededReactive = 0.0;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordtype">int</span> numMachines = syncGeneratorsOnBus.size() + syncMotorsOnBus.size();</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = syncMotorsOnBus.begin(); itsm != syncMotorsOnBus.end(); itsm++) {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordtype">bool</span> reachedMachineLimit = <span class="keyword">false</span>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV || busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="comment">// double reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase /</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="comment">// (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</span></div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData_PU = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">double</span> reactivePower = power[i].imag() + loadPower.imag();</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// Bus reachd maximum reactive limit.</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MAX_REACHED)</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; reactivePower *= (childData_PU.maxReactive / reactiveLimit[i].maxLimit);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// Bus reached minimum reactive limit.</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MIN_REACHED)</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; reactivePower *= (childData_PU.minReactive / reactiveLimit[i].minLimit);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="comment">// Bus didn&#39;t reach any limits</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; reactivePower /= (double)(numMachines);</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span>(childData_PU.haveMaxReactive &amp;&amp; (reactivePower &gt; childData_PU.maxReactive)) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; exceededReactive += reactivePower - childData_PU.maxReactive;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; reactivePower = childData_PU.maxReactive;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; reachedMachineLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(childData_PU.haveMinReactive &amp;&amp; (reactivePower &lt; childData_PU.minReactive)) {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; exceededReactive += reactivePower - childData_PU.minReactive;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; reactivePower = childData_PU.minReactive;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; reachedMachineLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((!childData_PU.haveMaxReactive &amp;&amp; reactiveLimit[i].limitReached == RL_MAX_REACHED) ||</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; (!childData_PU.haveMinReactive &amp;&amp; reactiveLimit[i].limitReached == RL_MIN_REACHED) ||</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; (!childData_PU.haveMaxReactive &amp;&amp; !childData_PU.haveMaxReactive)) {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; reactivePower += exceededReactive;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; exceededReactive = 0.0;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; reactivePower *= systemPowerBase;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">switch</span>(childData.reactivePowerUnit) {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; reactivePower /= systemPowerBase;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; reactivePower /= 1e3;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; reactivePower /= 1e6;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; childData.reactivePower = reactivePower;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt; 0.0)</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; syncMotor-&gt;SetElectricalData(childData);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">if</span>(reachedMachineLimit) {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; syncMotorsOnBus.erase(itsm);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; itsm = syncMotorsOnBus.begin();</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; }</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;}</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c"> 572</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a>(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; inverse)</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;{</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(matrix.size());</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; inverse.clear();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="comment">// Fill the inverse matrix with identity.</span></div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; line;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; line.push_back(i == j ? std::complex&lt;double&gt;(1.0, 0.0) : std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; inverse.push_back(line);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="comment">// Check if a main diagonal value of the matrix is zero, if one is zero, try a linear combination to remove it.</span></div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">if</span>(i == j &amp;&amp; matrix[i][j] == std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordtype">int</span> row = 0;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">while</span>(row &lt; order) {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">if</span>(matrix[row][j] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; matrix[i][k] += matrix[row][k];</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; inverse[i][k] += inverse[row][k];</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; }</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; }</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; row++;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="comment">// If all line values are zero, the matrix is singular and the solution is impossible.</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">if</span>(row == order) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="comment">// Linear combinations are made in both matrices, the goal is the input matrix become the identity. The final result</span></div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="comment">// have two matrices: the identity and the inverse of the input.</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">if</span>(i != j) {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">if</span>(matrix[i][i] == std::complex&lt;double&gt;(0.0, 0.0)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; std::complex&lt;double&gt; factor = matrix[j][i] / matrix[i][i];</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; matrix[j][k] -= factor * matrix[i][k];</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; inverse[j][k] -= factor * inverse[i][k];</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="comment">// Main diagonal calculation.</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">if</span>(i == j) {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">if</span>(matrix[i][j] == std::complex&lt;double&gt;(0.0, 0.0)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; std::complex&lt;double&gt; factor = (matrix[i][j] - std::complex&lt;double&gt;(1.0, 0.0)) / matrix[i][j];</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; matrix[j][k] -= factor * matrix[i][k];</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; inverse[j][k] -= factor * inverse[i][k];</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; }</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;}</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::ABCtoDQ0(std::complex&lt;double&gt; complexValue, <span class="keywordtype">double</span> angle, <span class="keywordtype">double</span>&amp; dValue, <span class="keywordtype">double</span>&amp; qValue)</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;{</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; dValue = -std::real(complexValue) * std::sin(angle) + std::imag(complexValue) * std::cos(angle);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; qValue = std::real(complexValue) * std::cos(angle) + std::imag(complexValue) * std::sin(angle);</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;}</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::DQ0toABC(<span class="keywordtype">double</span> dValue, <span class="keywordtype">double</span> qValue, <span class="keywordtype">double</span> angle, std::complex&lt;double&gt;&amp; complexValue)</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;{</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordtype">double</span> real = qValue * std::cos(angle) - dValue * std::sin(angle);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordtype">double</span> imag = qValue * std::sin(angle) + dValue * std::cos(angle);</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; complexValue = std::complex&lt;double&gt;(real, imag);</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;}</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::GaussianElimination(</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; array)</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;{</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="comment">//[Ref] http://pt.wikipedia.org/wiki/Elimina%C3%A7%C3%A3o_de_Gauss</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; solution;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; triangMatrix;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; triangMatrix.resize(matrix.size());</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; triangMatrix[i].resize(matrix.size());</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; solution.push_back(array[i]);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; triangMatrix[i][j] = matrix[i][j];</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; }</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; }</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = 0; k &lt; matrix.size(); k++) {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k1 = k + 1;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = k; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">if</span>(triangMatrix[i][k] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = k1; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; triangMatrix[i][j] = triangMatrix[i][j] / triangMatrix[i][k];</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; }</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; solution[i] = solution[i] / triangMatrix[i][k];</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = k1; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span>(triangMatrix[i][k] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = k1; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; triangMatrix[i][j] -= triangMatrix[k][j];</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; solution[i] -= solution[k];</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; }</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; }</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; }</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = matrix.size() - 2; i &gt;= 0; i--) {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = matrix.size() - 1; j &gt;= i + 1; j--) {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; solution[i] -= triangMatrix[i][j] * solution[j];</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; }</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">return</span> solution;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160;}</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160;Machines::SyncMachineModel ElectricCalculation::GetMachineModel(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator)</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;{</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">if</span>(data.transTd0 != 0.0) {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span>(data.transTq0 != 0.0) {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">if</span>(data.subTd0 != 0.0 || data.subTq0 != 0.0) {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_5;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_3;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span>(data.subTd0 != 0.0 || data.subTq0 != 0.0) {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_4;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_2;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; }</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_1;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;}</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::ComplexMatrixTimesVector(</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; vector)</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;{</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; solution;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; solution.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; solution[i] += matrix[i][j] * vector[j];</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; }</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">return</span> solution;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;}</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::GetLUDecomposition(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixL,</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixU)</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;{</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="comment">// Doolittle method</span></div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="comment">// [Ref] http://www3.nd.edu/~zxu2/acms40390F11/Alg-LU-Crout.pdf</span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// [Ref] http://www.engr.colostate.edu/~thompson/hPage/CourseMat/Tutorials/CompMethods/doolittle.pdf</span></div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordtype">int</span> size = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(matrix.size()); <span class="comment">// Decomposed matrix size.</span></div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="comment">// Set upper and lower matrices sizes.</span></div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; matrixL.resize(size);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; matrixU.resize(size);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; matrixL[i].resize(size);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; matrixU[i].resize(size);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// First row of upper matrix and first column of lower matrix.</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; matrixU[0][i] = matrix[0][i];</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; matrixL[i][0] = matrix[i][0] / matrixU[0][0];</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; }</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="comment">// Lower matrix main diagonal.</span></div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; size; i++) {</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; matrixL[i][i] = std::complex&lt;double&gt;(1.0, 0.0);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; }</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; size - 1; i++) {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="comment">// Upper matrix main diagonal.</span></div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; matrixU[i][i] = matrix[i][i];</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; matrixU[i][i] -= matrixL[i][k] * matrixU[k][i];</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; }</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="comment">// Others elements of upper matrix</span></div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; matrixU[i][j] = matrix[i][j];</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; matrixU[i][j] -= matrixL[i][k] * matrixU[k][j];</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; }</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="comment">// Lower matrix elements</span></div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; matrixL[j][i] = matrix[j][i];</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; matrixL[j][i] -= matrixL[j][k] * matrixU[k][i];</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; matrixL[j][i] = matrixL[j][i] / matrixU[i][i];</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; }</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="comment">// Last element of upper matrix.</span></div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; matrixU[size - 1][size - 1] = matrix[size - 1][size - 1];</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; size - 1; k++) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; matrixU[size - 1][size - 1] -= matrixL[size - 1][k] * matrixU[k][size - 1];</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160;}</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::LUEvaluate(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; u,</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; l,</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; b)</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordtype">int</span> size = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(b.size());</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; x;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; y;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; x.resize(size);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; y.resize(size);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">// Forward</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; y[i] = b[i];</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; i; j++) {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; y[i] -= l[i][j] * y[j];</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; y[i] /= l[i][i];</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="comment">// Backward</span></div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = size - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; x[i] = y[i];</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; x[i] -= u[i][j] * x[j];</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; x[i] /= u[i][i];</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; }</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_power_element_html_a2ee71f9eb90beadf5439ce9f70469b49"><div class="ttname"><a href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00170">PowerElement.h:170</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00064">PowerElement.h:64</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a1e70291bfa9a0850d9ffcbee44daa2f7"><div class="ttname"><a href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7">ElectricCalculation::~ElectricCalculation</a></div><div class="ttdeci">~ElectricCalculation()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00007">ElectricCalculation.cpp:7</a></div></div>
-<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00250">Machines.cpp:250</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="class_transformer_html_a328c419af15701734168c8db62eefa36"><div class="ttname"><a href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00388">Transformer.cpp:388</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_af00a6599f2b0b4e35bf0f8c70195447c"><div class="ttname"><a href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a></div><div class="ttdeci">virtual bool InvertMatrix(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</div><div class="ttdoc">Invert a matrix. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00572">ElectricCalculation.cpp:572</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00066">PowerElement.h:66</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00056">ElectricCalculation.cpp:56</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a1d417da6eeb8c12f7be6501fff6f7049"><div class="ttname"><a href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049">ElectricCalculation::UpdateElementsPowerFlow</a></div><div class="ttdeci">virtual void UpdateElementsPowerFlow(std::vector&lt; std::complex&lt; double &gt; &gt; voltage, std::vector&lt; std::complex&lt; double &gt; &gt; power, std::vector&lt; BusType &gt; busType, std::vector&lt; ReactiveLimits &gt; reactiveLimit, double systemPowerBase)</div><div class="ttdoc">Update the elements after the power flow calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00287">ElectricCalculation.cpp:287</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00063">PowerElement.h:63</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a6663e7a20e96ee975bd0f7d54b8a6f70"><div class="ttname"><a href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation::ElectricCalculation</a></div><div class="ttdeci">ElectricCalculation()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00006">ElectricCalculation.cpp:6</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00065">PowerElement.h:65</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00008">ElectricCalculation.cpp:8</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="class_line_html_a400c8d0397ecdfe6c0a8380ee6bc7e1e"><div class="ttname"><a href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00429">Line.cpp:429</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70"> 23</a></span>&#160;<a class="code" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation::ElectricCalculation</a>() {}</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7"> 24</a></span>&#160;<a class="code" href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7">ElectricCalculation::~ElectricCalculation</a>() {}</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92"> 25</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a>(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_powerElementList.clear();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_busList.clear();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_capacitorList.clear();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_indMotorList.clear();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_inductorList.clear();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_lineList.clear();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_loadList.clear();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_syncGeneratorList.clear();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_syncMotorList.clear();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_transformerList.clear();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// TODO: Bad design?</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(); it != elementList.end(); it++) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_powerElementList.push_back(static_cast&lt;PowerElement*&gt;(element));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bus.html">Bus</a>* bus = dynamic_cast&lt;Bus*&gt;(element))</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_busList.push_back(bus);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = dynamic_cast&lt;Capacitor*&gt;(element))</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_capacitorList.push_back(capacitor);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = dynamic_cast&lt;IndMotor*&gt;(element))</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_indMotorList.push_back(indMotor);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_inductor.html">Inductor</a>* inductor = dynamic_cast&lt;Inductor*&gt;(element))</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_inductorList.push_back(inductor);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_line.html">Line</a>* line = dynamic_cast&lt;Line*&gt;(element))</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_lineList.push_back(line);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_load.html">Load</a>* load = dynamic_cast&lt;Load*&gt;(element))</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_loadList.push_back(load);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = dynamic_cast&lt;SyncGenerator*&gt;(element))</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_syncGeneratorList.push_back(syncGenerator);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = dynamic_cast&lt;SyncMotor*&gt;(element))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_syncMotorList.push_back(syncMotor);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(<a class="code" href="class_transformer.html">Transformer</a>* transformer = dynamic_cast&lt;Transformer*&gt;(element))</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_transformerList.push_back(transformer);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Set buses numbers</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.number = busNumber;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; busNumber++;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d"> 73</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a>(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; yBus,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; YBusSequence sequence,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">bool</span> includeSyncMachines,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">bool</span> allLoadsAsImpedances)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(m_busList.size() == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Clear and fill with zeros the Ybus</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; yBus.clear();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; line;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)m_busList.size(); j++) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; line.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; yBus.push_back(line);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Set buses numbers</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; data.number = busNumber;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; busNumber++;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="comment">// Load</span></div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_loadList.begin(), itEnd = m_loadList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *it;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(data.loadType == CONST_IMPEDANCE || allLoadsAsImpedances) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::complex&lt;double&gt; yLoad = std::complex&lt;double&gt;(data.activePower, -data.reactivePower);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(allLoadsAsImpedances) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; yLoad /= (std::abs(v) * std::abs(v));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; yBus[n][n] += yLoad;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="comment">// Capacitor</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_capacitorList.begin(), itEnd = m_capacitorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = *it;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; yBus[n][n] += std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="comment">// Inductor</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_inductorList.begin(), itEnd = m_inductorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = *it;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; yBus[n][n] += std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Power line</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ:</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance, data.zeroIndReactance);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="comment">// Transformer</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// If the transformer have nominal turns ratio (1.0) and no phase shifting, it will be modelled as series</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="comment">// impedance.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0 &amp;&amp; sequence != ZERO_SEQ) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; yBus[n1][n2] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; yBus[n2][n1] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="comment">// If the transformer have no-nominal turn ratio and/or phase shifting, it will be modelled in a different</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="comment">// way (see references).</span></div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">//[Ref. 1: Elementos de analise de sistemas de potencia - Stevenson - pg. 232]</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">//[Ref. 2: http://www.ee.washington.edu/research/real/Library/Reports/Tap_Adjustments_in_AC_Load_Flows.pdf]</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">//[Ref. 3: http://www.columbia.edu/~dano/courses/power/notes/power/andersson1.pdf]</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence != ZERO_SEQ) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(sequence == POSITIVE_SEQ) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; yBus[n1][n2] += -(y / std::conj(a));</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence == NEGATIVE_SEQ) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; yBus[n1][n2] += -(y / a);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; yBus[n2][n1] += -(y / std::conj(a));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(sequence == ZERO_SEQ) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">switch</span>(data.connection) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> GWYE_GWYE: {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; 1.0 /</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; std::complex&lt;double&gt;(</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; data.zeroResistance + 3.0 * (data.primaryGrndResistance + data.secondaryGrndResistance),</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; data.zeroIndReactance +</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; 3.0 * (data.primaryGrndReactance + data.secondaryGrndReactance));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio, 0.0);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; yBus[n1][n1] += y / (a * a);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; yBus[n1][n2] += -(y / a);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> DELTA_GWYE: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * (data.secondaryGrndResistance),</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; data.zeroIndReactance + 3.0 * (data.secondaryGrndReactance));</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; yBus[n2][n2] += y;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> GWYE_DELTA: {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; std::complex&lt;double&gt; y =</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * (data.primaryGrndResistance),</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; data.zeroIndReactance + 3.0 * (data.primaryGrndReactance));</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; yBus[n1][n1] += y;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(includeSyncMachines) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ: {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.positiveResistance, data.positiveReactance);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.negativeResistance, data.negativeReactance);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * data.groundResistance,</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; data.zeroReactance + 3.0 * data.groundReactance);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncMotorList.begin(), itEnd = m_syncMotorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *it;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">switch</span>(sequence) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">case</span> POSITIVE_SEQ: {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.positiveResistance, data.positiveReactance);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">case</span> NEGATIVE_SEQ: {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.negativeResistance, data.negativeReactance);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">case</span> ZERO_SEQ: {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; yBus[n][n] += 1.0 / std::complex&lt;double&gt;(data.zeroResistance + 3.0 * data.groundResistance,</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; data.zeroReactance + 3.0 * data.groundReactance);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049"> 304</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049">ElectricCalculation::UpdateElementsPowerFlow</a>(std::vector&lt;std::complex&lt;double&gt; &gt; voltage,</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; std::vector&lt;BusType&gt; busType,</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;{</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordtype">double</span> zeroLimit = 1e-4;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; reactiveLimit.size(); ++i) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].maxLimit &gt; -zeroLimit &amp;&amp; reactiveLimit[i].maxLimit &lt; zeroLimit)</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; reactiveLimit[i].maxLimit = zeroLimit;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].minLimit &gt; -zeroLimit &amp;&amp; reactiveLimit[i].minLimit &lt; zeroLimit)</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; reactiveLimit[i].minLimit = zeroLimit;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; power.size(); ++i) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(std::real(power[i]) &gt; -zeroLimit &amp;&amp; std::real(power[i]) &lt; zeroLimit)</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; power[i] = std::complex&lt;double&gt;(0.0, std::imag(power[i]));</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(std::imag(power[i]) &gt; -zeroLimit &amp;&amp; std::imag(power[i]) &lt; zeroLimit)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; power[i] = std::complex&lt;double&gt;(std::real(power[i]), 0.0);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="comment">// Buses</span></div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_busList[i];</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; data.voltage = voltage[i];</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; data.power = power[i];</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; data.busType = busType[i];</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// Power line</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_lineList.size(); i++) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_lineList[i];</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; std::complex&lt;double&gt; v1 = voltage[n1];</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; std::complex&lt;double&gt; v2 = voltage[n2];</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; data.current[0] = (v1 - v2) / std::complex&lt;double&gt;(data.resistance, data.indReactance) +</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; v1 * std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; data.current[1] = (v2 - v1) / std::complex&lt;double&gt;(data.resistance, data.indReactance) +</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; v2 * std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; data.powerFlow[0] = v1 * std::conj(data.current[0]);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; data.powerFlow[1] = v2 * std::conj(data.current[1]);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span>(data.powerFlow[0].real() &gt; data.powerFlow[1].real())</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; line-&gt;<a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; line-&gt;<a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="comment">// Transformer</span></div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_transformerList.size(); i++) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_transformerList[i];</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; std::complex&lt;double&gt; v1 = voltage[n1]; <span class="comment">// Primary voltage</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; std::complex&lt;double&gt; v2 = voltage[n2]; <span class="comment">// Secondary voltage</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; data.current[0] = (v1 - v2) * y;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; data.current[1] = (v2 - v1) * y;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">double</span> radPS = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; std::complex&lt;double&gt; a =</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPS), -data.turnsRatio * std::sin(radPS));</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; data.current[0] = v1 * (y / std::pow(std::abs(a), 2)) - v2 * (y / std::conj(a));</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; data.current[1] = -v1 * (y / a) + v2 * y;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; data.powerFlow[0] = v1 * std::conj(data.current[0]);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; data.powerFlow[1] = v2 * std::conj(data.current[1]);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(data.powerFlow[0].real() &gt; data.powerFlow[1].real())</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="comment">// Synchronous machines</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_busList.size(); i++) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_busList[i];</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="comment">// Get the synchronous machines connected and calculate the load power on the bus.</span></div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; std::vector&lt;SyncGenerator*&gt; syncGeneratorsOnBus;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; std::vector&lt;SyncMotor*&gt; syncMotorsOnBus;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; std::complex&lt;double&gt; loadPower(0.0, 0.0);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; syncGeneratorsOnBus.push_back(syncGenerator);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; syncMotorsOnBus.push_back(syncMotor);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, 0.0);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; }</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itlo = m_loadList.begin(); itlo != m_loadList.end(); itlo++) {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *itlo;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(bus == load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> childData = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">if</span>(childData.loadType == CONST_POWER)</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; }</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itim = m_indMotorList.begin(); itim != m_indMotorList.end(); itim++) {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = *itim;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>(bus == indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> childData = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; loadPower += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="comment">// Set the sync generator power</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = syncGeneratorsOnBus.begin(); itsg != syncGeneratorsOnBus.end(); itsg++) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *itsg;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordtype">double</span> activePower =</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; (power[i].real() + loadPower.real()) * systemPowerBase / (<span class="keywordtype">double</span>)(syncGeneratorsOnBus.size());</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">switch</span>(childData.activePowerUnit) {</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; activePower /= systemPowerBase;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; activePower /= 1e3;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; activePower /= 1e6;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; }</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; childData.activePower = activePower;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV || busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="comment">// double reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase /</span></div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="comment">// (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData_PU = generator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordtype">double</span> reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MAX_REACHED)</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; reactivePower *= (childData_PU.maxReactive / reactiveLimit[i].maxLimit);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MIN_REACHED)</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; reactivePower *= (childData_PU.minReactive / reactiveLimit[i].minLimit);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; reactivePower /= (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">switch</span>(childData.reactivePowerUnit) {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; reactivePower /= systemPowerBase;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; reactivePower /= 1e3;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; reactivePower /= 1e6;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; childData.reactivePower = reactivePower;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt;= 0.0)</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; generator-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; generator-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; generator-&gt;SetElectricalData(childData);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; }</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// Set the sync motor reactive power</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordtype">double</span> exceededReactive = 0.0;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordtype">int</span> numMachines = syncGeneratorsOnBus.size() + syncMotorsOnBus.size();</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = syncMotorsOnBus.begin(); itsm != syncMotorsOnBus.end(); itsm++) {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordtype">bool</span> reachedMachineLimit = <span class="keyword">false</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV || busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="comment">// double reactivePower = (power[i].imag() + loadPower.imag()) * systemPowerBase /</span></div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// (double)(syncGeneratorsOnBus.size() + syncMotorsOnBus.size());</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData_PU = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordtype">double</span> reactivePower = power[i].imag() + loadPower.imag();</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="comment">// Bus reachd maximum reactive limit.</span></div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MAX_REACHED)</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; reactivePower *= (childData_PU.maxReactive / reactiveLimit[i].maxLimit);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="comment">// Bus reached minimum reactive limit.</span></div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(reactiveLimit[i].limitReached == RL_MIN_REACHED)</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; reactivePower *= (childData_PU.minReactive / reactiveLimit[i].minLimit);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Bus didn&#39;t reach any limits</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; reactivePower /= (double)(numMachines);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span>(childData_PU.haveMaxReactive &amp;&amp; (reactivePower &gt; childData_PU.maxReactive)) {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; exceededReactive += reactivePower - childData_PU.maxReactive;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; reactivePower = childData_PU.maxReactive;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; reachedMachineLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(childData_PU.haveMinReactive &amp;&amp; (reactivePower &lt; childData_PU.minReactive)) {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; exceededReactive += reactivePower - childData_PU.minReactive;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; reactivePower = childData_PU.minReactive;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; reachedMachineLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>((!childData_PU.haveMaxReactive &amp;&amp; reactiveLimit[i].limitReached == RL_MAX_REACHED) ||</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; (!childData_PU.haveMinReactive &amp;&amp; reactiveLimit[i].limitReached == RL_MIN_REACHED) ||</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; (!childData_PU.haveMaxReactive &amp;&amp; !childData_PU.haveMaxReactive)) {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; reactivePower += exceededReactive;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; exceededReactive = 0.0;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; reactivePower *= systemPowerBase;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">switch</span>(childData.reactivePowerUnit) {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; reactivePower /= systemPowerBase;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; reactivePower /= 1e3;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; reactivePower /= 1e6;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; childData.reactivePower = reactivePower;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">if</span>(childData.activePower &gt; 0.0)</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; syncMotor-&gt;SetElectricalData(childData);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">if</span>(reachedMachineLimit) {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; syncMotorsOnBus.erase(itsm);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; itsm = syncMotorsOnBus.begin();</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; }</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; }</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; }</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;}</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160;</div><div class="line"><a name="l00589"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c"> 589</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a>(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; inverse)</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;{</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(matrix.size());</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; inverse.clear();</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="comment">// Fill the inverse matrix with identity.</span></div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; line;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; line.push_back(i == j ? std::complex&lt;double&gt;(1.0, 0.0) : std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; inverse.push_back(line);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="comment">// Check if a main diagonal value of the matrix is zero, if one is zero, try a linear combination to remove it.</span></div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">if</span>(i == j &amp;&amp; matrix[i][j] == std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordtype">int</span> row = 0;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; <span class="keywordflow">while</span>(row &lt; order) {</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">if</span>(matrix[row][j] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; matrix[i][k] += matrix[row][k];</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; inverse[i][k] += inverse[row][k];</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; }</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; row++;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="comment">// If all line values are zero, the matrix is singular and the solution is impossible.</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">if</span>(row == order) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; }</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="comment">// Linear combinations are made in both matrices, the goal is the input matrix become the identity. The final result</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="comment">// have two matrices: the identity and the inverse of the input.</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; <span class="keywordflow">if</span>(i != j) {</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">if</span>(matrix[i][i] == std::complex&lt;double&gt;(0.0, 0.0)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; std::complex&lt;double&gt; factor = matrix[j][i] / matrix[i][i];</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; matrix[j][k] -= factor * matrix[i][k];</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; inverse[j][k] -= factor * inverse[i][k];</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; }</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="comment">// Main diagonal calculation.</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; ++i) {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; ++j) {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">if</span>(i == j) {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">if</span>(matrix[i][j] == std::complex&lt;double&gt;(0.0, 0.0)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; std::complex&lt;double&gt; factor = (matrix[i][j] - std::complex&lt;double&gt;(1.0, 0.0)) / matrix[i][j];</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; order; ++k) {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; matrix[j][k] -= factor * matrix[i][k];</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; inverse[j][k] -= factor * inverse[i][k];</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; }</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; }</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; }</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;}</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::ABCtoDQ0(std::complex&lt;double&gt; complexValue, <span class="keywordtype">double</span> angle, <span class="keywordtype">double</span>&amp; dValue, <span class="keywordtype">double</span>&amp; qValue)</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;{</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; dValue = -std::real(complexValue) * std::sin(angle) + std::imag(complexValue) * std::cos(angle);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; qValue = std::real(complexValue) * std::cos(angle) + std::imag(complexValue) * std::sin(angle);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;}</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::DQ0toABC(<span class="keywordtype">double</span> dValue, <span class="keywordtype">double</span> qValue, <span class="keywordtype">double</span> angle, std::complex&lt;double&gt;&amp; complexValue)</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160;{</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordtype">double</span> real = qValue * std::cos(angle) - dValue * std::sin(angle);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordtype">double</span> imag = qValue * std::sin(angle) + dValue * std::cos(angle);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; complexValue = std::complex&lt;double&gt;(real, imag);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160;}</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::GaussianElimination(</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; array)</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;{</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="comment">//[Ref] http://pt.wikipedia.org/wiki/Elimina%C3%A7%C3%A3o_de_Gauss</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; solution;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; triangMatrix;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; triangMatrix.resize(matrix.size());</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; triangMatrix[i].resize(matrix.size());</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; }</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; solution.push_back(array[i]);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; }</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; triangMatrix[i][j] = matrix[i][j];</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; }</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k = 0; k &lt; matrix.size(); k++) {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> k1 = k + 1;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = k; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">if</span>(triangMatrix[i][k] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = k1; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; triangMatrix[i][j] = triangMatrix[i][j] / triangMatrix[i][k];</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; solution[i] = solution[i] / triangMatrix[i][k];</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; }</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = k1; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span>(triangMatrix[i][k] != std::complex&lt;double&gt;(0.0, 0.0)) {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = k1; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; triangMatrix[i][j] -= triangMatrix[k][j];</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; }</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; solution[i] -= solution[k];</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; }</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; }</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = matrix.size() - 2; i &gt;= 0; i--) {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = matrix.size() - 1; j &gt;= i + 1; j--) {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; solution[i] -= triangMatrix[i][j] * solution[j];</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; }</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">return</span> solution;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160;}</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160;Machines::SyncMachineModel ElectricCalculation::GetMachineModel(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator)</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160;{</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">if</span>(data.transTd0 != 0.0) {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(data.transTq0 != 0.0) {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">if</span>(data.subTd0 != 0.0 || data.subTq0 != 0.0) {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_5;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; }</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_3;</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">if</span>(data.subTd0 != 0.0 || data.subTq0 != 0.0) {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_4;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_2;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; }</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; }</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">return</span> Machines::SM_MODEL_1;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160;}</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::ComplexMatrixTimesVector(</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; vector)</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;{</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; solution;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; matrix.size(); i++) {</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; solution.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> j = 0; j &lt; matrix.size(); j++) {</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; solution[i] += matrix[i][j] * vector[j];</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; }</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">return</span> solution;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160;}</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;<span class="keywordtype">void</span> ElectricCalculation::GetLUDecomposition(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixL,</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixU)</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160;{</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="comment">// Doolittle method</span></div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">// [Ref] http://www3.nd.edu/~zxu2/acms40390F11/Alg-LU-Crout.pdf</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="comment">// [Ref] http://www.engr.colostate.edu/~thompson/hPage/CourseMat/Tutorials/CompMethods/doolittle.pdf</span></div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordtype">int</span> size = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(matrix.size()); <span class="comment">// Decomposed matrix size.</span></div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="comment">// Set upper and lower matrices sizes.</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; matrixL.resize(size);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; matrixU.resize(size);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; matrixL[i].resize(size);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; matrixU[i].resize(size);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; }</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="comment">// First row of upper matrix and first column of lower matrix.</span></div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; matrixU[0][i] = matrix[0][i];</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; matrixL[i][0] = matrix[i][0] / matrixU[0][0];</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="comment">// Lower matrix main diagonal.</span></div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; size; i++) {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; matrixL[i][i] = std::complex&lt;double&gt;(1.0, 0.0);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; size - 1; i++) {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="comment">// Upper matrix main diagonal.</span></div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; matrixU[i][i] = matrix[i][i];</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; matrixU[i][i] -= matrixL[i][k] * matrixU[k][i];</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; }</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="comment">// Others elements of upper matrix</span></div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; matrixU[i][j] = matrix[i][j];</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; matrixU[i][j] -= matrixL[i][k] * matrixU[k][j];</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="comment">// Lower matrix elements</span></div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; matrixL[j][i] = matrix[j][i];</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; i; k++) {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; matrixL[j][i] -= matrixL[j][k] * matrixU[k][i];</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; matrixL[j][i] = matrixL[j][i] / matrixU[i][i];</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; }</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; }</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="comment">// Last element of upper matrix.</span></div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; matrixU[size - 1][size - 1] = matrix[size - 1][size - 1];</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; size - 1; k++) {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; matrixU[size - 1][size - 1] -= matrixL[size - 1][k] * matrixU[k][size - 1];</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;}</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;std::vector&lt;std::complex&lt;double&gt; &gt; ElectricCalculation::LUEvaluate(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; u,</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; l,</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; b)</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160;{</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordtype">int</span> size = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(b.size());</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; x;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; y;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; x.resize(size);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; y.resize(size);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="comment">// Forward</span></div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; size; i++) {</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; y[i] = b[i];</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; i; j++) {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; y[i] -= l[i][j] * y[j];</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; y[i] /= l[i][i];</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="comment">// Backward</span></div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = size - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; x[i] = y[i];</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = i + 1; j &lt; size; j++) {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; x[i] -= u[i][j] * x[j];</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; x[i] /= u[i][i];</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">return</span> x;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_power_element_html_a2ee71f9eb90beadf5439ce9f70469b49"><div class="ttname"><a href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00187">PowerElement.h:187</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00081">PowerElement.h:81</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a1e70291bfa9a0850d9ffcbee44daa2f7"><div class="ttname"><a href="class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7">ElectricCalculation::~ElectricCalculation</a></div><div class="ttdeci">~ElectricCalculation()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00024">ElectricCalculation.cpp:24</a></div></div>
+<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00267">Machines.cpp:267</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="class_transformer_html_a328c419af15701734168c8db62eefa36"><div class="ttname"><a href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00405">Transformer.cpp:405</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_af00a6599f2b0b4e35bf0f8c70195447c"><div class="ttname"><a href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a></div><div class="ttdeci">virtual bool InvertMatrix(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</div><div class="ttdoc">Invert a matrix. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00589">ElectricCalculation.cpp:589</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00083">PowerElement.h:83</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00073">ElectricCalculation.cpp:73</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a1d417da6eeb8c12f7be6501fff6f7049"><div class="ttname"><a href="class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049">ElectricCalculation::UpdateElementsPowerFlow</a></div><div class="ttdeci">virtual void UpdateElementsPowerFlow(std::vector&lt; std::complex&lt; double &gt; &gt; voltage, std::vector&lt; std::complex&lt; double &gt; &gt; power, std::vector&lt; BusType &gt; busType, std::vector&lt; ReactiveLimits &gt; reactiveLimit, double systemPowerBase)</div><div class="ttdoc">Update the elements after the power flow calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00304">ElectricCalculation.cpp:304</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00080">PowerElement.h:80</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a6663e7a20e96ee975bd0f7d54b8a6f70"><div class="ttname"><a href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation::ElectricCalculation</a></div><div class="ttdeci">ElectricCalculation()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00023">ElectricCalculation.cpp:23</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00082">PowerElement.h:82</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00025">ElectricCalculation.cpp:25</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="class_line_html_a400c8d0397ecdfe6c0a8380ee6bc7e1e"><div class="ttname"><a href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00449">Line.cpp:449</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_electric_calculation_8h.html b/docs/doxygen/html/_electric_calculation_8h.html
index 09344ca..dd36dcb 100644
--- a/docs/doxygen/html/_electric_calculation_8h.html
+++ b/docs/doxygen/html/_electric_calculation_8h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,23 +91,20 @@ $(document).ready(function(){initNavTree('_electric_calculation_8h.html','');});
<div class="title">ElectricCalculation.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
-
-<p>Base class of electric calculations, with general methods.
-<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;vector&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
<code>#include &quot;<a class="el" href="_element_8h_source.html">Element.h</a>&quot;</code><br />
<code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
-<code>#include &quot;Bus.h&quot;</code><br />
-<code>#include &quot;Capacitor.h&quot;</code><br />
-<code>#include &quot;IndMotor.h&quot;</code><br />
-<code>#include &quot;Inductor.h&quot;</code><br />
-<code>#include &quot;Line.h&quot;</code><br />
-<code>#include &quot;Load.h&quot;</code><br />
-<code>#include &quot;SyncGenerator.h&quot;</code><br />
-<code>#include &quot;SyncMotor.h&quot;</code><br />
-<code>#include &quot;Transformer.h&quot;</code><br />
-<code>#include &quot;PropertiesData.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_bus_8h_source.html">Bus.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_inductor_8h_source.html">Inductor.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_line_8h_source.html">Line.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_load_8h_source.html">Load.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_transformer_8h_source.html">Transformer.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>&quot;</code><br />
</div>
<p><a href="_electric_calculation_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
@@ -110,6 +113,7 @@ Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_reactive_limits.html">ReactiveLimits</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of electric calculations, with general methods. <a href="class_electric_calculation.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
@@ -136,11 +140,7 @@ Enumerations</h2></td></tr>
}</td></tr>
<tr class="separator:a73321f98d9ea4582f9de005ef5ed8594"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Base class of electric calculations, with general methods. </p>
-
-<p class="definition">Definition in file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
-</div></div><!-- contents -->
+</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/doxygen/html/_electric_calculation_8h_source.html b/docs/doxygen/html/_electric_calculation_8h_source.html
index 0957abb..b1c7bf6 100644
--- a/docs/doxygen/html/_electric_calculation_8h_source.html
+++ b/docs/doxygen/html/_electric_calculation_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,20 +88,30 @@ $(document).ready(function(){initNavTree('_electric_calculation_8h_source.html',
<div class="title">ElectricCalculation.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_electric_calculation_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ELECTRICCALCULATION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ELECTRICCALCULATION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;complex&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">enum</span> BusType { BUS_SLACK = 0, BUS_PV, BUS_PQ };</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">enum</span> ReactiveLimitsType {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; RL_UNLIMITED = 0, <span class="comment">// The bus can generate any ammount of reactive power.</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; RL_LIMITED, <span class="comment">// The bus reactive power generation is limited.</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; RL_UNLIMITED_SOURCE, <span class="comment">// The bus have at least one source of infinite reative power.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; RL_MAX_REACHED, <span class="comment">// Max limit reached</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; RL_MIN_REACHED, <span class="comment">// Min limit reached</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; RL_NONE_REACHED <span class="comment">// No limits reached</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">enum</span> YBusSequence { POSITIVE_SEQ = 0, NEGATIVE_SEQ, ZERO_SEQ };</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="struct_reactive_limits.html"> 34</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_reactive_limits.html">ReactiveLimits</a> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> maxLimit = 0.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">double</span> minLimit = 0.0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; ReactiveLimitsType maxLimitType = RL_UNLIMITED;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; ReactiveLimitsType minLimitType = RL_UNLIMITED;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ReactiveLimitsType limitReached = RL_NONE_REACHED;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_electric_calculation.html"> 49</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ~<a class="code" href="class_electric_calculation.html">ElectricCalculation</a>();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetElementsFromList(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetYBus(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; yBus,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; YBusSequence sequence = POSITIVE_SEQ,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">bool</span> includeSyncMachines = <span class="keyword">false</span>,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">bool</span> allLoadsAsImpedances = <span class="keyword">false</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> InvertMatrix(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; inverse);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateElementsPowerFlow(std::vector&lt;std::complex&lt;double&gt; &gt; voltage,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; std::vector&lt;BusType&gt; busType,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> ABCtoDQ0(std::complex&lt;double&gt; complexValue, <span class="keywordtype">double</span> angle, <span class="keywordtype">double</span>&amp; dValue, <span class="keywordtype">double</span>&amp; qValue);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> DQ0toABC(<span class="keywordtype">double</span> dValue, <span class="keywordtype">double</span> qValue, <span class="keywordtype">double</span> angle, std::complex&lt;double&gt;&amp; complexValue);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; GaussianElimination(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; array);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; Machines::SyncMachineModel GetMachineModel(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; ComplexMatrixTimesVector(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; vector);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> GetLUDecomposition(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixL,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixU);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; LUEvaluate(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; u,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; l,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; b);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24"> 128</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Bus*&gt; <a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_busList; }</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd"> 133</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Capacitor*&gt; <a class="code" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_capacitorList; }</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b"> 138</a></span>&#160; <span class="keyword">const</span> std::vector&lt;IndMotor*&gt; <a class="code" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_indMotorList; }</div><div class="line"><a name="l00143"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed"> 143</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Inductor*&gt; <a class="code" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_inductorList; }</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48"> 148</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Line*&gt; <a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lineList; }</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4"> 153</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Load*&gt; <a class="code" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_loadList; }</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840"> 158</a></span>&#160; <span class="keyword">const</span> std::vector&lt;SyncGenerator*&gt; <a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_syncGeneratorList; }</div><div class="line"><a name="l00163"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e"> 163</a></span>&#160; <span class="keyword">const</span> std::vector&lt;SyncMotor*&gt; <a class="code" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_syncMotorList; }</div><div class="line"><a name="l00168"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e"> 168</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Transformer*&gt; <a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_transformerList; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; std::vector&lt;PowerElement*&gt; m_powerElementList;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; std::vector&lt;Bus*&gt; m_busList;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; std::vector&lt;Capacitor*&gt; m_capacitorList;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::vector&lt;IndMotor*&gt; m_indMotorList;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::vector&lt;Inductor*&gt; m_inductorList;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; std::vector&lt;Line*&gt; m_lineList;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; std::vector&lt;Load*&gt; m_loadList;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; std::vector&lt;SyncGenerator*&gt; m_syncGeneratorList;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; std::vector&lt;SyncMotor*&gt; m_syncMotorList;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::vector&lt;Transformer*&gt; m_transformerList;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;};</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="preprocessor">#endif // ELECTRICCALCULATION_H</span></div><div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00168">ElectricCalculation.h:168</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a906ce639a5d6c5d7946fe8824f1b4f1b"><div class="ttname"><a href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">ElectricCalculation::GetIndMotorList</a></div><div class="ttdeci">const std::vector&lt; IndMotor * &gt; GetIndMotorList() const</div><div class="ttdoc">Get the induction motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00138">ElectricCalculation.h:138</a></div></div>
-<div class="ttc" id="struct_reactive_limits_html"><div class="ttname"><a href="struct_reactive_limits.html">ReactiveLimits</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00034">ElectricCalculation.h:34</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00128">ElectricCalculation.h:128</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00158">ElectricCalculation.h:158</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a8709a452d684d4224d32591c281ae0ed"><div class="ttname"><a href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">ElectricCalculation::GetInductorList</a></div><div class="ttdeci">const std::vector&lt; Inductor * &gt; GetInductorList() const</div><div class="ttdoc">Get the inductors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00143">ElectricCalculation.h:143</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="class_electric_calculation_html_a4ddabc6210146ae1ccae5f6911095bfd"><div class="ttname"><a href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">ElectricCalculation::GetCapacitorList</a></div><div class="ttdeci">const std::vector&lt; Capacitor * &gt; GetCapacitorList() const</div><div class="ttdoc">Get the capacitors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00133">ElectricCalculation.h:133</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aa5e278a1c5ba1b6159c21ae2ff2b23b4"><div class="ttname"><a href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">ElectricCalculation::GetLoadList</a></div><div class="ttdeci">const std::vector&lt; Load * &gt; GetLoadList() const</div><div class="ttdoc">Get the loads of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00153">ElectricCalculation.h:153</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_electric_calculation_html_ae9b5e9b51615141e88de0a0f99a7741e"><div class="ttname"><a href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">ElectricCalculation::GetSyncMotorList</a></div><div class="ttdeci">const std::vector&lt; SyncMotor * &gt; GetSyncMotorList() const</div><div class="ttdoc">Get the synchronous motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00163">ElectricCalculation.h:163</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00148">ElectricCalculation.h:148</a></div></div>
+<a href="_electric_calculation_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ELECTRICCALCULATION_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ELECTRICCALCULATION_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;complex&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">enum</span> BusType { BUS_SLACK = 0, BUS_PV, BUS_PQ };</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">enum</span> ReactiveLimitsType {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; RL_UNLIMITED = 0, <span class="comment">// The bus can generate any ammount of reactive power.</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; RL_LIMITED, <span class="comment">// The bus reactive power generation is limited.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; RL_UNLIMITED_SOURCE, <span class="comment">// The bus have at least one source of infinite reative power.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; RL_MAX_REACHED, <span class="comment">// Max limit reached</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; RL_MIN_REACHED, <span class="comment">// Min limit reached</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; RL_NONE_REACHED <span class="comment">// No limits reached</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">enum</span> YBusSequence { POSITIVE_SEQ = 0, NEGATIVE_SEQ, ZERO_SEQ };</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="struct_reactive_limits.html"> 51</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_reactive_limits.html">ReactiveLimits</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> maxLimit = 0.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> minLimit = 0.0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; ReactiveLimitsType maxLimitType = RL_UNLIMITED;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; ReactiveLimitsType minLimitType = RL_UNLIMITED;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; ReactiveLimitsType limitReached = RL_NONE_REACHED;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_electric_calculation.html"> 66</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ~<a class="code" href="class_electric_calculation.html">ElectricCalculation</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetElementsFromList(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetYBus(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; yBus,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; YBusSequence sequence = POSITIVE_SEQ,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">bool</span> includeSyncMachines = <span class="keyword">false</span>,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">bool</span> allLoadsAsImpedances = <span class="keyword">false</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> InvertMatrix(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; inverse);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateElementsPowerFlow(std::vector&lt;std::complex&lt;double&gt; &gt; voltage,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;BusType&gt; busType,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> ABCtoDQ0(std::complex&lt;double&gt; complexValue, <span class="keywordtype">double</span> angle, <span class="keywordtype">double</span>&amp; dValue, <span class="keywordtype">double</span>&amp; qValue);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> DQ0toABC(<span class="keywordtype">double</span> dValue, <span class="keywordtype">double</span> qValue, <span class="keywordtype">double</span> angle, std::complex&lt;double&gt;&amp; complexValue);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; GaussianElimination(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; array);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; Machines::SyncMachineModel GetMachineModel(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; ComplexMatrixTimesVector(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; vector);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> GetLUDecomposition(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; matrix,</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixL,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt;&amp; matrixU);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; LUEvaluate(std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; u,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; l,</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; b);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24"> 145</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Bus*&gt; <a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_busList; }</div><div class="line"><a name="l00150"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd"> 150</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Capacitor*&gt; <a class="code" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_capacitorList; }</div><div class="line"><a name="l00155"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b"> 155</a></span>&#160; <span class="keyword">const</span> std::vector&lt;IndMotor*&gt; <a class="code" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_indMotorList; }</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed"> 160</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Inductor*&gt; <a class="code" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_inductorList; }</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48"> 165</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Line*&gt; <a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lineList; }</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4"> 170</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Load*&gt; <a class="code" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_loadList; }</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840"> 175</a></span>&#160; <span class="keyword">const</span> std::vector&lt;SyncGenerator*&gt; <a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_syncGeneratorList; }</div><div class="line"><a name="l00180"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e"> 180</a></span>&#160; <span class="keyword">const</span> std::vector&lt;SyncMotor*&gt; <a class="code" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_syncMotorList; }</div><div class="line"><a name="l00185"></a><span class="lineno"><a class="line" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e"> 185</a></span>&#160; <span class="keyword">const</span> std::vector&lt;Transformer*&gt; <a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_transformerList; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;PowerElement*&gt; m_powerElementList;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; std::vector&lt;Bus*&gt; m_busList;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;Capacitor*&gt; m_capacitorList;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;IndMotor*&gt; m_indMotorList;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; std::vector&lt;Inductor*&gt; m_inductorList;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::vector&lt;Line*&gt; m_lineList;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; std::vector&lt;Load*&gt; m_loadList;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; std::vector&lt;SyncGenerator*&gt; m_syncGeneratorList;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; std::vector&lt;SyncMotor*&gt; m_syncMotorList;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; std::vector&lt;Transformer*&gt; m_transformerList;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;};</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="preprocessor">#endif // ELECTRICCALCULATION_H</span></div><div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00185">ElectricCalculation.h:185</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a906ce639a5d6c5d7946fe8824f1b4f1b"><div class="ttname"><a href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">ElectricCalculation::GetIndMotorList</a></div><div class="ttdeci">const std::vector&lt; IndMotor * &gt; GetIndMotorList() const</div><div class="ttdoc">Get the induction motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00155">ElectricCalculation.h:155</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="struct_reactive_limits_html"><div class="ttname"><a href="struct_reactive_limits.html">ReactiveLimits</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00051">ElectricCalculation.h:51</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00145">ElectricCalculation.h:145</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00175">ElectricCalculation.h:175</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a8709a452d684d4224d32591c281ae0ed"><div class="ttname"><a href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">ElectricCalculation::GetInductorList</a></div><div class="ttdeci">const std::vector&lt; Inductor * &gt; GetInductorList() const</div><div class="ttdoc">Get the inductors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00160">ElectricCalculation.h:160</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a4ddabc6210146ae1ccae5f6911095bfd"><div class="ttname"><a href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">ElectricCalculation::GetCapacitorList</a></div><div class="ttdeci">const std::vector&lt; Capacitor * &gt; GetCapacitorList() const</div><div class="ttdoc">Get the capacitors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00150">ElectricCalculation.h:150</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aa5e278a1c5ba1b6159c21ae2ff2b23b4"><div class="ttname"><a href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">ElectricCalculation::GetLoadList</a></div><div class="ttdeci">const std::vector&lt; Load * &gt; GetLoadList() const</div><div class="ttdoc">Get the loads of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00170">ElectricCalculation.h:170</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_ae9b5e9b51615141e88de0a0f99a7741e"><div class="ttname"><a href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">ElectricCalculation::GetSyncMotorList</a></div><div class="ttdeci">const std::vector&lt; SyncMotor * &gt; GetSyncMotorList() const</div><div class="ttdoc">Get the synchronous motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00180">ElectricCalculation.h:180</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00165">ElectricCalculation.h:165</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_electromechanical_8cpp_source.html b/docs/doxygen/html/_electromechanical_8cpp_source.html
index e256d0e..951a8d7 100644
--- a/docs/doxygen/html/_electromechanical_8cpp_source.html
+++ b/docs/doxygen/html/_electromechanical_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,39 +88,34 @@ $(document).ready(function(){initNavTree('_electromechanical_8cpp_source.html','
<div class="title">Electromechanical.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Electromechanical.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ControlElementSolver.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Electromechanical::Electromechanical(wxWindow* parent, std::vector&lt;Element*&gt; elementList, <a class="code" href="struct_simulation_data.html">SimulationData</a> data)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_parent = parent;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(elementList);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; SetEventTimeList();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_powerSystemBase = GetPowerValue(data.basePower, data.basePowerUnit);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_systemFreq = data.stabilityFrequency;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_simTime = data.stabilitySimulationTime;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_timeStep = data.timeStep;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_tolerance = data.stabilityTolerance;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_maxIterations = data.stabilityMaxIterations;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_ctrlTimeStepMultiplier = 1.0 / <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(data.controlTimeStepRatio);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_plotTime = data.plotTime;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_useCOI = data.useCOI;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Electromechanical::~Electromechanical() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">bool</span> Electromechanical::RunStabilityCalculation()</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxProgressDialog pbd(_(<span class="stringliteral">&quot;Running simulation&quot;</span>), _(<span class="stringliteral">&quot;Initializing...&quot;</span>), 100, m_parent,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_SMOOTH);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; SetSyncMachinesModel();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="comment">// Calculate the admittance matrix with the synchronous machines.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(m_yBus, m_powerSystemBase, POSITIVE_SEQ, <span class="keyword">false</span>, <span class="keyword">true</span>)) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;It was not possible to build the admittance matrix.&quot;</span>);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; InsertSyncMachinesOnYBus();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GetLUDecomposition(m_yBus, m_yBusL, m_yBusU);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Get buses voltages.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_vBus.clear();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_vBus.resize(m_busList.size());</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_vBus[data.number] = data.voltage;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// Calculate injected currents</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_iBus = ComplexMatrixTimesVector(m_yBus, m_vBus);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_iBus.size(); ++i) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(std::abs(m_iBus[i]) &lt; 1e-5) m_iBus[i] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span>(!InitializeDynamicElements()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> pbdTime = m_plotTime;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> currentTime = 0.0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> currentPlotTime = 0.0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> currentPbdTime = 0.0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">while</span>(currentTime &lt; m_simTime) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(HasEvent(currentTime)) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; SetEvent(currentTime);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; GetLUDecomposition(m_yBus, m_yBusL, m_yBusU);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(currentPlotTime &gt;= m_plotTime || currentTime == 0.0) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_timeVector.push_back(currentTime);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; SaveData();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; currentPlotTime = 0.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(currentPbdTime &gt; pbdTime) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(!pbd.Update((currentTime / m_simTime) * 100, wxString::Format(<span class="stringliteral">&quot;Time = %.2fs&quot;</span>, currentTime))) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_errorMsg = wxString::Format(_(<span class="stringliteral">&quot;Simulation cancelled at %.2fs.&quot;</span>), currentTime);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; pbd.Update(100);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; currentPbdTime = 0.0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(!SolveSynchronousMachines()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; currentTime += m_timeStep;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; currentPlotTime += m_timeStep;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; currentPbdTime += m_timeStep;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetEventTimeList()</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_eventTimeList.push_back(data.stabFaultTime);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_eventTimeList.push_back(data.stabFaultTime + data.stabFaultLength);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Switching</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_powerElementList.begin(), itEnd = m_powerElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = element-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size(); ++i) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_eventTimeList.push_back(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i]);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keywordtype">bool</span> Electromechanical::HasEvent(<span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_eventTimeList.size(); ++i) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(!m_eventOccurrenceList[i]) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(EventTrigger(m_eventTimeList[i], currentTime)) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_eventOccurrenceList[i] = <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;}</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetEvent(<span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">int</span> n = data.number;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="comment">// Insert fault</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(EventTrigger(data.stabFaultTime, currentTime)) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">double</span> r, x;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; r = data.stabFaultResistance;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; x = data.stabFaultReactance;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(x &lt; 1e-5) x = 1e-5;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(1.0, 0.0) / std::complex&lt;double&gt;(r, x);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Remove fault</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(EventTrigger(data.stabFaultTime + data.stabFaultLength, currentTime)) {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">double</span> r, x;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; r = data.stabFaultResistance;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; x = data.stabFaultReactance;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(x &lt; 1e-5) x = 1e-5;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(1.0, 0.0) / std::complex&lt;double&gt;(r, x);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// SyncGenerator switching</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">auto</span> swData = generator-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// Remove machine (only connected machines)</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; generator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_yBus[n][n] -= GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// Insert machine (only disconnected machines)</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_yBus[n][n] += GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; }</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Load switching</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_loadList.begin(), itEnd = m_loadList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *it;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">auto</span> swData = load-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="comment">// Remove load (only connected loads)</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keyword">auto</span> data = load-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">int</span> n = parentBus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; std::complex&lt;double&gt; v = parentBus-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(data.activePower, -data.reactivePower) / (v * v);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// Insert load (only disconnected load)</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keyword">auto</span> data = load-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">int</span> n = parentBus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; std::complex&lt;double&gt; v = parentBus-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(data.activePower, -data.reactivePower) / (v * v);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// Line switching</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">auto</span> swData = line-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// Remove line (only connected lines)</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_yBus[n1][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_yBus[n2][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_yBus[n1][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_yBus[n2][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_yBus[n1][n1] -= std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_yBus[n2][n2] -= std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Insert line (only disconnected lines)</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 2) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; }</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="comment">// Transformer switching</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">auto</span> swData = transformer-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="comment">// Remove transformer (only connected transformers)</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_yBus[n1][n2] -= -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_yBus[n2][n1] -= -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_yBus[n1][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; m_yBus[n2][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_yBus[n1][n1] -= y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; m_yBus[n1][n2] -= -(y / std::conj(a));</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; m_yBus[n2][n1] -= -(y / a);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; m_yBus[n2][n2] -= y;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// Insert transformer (only disconnected transformers)</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 2) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; m_yBus[n1][n2] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_yBus[n2][n1] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; m_yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; m_yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_yBus[n1][n2] += -(y / std::conj(a));</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; m_yBus[n2][n2] += y;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Capacitor switching</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_capacitorList.begin(), itEnd = m_capacitorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = *it;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">auto</span> swData = capacitor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="comment">// Remove capacitor (only connected capacitors)</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">auto</span> data = capacitor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="comment">// Insert capacitor (only disconnected capacitors)</span></div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span>(capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">auto</span> data = capacitor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">// Inductor switching</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_inductorList.begin(), itEnd = m_inductorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = *it;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">auto</span> swData = inductor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// Remove inductor (only connected inductors)</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">auto</span> data = inductor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="comment">// Insert inductor (only disconnected inductors)</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">auto</span> data = inductor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; }</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; }</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; }</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; }</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;}</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;<span class="keywordtype">void</span> Electromechanical::InsertSyncMachinesOnYBus()</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_yBus[n][n] += GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;}</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;<span class="keywordtype">bool</span> Electromechanical::EventTrigger(<span class="keywordtype">double</span> eventTime, <span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;{</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keywordflow">return</span> (((eventTime - m_timeStep) &lt; currentTime) &amp;&amp; (eventTime &gt;= currentTime));</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;}</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;std::complex&lt;double&gt; Electromechanical::GetSyncMachineAdmittance(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator)</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;{</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordtype">double</span> xd = 0.0;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordtype">double</span> xq = 0.0;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; xq = data.transXd * k;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; xd = xq;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; xd = data.transXd * k;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; xq = data.transXq * k;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; xq = data.syncXq * k;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) {</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; xq = data.syncXd * k;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; }</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; xd = data.transXd * k;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; xq = data.transXq * k;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) xq = xd;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4:</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; xd = data.subXd * k;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; xq = data.subXq * k;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(xd == 0.0) xd = xq;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) xq = xd;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordtype">double</span> xdq = 0.5 * (xd + xq);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">return</span> (std::complex&lt;double&gt;(ra, -xdq) / std::complex&lt;double&gt;(ra * ra + xd * xq, 0.0));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;}</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;<span class="keywordtype">bool</span> Electromechanical::InitializeDynamicElements()</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;{</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="comment">// Buses</span></div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; data.stabVoltageVector.clear();</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; }</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="comment">// Synchronous generators</span></div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">auto</span> dataPU = syncGenerator-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; data.terminalVoltage = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; std::complex&lt;double&gt; conjS(dataPU.activePower, -dataPU.reactivePower);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; std::complex&lt;double&gt; conjV = std::conj(data.terminalVoltage);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; std::complex&lt;double&gt; ia = conjS / conjV;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordtype">double</span> xd = data.syncXd * k;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">double</span> xq = data.syncXq * k;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_1) {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; xq = data.transXd * k;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; xd = xq;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.syncXq == 0.0)</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; xq = data.syncXd * k;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="comment">// Initialize state variables</span></div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; std::complex&lt;double&gt; eq0 = data.terminalVoltage + std::complex&lt;double&gt;(ra, xq) * ia;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; data.delta = std::arg(eq0);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">double</span> fi0 = std::arg(ia);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">double</span> id0, iq0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="comment">// ABCtoDQ0(ia, data.delta - fi0, id0, iq0);</span></div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; iq0 = std::abs(ia) * std::cos(data.delta - fi0);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; id0 = -std::abs(ia) * std::sin(data.delta - fi0);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; data.initialFieldVoltage = std::abs(eq0) - (xd - xq) * id0;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; data.fieldVoltage = data.initialFieldVoltage;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; data.pm = std::real((data.terminalVoltage * std::conj(ia)) + (std::abs(ia) * std::abs(ia) * ra));</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; data.speed = 2.0 * M_PI * m_systemFreq;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; data.pe = data.pm;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; data.electricalPower = std::complex&lt;double&gt;(dataPU.activePower, dataPU.reactivePower);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="comment">// Variables to extrapolate.</span></div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; data.oldIq = iq0;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; data.oldId = id0;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; data.oldPe = data.pe;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// double tranXd = data.transXd * k;</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="comment">// data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</span></div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; data.tranEq = std::abs(eq0);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordtype">double</span> tranXq = data.transXq * k;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>(tranXq == 0.0) tranXq = tranXd;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; data.tranEd = -(xq - tranXq) * iq0;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4: {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordtype">double</span> subXd = data.subXd * k;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordtype">double</span> subXq = data.subXq * k;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; data.subEq = data.tranEq + (tranXd - subXd) * id0;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; data.subEd = -(xq - subXq) * iq0;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordtype">double</span> tranXq = data.transXq * k;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordtype">double</span> subXd = data.subXd * k;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordtype">double</span> subXq = data.subXq * k;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; data.tranEd = -(xq - tranXq) * iq0;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; data.subEq = data.tranEq + (tranXd - subXd) * id0;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; data.subEd = data.tranEd - (tranXq - subXq) * iq0;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="comment">// Initialize controllers</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>(data.useAVR) {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>(data.avrSolver) <span class="keyword">delete</span> data.avrSolver;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; data.avrSolver = <span class="keyword">new</span> <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(data.avr, m_timeStep * m_ctrlTimeStepMultiplier, m_tolerance,</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">false</span>, std::abs(data.terminalVoltage), m_parent);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span>(!data.avrSolver-&gt;IsOK()) {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Error on initializate the AVR of \&quot;&quot;</span>) + data.name + _(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; }</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">if</span>(data.useSpeedGovernor) {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>(data.speedGovSolver) <span class="keyword">delete</span> data.speedGovSolver;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; data.speedGovSolver = <span class="keyword">new</span> <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(data.speedGov, m_timeStep * m_ctrlTimeStepMultiplier,</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; m_tolerance, <span class="keyword">false</span>, data.speed, m_parent);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">if</span>(!data.speedGovSolver-&gt;IsOK()) {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Error on initializate the speed governor of \&quot;&quot;</span>) + data.name + _(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; }</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">// Initialize open circuit machine.</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="comment">// Reset plot data</span></div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; data.terminalVoltageVector.clear();</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; data.electricalPowerVector.clear();</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; data.mechanicalPowerVector.clear();</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; data.freqVector.clear();</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; data.fieldVoltageVector.clear();</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; data.deltaVector.clear();</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; }</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; CalculateReferenceSpeed();</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;}</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateMachinesCurrents()</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;{</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// Reset injected currents vector</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_iBus.size(); ++i) m_iBus[i] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; }</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordtype">double</span> xd = 0.0;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordtype">double</span> xq = 0.0;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; std::complex&lt;double&gt; e = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; std::complex&lt;double&gt; v = m_vBus[n];</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; std::complex&lt;double&gt; iInj = m_iBus[n];</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordtype">double</span> xdq = 0.0;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; DQ0toABC(data.tranEd, data.tranEq, data.delta, e);</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; xq = data.transXd * k;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; xd = xq;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; DQ0toABC(data.tranEd, data.tranEq, data.delta, e);</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; xd = data.transXd * k;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; xq = data.transXq * k;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; xq = data.syncXq * k;</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) {</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; xq = data.syncXd * k;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; }</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; }</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; DQ0toABC(data.tranEd, data.tranEq, data.delta, e);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; xd = data.transXd * k;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; xq = data.transXq * k;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) xq = xd;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4:</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; DQ0toABC(data.subEd, data.subEq, data.delta, e);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; xd = data.subXd * k;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; xq = data.subXq * k;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">if</span>(xd == 0.0) xd = xq;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">if</span>(xq == 0.0) xq = xd;</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; }</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; xdq = 0.5 * (xd + xq);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; std::complex&lt;double&gt; y0 = std::complex&lt;double&gt;(ra, -xdq) / std::complex&lt;double&gt;(ra * ra + xd * xq, 0.0);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; std::complex&lt;double&gt; iUnadj = y0 * e;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; std::complex&lt;double&gt; iAdj =</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; std::complex&lt;double&gt;(0.0, -((0.5 * (xq - xd)) / (ra * ra + xd * xq))) * (std::conj(e) - std::conj(v));</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; iAdj = iAdj * std::cos(2.0 * data.delta) + iAdj * std::complex&lt;double&gt;(0.0, std::sin(2.0 * data.delta));</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; iInj = iUnadj + iAdj;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; m_iBus[n] += iInj;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; std::complex&lt;double&gt; iMachine = iInj - y0 * v;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; data.electricalPower = v * std::conj(iMachine);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; data.electricalPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; }</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160;}</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateIntegrationConstants(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> iq, <span class="keywordtype">double</span> k)</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160;{</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; CalculateReferenceSpeed();</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq, subXd, subXq;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160;</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="keywordtype">double</span> transTd0, transTq0, subTd0, subTq0;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; transTd0 = data.transTd0;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; transTq0 = data.transTq0;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; subTd0 = data.subTd0;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; subTq0 = data.subTq0;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keywordflow">if</span>(subTd0 == 0.0) subTd0 = subTq0;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">if</span>(subTq0 == 0.0) subTq0 = subTd0;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="comment">// Speed</span></div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; data.icSpeed.m = m_timeStep / ((4.0f * data.inertia / m_refSpeed) / k + m_timeStep * data.damping * k);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; data.icSpeed.c = (1.0f - 2.0f * data.icSpeed.m * data.damping * k) * data.speed +</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; data.icSpeed.m * (data.pm - data.pe + 2.0f * m_refSpeed * data.damping * k);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// Delta</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; data.icDelta.m = 0.5f * m_timeStep;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; data.icDelta.c = data.delta + data.icDelta.m * (data.speed - 2.0f * m_refSpeed);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="comment">// Eq&#39;</span></div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_2 || data.model == Machines::SM_MODEL_3 || data.model == Machines::SM_MODEL_4 ||</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; data.icTranEq.m = m_timeStep / (2.0f * transTd0 + m_timeStep);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; data.icTranEq.c = (1.0f - 2.0 * data.icTranEq.m) * data.tranEq +</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * id);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="comment">// Ed&#39;</span></div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_3 || data.model == Machines::SM_MODEL_4 || data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; data.icTranEd.m = m_timeStep / (2.0f * transTq0 + m_timeStep);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; data.icTranEd.c = (1.0f - 2.0f * data.icTranEd.m) * data.tranEd - data.icTranEd.m * (syncXq - transXq) * iq;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// Eq&#39;&#39;</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_4 || data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; data.icSubEq.m = m_timeStep / (2.0f * subTd0 + m_timeStep);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; data.icSubEq.c =</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; (1.0f - 2.0f * data.icSubEq.m) * data.subEq + data.icSubEq.m * (data.tranEq + (transXd - subXd) * id);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="comment">// Ed&#39;&#39;</span></div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_4) {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; data.icSubEd.m = m_timeStep / (2.0f * subTq0 + m_timeStep);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; data.icSubEd.c = (1.0f - 2.0f * data.icSubEd.m) * data.subEd - data.icSubEd.m * (syncXq - subXq) * iq;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; }</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; data.icSubEd.m = m_timeStep / (2.0f * subTq0 + m_timeStep);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; data.icSubEd.c =</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; (1.0f - 2.0f * data.icSubEd.m) * data.subEd + data.icSubEd.m * (data.tranEd - (transXq - subXq) * iq);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; }</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160;}</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;<span class="keywordtype">bool</span> Electromechanical::SolveSynchronousMachines()</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160;{</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="comment">// CalculateMachinesCurrents();</span></div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordtype">double</span> id, iq, pe;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; pe = data.pe;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; std::complex&lt;double&gt; iMachine = std::conj(data.electricalPower) / std::conj(m_vBus[n]);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; ABCtoDQ0(iMachine, data.delta, <span class="keywordtype">id</span>, iq);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160;</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="comment">// Calculate integration constants.</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; CalculateIntegrationConstants(syncGenerator, <span class="keywordtype">id</span>, iq, k);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; CalculateSyncMachineNonIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, pe, k);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="comment">// Extrapolate nonintegrable variables.</span></div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordtype">id</span> = 2.0 * <span class="keywordtype">id</span> - data.oldId;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; iq = 2.0 * iq - data.oldIq;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; pe = 2.0 * pe - data.oldPe;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; CalculateSyncMachineIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, pe, k);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; CalculateIntegrationConstants(syncGenerator, 0.0f, 0.0f);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; }</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; m_wError = 0;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordtype">double</span> error = 1.0;</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordtype">int</span> iterations = 0;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">while</span>(error &gt; m_tolerance) {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; error = 0.0;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="comment">// Calculate the injected currents.</span></div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; CalculateMachinesCurrents();</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160;</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="comment">// Calculate the buses voltages.</span></div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; m_vBus = LUEvaluate(m_yBusU, m_yBusL, m_iBus);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="comment">// Solve machine equations.</span></div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordtype">double</span> id, iq, pe;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; CalculateSyncMachineNonIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, pe, k);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keywordtype">double</span> genError = CalculateSyncMachineIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, pe, k);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>(genError &gt; error) error = genError;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; }</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; ++iterations;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span>(iterations &gt; m_maxIterations) {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Impossible to solve the synchronous generators.\nCheck the system parameters and/or &quot;</span></div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="stringliteral">&quot;decrease the time step.&quot;</span>);</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; m_numIt = iterations;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="comment">// Solve controllers.</span></div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordtype">int</span> ctrlRatio = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(1 / m_ctrlTimeStepMultiplier);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">if</span>(data.useAVR &amp;&amp; data.avrSolver) {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctrlRatio; ++i) data.avrSolver-&gt;SolveNextStep(std::abs(data.terminalVoltage));</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; data.fieldVoltage = data.initialFieldVoltage + data.avrSolver-&gt;GetLastSolution();</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; }</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">if</span>(data.useSpeedGovernor &amp;&amp; data.speedGovSolver) {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctrlRatio; ++i) data.speedGovSolver-&gt;SolveNextStep(data.speed);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; data.pm = data.speedGovSolver-&gt;GetLastSolution();</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160;</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;}</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;<span class="keywordtype">double</span> Electromechanical::GetPowerValue(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> unit)</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;{</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">switch</span>(unit) {</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">return</span> value * 1e3;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">return</span> value * 1e6;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <span class="keywordflow">return</span> value * 1e3;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">return</span> value * 1e6;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">return</span> value * 1e3;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">return</span> value * 1e6;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; }</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">return</span> 0.0;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;}</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;<span class="keywordtype">void</span> Electromechanical::SaveData()</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;{</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keywordflow">if</span>(data.plotSyncMachine) {</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; data.terminalVoltageVector.push_back(data.terminalVoltage);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; data.electricalPowerVector.push_back(data.electricalPower);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; data.mechanicalPowerVector.push_back(data.pm);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; data.freqVector.push_back(data.speed / (2.0f * M_PI));</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; data.fieldVoltageVector.push_back(data.fieldVoltage);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; data.deltaVector.push_back(wxRadToDeg(data.delta));</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; }</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">if</span>(data.plotBus) {</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; data.stabVoltageVector.push_back(m_vBus[data.number]);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; }</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; }</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; m_wErrorVector.push_back(m_wError);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; m_numItVector.push_back(m_numIt);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;}</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetSyncMachinesModel()</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;{</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; data.model = GetMachineModel(syncGenerator);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160;}</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateSyncMachineNonIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>,</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordtype">double</span>&amp; iq,</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordtype">double</span>&amp; pe,</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <span class="keywordtype">double</span> k)</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160;{</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; data.terminalVoltage = m_vBus[n];</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordtype">double</span> vd, vq;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; ABCtoDQ0(data.terminalVoltage, data.delta, vd, vq);</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; std::complex&lt;double&gt; iMachine = std::conj(data.electricalPower) / std::conj(m_vBus[n]);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; ABCtoDQ0(iMachine, data.delta, <span class="keywordtype">id</span>, iq);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; pe = <span class="keywordtype">id</span> * vd + iq * vq + (<span class="keywordtype">id</span> * <span class="keywordtype">id</span> + iq * iq) * data.armResistance * k;</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; pe = <span class="keywordtype">id</span> = iq = 0.0f;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; }</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; data.pe = pe;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; data.oldId = id;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; data.oldIq = iq;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;}</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;<span class="keywordtype">double</span> Electromechanical::CalculateSyncMachineIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordtype">double</span> <span class="keywordtype">id</span>,</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordtype">double</span> iq,</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordtype">double</span> pe,</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordtype">double</span> k)</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;{</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordtype">double</span> error = 0.0;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="comment">// Mechanical differential equations.</span></div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordtype">double</span> w = data.icSpeed.<a class="code" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">c</a> + data.icSpeed.m * (data.pm - pe);</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; error = std::max(error, std::abs(data.speed - w) / m_refSpeed);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; m_wError += std::abs(data.speed - w) / m_refSpeed;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160;</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordtype">double</span> delta = data.icDelta.c + data.icDelta.m * w;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; error = std::max(error, std::abs(data.delta - delta));</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; data.speed = w;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; data.delta = delta;</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="comment">// Electrical differential equations</span></div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="comment">// There is no differential equations.</span></div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordtype">double</span> tranEq =</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (data.syncXd * k - data.transXd * k) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordtype">double</span> tranEq = data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordtype">double</span> tranEd = data.icTranEd.c - data.icTranEd.m * (syncXq - transXq) * iq;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; error = std::max(error, std::abs(data.tranEd - tranEd));</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; data.tranEd = tranEd;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; std::complex&lt;double&gt; e;</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; DQ0toABC(data.tranEd, data.tranEq, data.delta, e);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; data.terminalVoltage = e;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; }</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4: {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, subXd, subXq;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordtype">double</span> tranEq = data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="keywordtype">double</span> subEq = data.icSubEq.c + data.icSubEq.m * (tranEq + (transXd - subXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; error = std::max(error, std::abs(data.subEq - subEq));</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordtype">double</span> subEd = data.icSubEd.c - data.icSubEd.m * (syncXq - subXq) * iq;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; error = std::max(error, std::abs(data.subEd - subEd));</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; data.subEq = subEq;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; data.subEd = subEd;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq, subXd, subXq;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordtype">double</span> tranEq = data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordtype">double</span> tranEd = data.icTranEd.c - data.icTranEd.m * (syncXq - transXq) * iq;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; error = std::max(error, std::abs(data.tranEd - tranEd));</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordtype">double</span> subEq = data.icSubEq.c + data.icSubEq.m * (tranEq + (transXd - subXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; error = std::max(error, std::abs(data.subEq - subEq));</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordtype">double</span> subEd = data.icSubEd.c + data.icSubEd.m * (tranEd - (transXq - subXq) * iq);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; error = std::max(error, std::abs(data.subEd - subEd));</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; data.tranEd = tranEd;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; data.subEq = subEq;</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; data.subEd = subEd;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">return</span> error;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;}</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateReferenceSpeed()</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;{</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span>(m_useCOI) {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordtype">double</span> sumHW = 0.0;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordtype">double</span> sumH = 0.0;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <span class="keywordtype">double</span> oldBase = GetPowerValue(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; }</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; sumH += data.inertia / k;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; sumHW += data.inertia * data.speed / k;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; }</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; }</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; m_refSpeed = sumHW / sumH;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; m_refSpeed = 2.0 * M_PI * m_systemFreq;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; }</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;}</div><div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00218">Element.cpp:218</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00077">PowerElement.h:77</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00054">PowerElement.h:54</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00076">PowerElement.h:76</a></div></div>
-<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00011">PropertiesData.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="struct_integration_constant_html_afc3598097377951b84492d087a06b455"><div class="ttname"><a href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">IntegrationConstant::c</a></div><div class="ttdeci">double c</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00089">PowerElement.h:89</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00056">ElectricCalculation.cpp:56</a></div></div>
-<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00165">PowerElement.h:165</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00008">ElectricCalculation.cpp:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00053">PowerElement.h:53</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electromechanical_8h.html">Electromechanical.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_solver_8h.html">ControlElementSolver.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Electromechanical::Electromechanical(wxWindow* parent, std::vector&lt;Element*&gt; elementList, <a class="code" href="struct_simulation_data.html">SimulationData</a> data)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_parent = parent;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(elementList);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; SetEventTimeList();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_bus.html">Bus</a> dummyBus;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_powerSystemBase = dummyBus.GetValueFromUnit(data.basePower, data.basePowerUnit);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_systemFreq = data.stabilityFrequency;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_simTime = data.stabilitySimulationTime;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_timeStep = data.timeStep;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_tolerance = data.stabilityTolerance;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_maxIterations = data.stabilityMaxIterations;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_ctrlTimeStepMultiplier = 1.0 / <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span>(data.controlTimeStepRatio);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_plotTime = data.plotTime;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_useCOI = data.useCOI;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;Electromechanical::~Electromechanical() {}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">bool</span> Electromechanical::RunStabilityCalculation()</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxProgressDialog pbd(_(<span class="stringliteral">&quot;Running simulation&quot;</span>), _(<span class="stringliteral">&quot;Initializing...&quot;</span>), 100, m_parent,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxPD_APP_MODAL | wxPD_AUTO_HIDE | wxPD_CAN_ABORT | wxPD_SMOOTH);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; SetSyncMachinesModel();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Calculate the admittance matrix with the synchronous machines.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(m_yBus, m_powerSystemBase, POSITIVE_SEQ, <span class="keyword">false</span>, <span class="keyword">true</span>)) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;It was not possible to build the admittance matrix.&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; InsertSyncMachinesOnYBus();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; GetLUDecomposition(m_yBus, m_yBusL, m_yBusU);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Get buses voltages.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_vBus.clear();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_vBus.resize(m_busList.size());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_vBus[data.number] = data.voltage;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Calculate injected currents</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_iBus = ComplexMatrixTimesVector(m_yBus, m_vBus);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_iBus.size(); ++i) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(std::abs(m_iBus[i]) &lt; 1e-5) m_iBus[i] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(!InitializeDynamicElements()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> pbdTime = m_plotTime;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> currentTime = 0.0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">double</span> currentPlotTime = 0.0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> currentPbdTime = 0.0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">while</span>(currentTime &lt; m_simTime) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(HasEvent(currentTime)) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; SetEvent(currentTime);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; GetLUDecomposition(m_yBus, m_yBusL, m_yBusU);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(currentPlotTime &gt;= m_plotTime || currentTime == 0.0) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_timeVector.push_back(currentTime);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; SaveData();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; currentPlotTime = 0.0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(currentPbdTime &gt; pbdTime) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(!pbd.Update((currentTime / m_simTime) * 100, wxString::Format(<span class="stringliteral">&quot;Time = %.2fs&quot;</span>, currentTime))) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_errorMsg = wxString::Format(_(<span class="stringliteral">&quot;Simulation cancelled at %.2fs.&quot;</span>), currentTime);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; pbd.Update(100);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; currentPbdTime = 0.0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(!SolveSynchronousMachines()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; currentTime += m_timeStep;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; currentPlotTime += m_timeStep;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; currentPbdTime += m_timeStep;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetEventTimeList()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_eventTimeList.push_back(data.stabFaultTime);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_eventTimeList.push_back(data.stabFaultTime + data.stabFaultLength);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Switching</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_powerElementList.begin(), itEnd = m_powerElementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = element-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size(); ++i) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_eventTimeList.push_back(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i]);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_eventOccurrenceList.push_back(<span class="keyword">false</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keywordtype">bool</span> Electromechanical::HasEvent(<span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_eventTimeList.size(); ++i) {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>(!m_eventOccurrenceList[i]) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(EventTrigger(m_eventTimeList[i], currentTime)) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_eventOccurrenceList[i] = <span class="keyword">true</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetEvent(<span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">int</span> n = data.number;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Insert fault</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(EventTrigger(data.stabFaultTime, currentTime)) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordtype">double</span> r, x;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; r = data.stabFaultResistance;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; x = data.stabFaultReactance;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(x &lt; 1e-5) x = 1e-5;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(1.0, 0.0) / std::complex&lt;double&gt;(r, x);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Remove fault</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(EventTrigger(data.stabFaultTime + data.stabFaultLength, currentTime)) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">double</span> r, x;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; r = data.stabFaultResistance;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; x = data.stabFaultReactance;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(x &lt; 1e-5) x = 1e-5;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(1.0, 0.0) / std::complex&lt;double&gt;(r, x);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="comment">// SyncGenerator switching</span></div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">auto</span> swData = generator-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Remove machine (only connected machines)</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; generator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_yBus[n][n] -= GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Insert machine (only disconnected machines)</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_yBus[n][n] += GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// Load switching</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_loadList.begin(), itEnd = m_loadList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *it;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> swData = load-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Remove load (only connected loads)</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">auto</span> data = load-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">int</span> n = parentBus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::complex&lt;double&gt; v = parentBus-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(data.activePower, -data.reactivePower) / (v * v);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Insert load (only disconnected load)</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">auto</span> data = load-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordtype">int</span> n = parentBus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; std::complex&lt;double&gt; v = parentBus-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(data.activePower, -data.reactivePower) / (v * v);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="comment">// Line switching</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">auto</span> swData = line-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="comment">// Remove line (only connected lines)</span></div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_yBus[n1][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_yBus[n2][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_yBus[n1][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_yBus[n2][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_yBus[n1][n1] -= std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_yBus[n2][n2] -= std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="comment">// Insert line (only disconnected lines)</span></div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 2) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_yBus[n1][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_yBus[n2][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_yBus[n1][n1] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_yBus[n2][n2] += std::complex&lt;double&gt;(0.0, data.capSusceptance / 2.0);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// Transformer switching</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">auto</span> swData = transformer-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="comment">// Remove transformer (only connected transformers)</span></div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; m_yBus[n1][n2] -= -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_yBus[n2][n1] -= -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; m_yBus[n1][n1] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; m_yBus[n2][n2] -= 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_yBus[n1][n1] -= y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; m_yBus[n1][n2] -= -(y / std::conj(a));</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; m_yBus[n2][n1] -= -(y / a);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; m_yBus[n2][n2] -= y;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; }</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="comment">// Insert transformer (only disconnected transformers)</span></div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 2) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; m_yBus[n1][n2] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; m_yBus[n2][n1] += -1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_yBus[n1][n1] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; m_yBus[n2][n2] += 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Complex turns ratio</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="comment">// Transformer admitance</span></div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; std::complex&lt;double&gt; y = 1.0 / std::complex&lt;double&gt;(data.resistance, data.indReactance);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; m_yBus[n1][n1] += y / std::pow(std::abs(a), 2.0);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; m_yBus[n1][n2] += -(y / std::conj(a));</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; m_yBus[n2][n1] += -(y / a);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; m_yBus[n2][n2] += y;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// Capacitor switching</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_capacitorList.begin(), itEnd = m_capacitorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = *it;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">auto</span> swData = capacitor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="comment">// Remove capacitor (only connected capacitors)</span></div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">auto</span> data = capacitor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; }</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// Insert capacitor (only disconnected capacitors)</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keyword">auto</span> data = capacitor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(0.0, data.reactivePower);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">// Inductor switching</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_inductorList.begin(), itEnd = m_inductorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = *it;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">auto</span> swData = inductor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); ++i) {</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(EventTrigger(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i], currentTime)) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">// Remove inductor (only connected inductors)</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> &amp;&amp; inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">auto</span> data = inductor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; m_yBus[n][n] -= std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="comment">// Insert inductor (only disconnected inductors)</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> &amp;&amp; !inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size() == 1) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>(inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(<span class="keyword">true</span>)) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keyword">auto</span> data = inductor-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; m_yBus[n][n] += std::complex&lt;double&gt;(0.0, -data.reactivePower);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; }</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; }</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;}</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;<span class="keywordtype">void</span> Electromechanical::InsertSyncMachinesOnYBus()</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;{</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator = *it;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span>(generator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(generator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; m_yBus[n][n] += GetSyncMachineAdmittance(generator);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;}</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;<span class="keywordtype">bool</span> Electromechanical::EventTrigger(<span class="keywordtype">double</span> eventTime, <span class="keywordtype">double</span> currentTime)</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;{</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">return</span> (((eventTime - m_timeStep) &lt; currentTime) &amp;&amp; (eventTime &gt;= currentTime));</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;}</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;std::complex&lt;double&gt; Electromechanical::GetSyncMachineAdmittance(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator)</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;{</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">auto</span> data = generator-&gt;GetElectricalData();</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordtype">double</span> oldBase = generator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">auto</span> smModelData = GetSyncMachineModelData(generator);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordtype">double</span> xd = smModelData.xd;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordtype">double</span> xq = smModelData.xq;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordtype">double</span> xdq = 0.5 * (xd + xq);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">return</span> (std::complex&lt;double&gt;(ra, -xdq) / std::complex&lt;double&gt;(ra * ra + xd * xq, 0.0));</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;}</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;<span class="keywordtype">bool</span> Electromechanical::InitializeDynamicElements()</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160;{</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="comment">// Buses</span></div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; data.stabVoltageVector.clear();</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; }</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="comment">// Synchronous generators</span></div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">auto</span> dataPU = syncGenerator-&gt;GetPUElectricalData(m_powerSystemBase);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordtype">double</span> oldBase = syncGenerator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; data.terminalVoltage = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; std::complex&lt;double&gt; conjS(dataPU.activePower, -dataPU.reactivePower);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; std::complex&lt;double&gt; vt = data.terminalVoltage;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; std::complex&lt;double&gt; ia = conjS / std::conj(vt);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordtype">double</span> xd = data.syncXd * k;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordtype">double</span> xq = data.syncXq * k;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_1) {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; xq = data.transXd * k;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; xd = xq;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.syncXq == 0.0)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; xq = data.syncXd * k;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordtype">double</span> sd = 1.0;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordtype">double</span> sq = 1.0;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordtype">double</span> satF = 1.0;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">double</span> xp = data.potierReactance * k;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordtype">bool</span> hasSaturation = <span class="keyword">false</span>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">if</span>(data.satFactor != 0.0) { <span class="comment">// Have saturation.</span></div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; satF = (data.satFactor - 1.2) / std::pow(1.2, 7);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(xp == 0.0) xp = 0.8 * (data.transXd * k);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; hasSaturation = <span class="keyword">true</span>;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="comment">// Initialize state variables</span></div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; std::complex&lt;double&gt; eq0 = vt + std::complex&lt;double&gt;(ra, xq) * ia;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordtype">double</span> delta = std::arg(eq0);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">double</span> id0, iq0, vd0, vq0;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; ABCtoDQ0(ia, delta, id0, iq0);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; ABCtoDQ0(vt, delta, vd0, vq0);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// Initialize saturation</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordtype">double</span> xqs = xq;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordtype">double</span> xds = xd;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">if</span>(hasSaturation) {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">double</span> oldDelta = 0;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">bool</span> exit = <span class="keyword">false</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordtype">int</span> numIt = 0;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">while</span>(!exit) {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; oldDelta = delta;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; ABCtoDQ0(ia, delta, id0, iq0);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; ABCtoDQ0(vt, delta, vd0, vq0);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// Direct-axis Potier voltage.</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordtype">double</span> epd = vd0 + ra * id0 + xp * iq0;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; sq = 1.0 + satF * (xq / xd) * std::pow(epd, 6);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; xqs = (xq - xp) / sq + xp;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; eq0 = data.terminalVoltage + std::complex&lt;double&gt;(ra, xqs) * ia;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; delta = std::arg(eq0);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(std::abs(delta - oldDelta) &lt; m_saturationTolerance) {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; exit = <span class="keyword">true</span>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(numIt &gt;= m_maxIterations) {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Error on initializate the saturation values of \&quot;&quot;</span>) + data.name + _(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; }</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; numIt++;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="comment">// Quadrature-axis Potier voltage.</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">double</span> epq = vq0 + ra * iq0 - xp * id0;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; sd = 1.0 + satF * std::pow(epq, 6);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; xds = (xd - xp) / sd + xp;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">/*CalculateSyncMachineSaturation(syncGenerator, id0, iq0, sq, sd, true, k);</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="comment"> xqs = (xq - xp) / sq + xp;</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;<span class="comment"> xds = (xd - xp) / sd + xp;</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;<span class="comment"> eq0 = data.terminalVoltage + std::complex&lt;double&gt;(ra, xqs) * ia;</span></div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;<span class="comment"> delta = std::arg(eq0);*/</span></div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; }</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordtype">double</span> ef0 = vq0 + ra * iq0 - xds * id0;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; data.initialFieldVoltage = ef0 * sd;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; data.fieldVoltage = data.initialFieldVoltage;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; data.pm = std::real((data.terminalVoltage * std::conj(ia)) + (std::abs(ia) * std::abs(ia) * ra));</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; data.speed = 2.0 * M_PI * m_systemFreq;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; data.delta = delta;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; data.pe = data.pm;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; data.electricalPower = std::complex&lt;double&gt;(dataPU.activePower, dataPU.reactivePower);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; data.sd = sd;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; data.sq = sq;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; data.id = id0;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; data.iq = iq0;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Variables to extrapolate.</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; data.oldIq = iq0;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; data.oldId = id0;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; data.oldPe = data.pe;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; data.oldSd = sd;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; data.oldSq = sq;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; m_sdC = sd;</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; m_sqC = sq;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// double tranXd = data.transXd * k;</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="comment">// data.tranEq = data.initialFieldVoltage + (xd - tranXd) * id0;</span></div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; data.tranEq = std::abs(eq0);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; data.tranEq = ef0 + (xd - tranXd) * (id0 / sd);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordtype">double</span> tranXq = data.transXq * k;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">if</span>(tranXq == 0.0) tranXq = tranXd;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; data.tranEq = ef0 + (xd - tranXd) * (id0 / sd);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; data.tranEd = -(xq - tranXq) * (iq0 / sq);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; data.subEd = 0.0;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; data.subEq = 0.0;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4: {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordtype">double</span> subXd = data.subXd * k;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordtype">double</span> subXq = data.subXq * k;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; data.tranEq = ef0 + (xd - tranXd) * (id0 / sd);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; data.tranEd = 0.0;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; data.subEq = data.tranEq + (tranXd - subXd) * (id0 / sd);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; data.subEd = -(xq - subXq) * (iq0 / sq);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordtype">double</span> tranXd = data.transXd * k;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordtype">double</span> tranXq = data.transXq * k;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordtype">double</span> subXd = data.subXd * k;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordtype">double</span> subXq = data.subXq * k;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; data.tranEq = ef0 + (xd - tranXd) * (id0 / sd);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; data.tranEd = -(xq - tranXq) * (iq0 / sq);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; data.subEq = data.tranEq + (tranXd - subXd) * (id0 / sd);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; data.subEd = data.tranEd - (tranXq - subXq) * (iq0 / sq);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; }</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="comment">// Initialize controllers</span></div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">if</span>(data.useAVR) {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">if</span>(data.avrSolver) <span class="keyword">delete</span> data.avrSolver;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; data.avrSolver = <span class="keyword">new</span> <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(data.avr, m_timeStep * m_ctrlTimeStepMultiplier, m_tolerance,</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">false</span>, std::abs(data.terminalVoltage), m_parent);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">if</span>(!data.avrSolver-&gt;IsOK()) {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Error on initializate the AVR of \&quot;&quot;</span>) + data.name + _(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; }</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; }</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">if</span>(data.useSpeedGovernor) {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">if</span>(data.speedGovSolver) <span class="keyword">delete</span> data.speedGovSolver;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; data.speedGovSolver = <span class="keyword">new</span> <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>(data.speedGov, m_timeStep * m_ctrlTimeStepMultiplier,</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; m_tolerance, <span class="keyword">false</span>, data.speed, m_parent);</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">if</span>(!data.speedGovSolver-&gt;IsOK()) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Error on initializate the speed governor of \&quot;&quot;</span>) + data.name + _(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; }</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; }</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="comment">// Initialize open circuit machine.</span></div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; }</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="comment">// Reset plot data</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; data.terminalVoltageVector.clear();</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; data.electricalPowerVector.clear();</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; data.mechanicalPowerVector.clear();</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; data.freqVector.clear();</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; data.fieldVoltageVector.clear();</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; data.deltaVector.clear();</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; CalculateReferenceSpeed();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;}</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="keywordtype">bool</span> Electromechanical::CalculateMachinesCurrents()</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;{</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="comment">// Reset injected currents vector</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_iBus.size(); ++i) m_iBus[i] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keywordtype">double</span> oldBase = syncGenerator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; }</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordtype">double</span> xp = data.potierReactance * k;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span>(xp == 0.0) xp = 0.8 * data.transXd * k;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; std::complex&lt;double&gt; e = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; std::complex&lt;double&gt; v = m_vBus[n];</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; std::complex&lt;double&gt; iInj = m_iBus[n];</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">auto</span> smModelData = GetSyncMachineModelData(syncGenerator);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; DQ0toABC(smModelData.ed, smModelData.eq, data.delta, e);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordtype">double</span> xd = smModelData.xd;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordtype">double</span> xq = smModelData.xq;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordtype">double</span> sd = data.sd;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordtype">double</span> sq = data.sq;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordtype">double</span> id, iq;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="comment">// Calculate the saturation effect</span></div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">if</span>(data.satFactor != 0.0) {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">if</span>(!CalculateSyncMachineSaturation(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, <span class="keyword">false</span>, k)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; }</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordtype">double</span> xdq, xds, xqs, xdqs;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; xdq = 0.5 * (xd + xq);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; xds = (xd - xp) / sd + xp;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; xqs = (xq - xp) / sq + xp;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; xdqs = 0.5 * (xds + xqs);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; std::complex&lt;double&gt; y0 = std::complex&lt;double&gt;(ra, -xdq) / std::complex&lt;double&gt;(ra * ra + xd * xq, 0.0);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="comment">// std::complex&lt;double&gt; iUnadjusted = y0 * e;</span></div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; std::complex&lt;double&gt; iUnadjusted = y0 * v;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="comment">// [Ref] Arrillaga, J.; Arnold, C. P.. &quot;Computer Modelling of Electrical Power Systems&quot;. Pg. 225-226</span></div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="comment">// [Ref] Dommell, H. W.; Sato, N.. &quot;Fast transient stability solutions&quot;. IEEE Transactions on Power</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="comment">// Apparatus and Systems, PAS-91 (4), 1643-1650</span></div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; std::complex&lt;double&gt; iSaliency = std::complex&lt;double&gt;(0.0, -((0.5 * (xqs - xds)) / (ra * ra + xds * xqs))) *</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; (std::conj(e) - std::conj(v));</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; iSaliency = iSaliency * std::cos(2.0 * data.delta) +</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; iSaliency * std::complex&lt;double&gt;(0.0, std::sin(2.0 * data.delta));</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="comment">// [Ref] Arrillaga, J.; Arnold, C. P.; Computer Modelling of Electrical Power Systems. Pg. 258-259</span></div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; std::complex&lt;double&gt; y0s = std::complex&lt;double&gt;(ra, -xdqs) / std::complex&lt;double&gt;(ra * ra + xds * xqs, 0.0);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; std::complex&lt;double&gt; iSaturation = y0s * (e - v);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160;</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; iInj = iUnadjusted + iSaliency + iSaturation;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160;</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; m_iBus[n] += iInj;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="comment">// Remove the current flowing through y0 (i.e. iUnadjusted in this case, y0 is inserted in admittance</span></div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="comment">// matrix) to calculate the electrical power.</span></div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; std::complex&lt;double&gt; iMachine = iInj - iUnadjusted;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; data.electricalPower = v * std::conj(iMachine);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160;</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; ABCtoDQ0(iMachine, data.delta, <span class="keywordtype">id</span>, iq);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160;</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; data.id = id;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; data.iq = iq;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; data.sd = sd;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; data.sq = sq;</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; data.electricalPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; }</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160;</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160;}</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateIntegrationConstants(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> iq, <span class="keywordtype">double</span> k)</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160;{</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; CalculateReferenceSpeed();</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq, subXd, subXq;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordtype">double</span> transTd0, transTq0, subTd0, subTq0;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; transTd0 = data.transTd0;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; transTq0 = data.transTq0;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; subTd0 = data.subTd0;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; subTq0 = data.subTq0;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span>(subTd0 == 0.0) subTd0 = subTq0;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">if</span>(subTq0 == 0.0) subTq0 = subTd0;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="comment">// Speed</span></div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; data.icSpeed.m = m_timeStep / ((4.0f * data.inertia / m_refSpeed) / k + m_timeStep * data.damping * k);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; data.icSpeed.c = (1.0f - 2.0f * data.icSpeed.m * data.damping * k) * data.speed +</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; data.icSpeed.m * (data.pm - data.pe + 2.0f * m_refSpeed * data.damping * k);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="comment">// Delta</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; data.icDelta.m = 0.5f * m_timeStep;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; data.icDelta.c = data.delta + data.icDelta.m * (data.speed - 2.0f * m_refSpeed);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">// Eq&#39;</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_2 || data.model == Machines::SM_MODEL_3 || data.model == Machines::SM_MODEL_4 ||</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; data.icTranEq.m = m_timeStep / (2.0f * transTd0 + m_timeStep);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="comment">// data.icTranEq.c = (1.0f - 2.0 * data.icTranEq.m) * data.tranEq +</span></div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="comment">// data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * id);</span></div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; data.icTranEq.c = (1.0 - data.icTranEq.m * (1.0 + data.sd)) * data.tranEq +</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="comment">// Ed&#39;</span></div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_3 || data.model == Machines::SM_MODEL_4 || data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; data.icTranEd.m = m_timeStep / (2.0f * transTq0 + m_timeStep);</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="comment">// data.icTranEd.c = (1.0f - 2.0f * data.icTranEd.m) * data.tranEd - data.icTranEd.m * (syncXq - transXq) * iq;</span></div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; data.icTranEd.c =</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; (1.0 - data.icTranEd.m * (1.0 + data.sq)) * data.tranEd - data.icTranEd.m * (syncXq - transXq) * iq;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160;</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="comment">// Eq&#39;&#39;</span></div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_4 || data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; data.icSubEq.m = m_timeStep / (2.0f * subTd0 + m_timeStep);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="comment">// data.icSubEq.c =</span></div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="comment">// (1.0f - 2.0f * data.icSubEq.m) * data.subEq + data.icSubEq.m * (data.tranEq + (transXd - subXd) * id);</span></div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; data.icSubEq.c = (1.0 - data.icSubEq.m * (1.0 + data.sd)) * data.subEq +</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; data.icSubEq.m * (data.sd * data.tranEq + (transXd - subXd) * <span class="keywordtype">id</span>);</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="comment">// Ed&#39;&#39;</span></div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_4) {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; data.icSubEd.m = m_timeStep / (2.0f * subTq0 + m_timeStep);</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="comment">// data.icSubEd.c = (1.0f - 2.0f * data.icSubEd.m) * data.subEd - data.icSubEd.m * (syncXq - subXq) * iq;</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; data.icSubEd.c =</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; (1.0f - data.icSubEd.m * (1.0 + data.sq)) * data.subEd - data.icSubEd.m * (syncXq - subXq) * iq;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_5) {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; data.icSubEd.m = m_timeStep / (2.0f * subTq0 + m_timeStep);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="comment">// data.icSubEd.c =</span></div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="comment">// (1.0f - 2.0f * data.icSubEd.m) * data.subEd + data.icSubEd.m * (data.tranEd - (transXq - subXq) * iq);</span></div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; data.icSubEd.c = (1.0f - data.icSubEd.m * (1.0 + data.sq)) * data.subEd +</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; data.icSubEd.m * (data.sq * data.tranEd - (transXq - subXq) * iq);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;}</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160;<span class="keywordtype">bool</span> Electromechanical::SolveSynchronousMachines()</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;{</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordtype">double</span> id, iq, pe, sd, sq;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; pe = data.pe;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordtype">id</span> = data.id;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; iq = data.iq;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; sd = data.sd;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; sq = data.sq;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordtype">double</span> oldBase = syncGenerator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="comment">// Calculate integration constants.</span></div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; CalculateIntegrationConstants(syncGenerator, <span class="keywordtype">id</span>, iq, k);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">if</span>(!CalculateSyncMachineNonIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, pe, k)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="comment">// Extrapolate nonintegrable variables.</span></div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordtype">id</span> = 2.0 * <span class="keywordtype">id</span> - data.oldId;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; iq = 2.0 * iq - data.oldIq;</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; pe = 2.0 * pe - data.oldPe;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; sd = 2.0 * sd - data.oldSd;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; sq = 2.0 * sq - data.oldSq;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; m_sdC = sd;</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; m_sqC = sq;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; CalculateSyncMachineIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, pe, k);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; CalculateIntegrationConstants(syncGenerator, 0.0f, 0.0f);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; }</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; m_wError = 0;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordtype">double</span> error = 1.0;</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordtype">int</span> iterations = 0;</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">while</span>(error &gt; m_tolerance) {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; error = 0.0;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="comment">// Calculate the injected currents.</span></div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">if</span>(!CalculateMachinesCurrents()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="comment">// Calculate the buses voltages.</span></div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; m_vBus = LUEvaluate(m_yBusU, m_yBusL, m_iBus);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160;</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="comment">// Solve machine equations.</span></div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordtype">double</span> <span class="keywordtype">id</span> = data.id;</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordtype">double</span> iq = data.iq;</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordtype">double</span> pe = data.pe;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordtype">double</span> sd = data.sd;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordtype">double</span> sq = data.sq;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordtype">double</span> k = 1.0;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordtype">double</span> oldBase = syncGenerator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; }</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160;</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="comment">// Calculate id, iq, dq, sd</span></div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">if</span>(!CalculateSyncMachineNonIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, pe, k)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordtype">double</span> genError = CalculateSyncMachineIntVariables(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, pe, k);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160;</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <span class="keywordflow">if</span>(genError &gt; error) error = genError;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; }</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; ++iterations;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordflow">if</span>(iterations &gt; m_maxIterations) {</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Impossible to solve the synchronous generators.\nCheck the system parameters and/or &quot;</span></div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="stringliteral">&quot;decrease the time step.&quot;</span>);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; }</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; }</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; m_numIt = iterations;</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="comment">// Solve controllers.</span></div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordtype">int</span> ctrlRatio = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(1 / m_ctrlTimeStepMultiplier);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">if</span>(data.useAVR &amp;&amp; data.avrSolver) {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctrlRatio; ++i) data.avrSolver-&gt;SolveNextStep(std::abs(data.terminalVoltage));</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; data.fieldVoltage = data.initialFieldVoltage + data.avrSolver-&gt;GetLastSolution();</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; }</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span>(data.useSpeedGovernor &amp;&amp; data.speedGovSolver) {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; ctrlRatio; ++i) data.speedGovSolver-&gt;SolveNextStep(data.speed);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; data.pm = data.speedGovSolver-&gt;GetLastSolution();</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; }</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;}</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;<span class="keywordtype">void</span> Electromechanical::SaveData()</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160;{</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">if</span>(data.plotSyncMachine) {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; data.terminalVoltageVector.push_back(data.terminalVoltage);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; data.electricalPowerVector.push_back(data.electricalPower);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; data.mechanicalPowerVector.push_back(data.pm);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; data.freqVector.push_back(data.speed / (2.0f * M_PI));</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; data.fieldVoltageVector.push_back(data.fieldVoltage);</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; data.deltaVector.push_back(wxRadToDeg(data.delta));</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; }</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; }</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">if</span>(data.plotBus) {</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; data.stabVoltageVector.push_back(m_vBus[data.number]);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; }</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_wErrorVector.push_back(m_wError);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; m_numItVector.push_back(m_numIt);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; m_sdCVector.push_back(m_sdC);</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; m_sqCVector.push_back(m_sqC);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;}</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;<span class="keywordtype">void</span> Electromechanical::SetSyncMachinesModel()</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;{</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; data.model = GetMachineModel(syncGenerator);</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;}</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;<span class="keywordtype">bool</span> Electromechanical::CalculateSyncMachineNonIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>,</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordtype">double</span>&amp; iq,</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keywordtype">double</span>&amp; sd,</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordtype">double</span>&amp; sq,</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordtype">double</span>&amp; pe,</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordtype">double</span> k)</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;{</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; data.terminalVoltage = m_vBus[n];</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordtype">double</span> vd, vq;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; ABCtoDQ0(data.terminalVoltage, data.delta, vd, vq);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">if</span>(data.satFactor != 0.0) {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <span class="keywordflow">if</span>(!CalculateSyncMachineSaturation(syncGenerator, <span class="keywordtype">id</span>, iq, sd, sq, <span class="keyword">true</span>, k)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; data.sd = sd;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; data.sq = sq;</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; data.oldSd = sd;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; data.oldSq = sq;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; }</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; pe = <span class="keywordtype">id</span> * vd + iq * vq + (<span class="keywordtype">id</span> * <span class="keywordtype">id</span> + iq * iq) * data.armResistance * k;</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; pe = <span class="keywordtype">id</span> = iq = 0.0f;</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; data.pe = pe;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; data.id = id;</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; data.iq = iq;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; data.oldPe = pe;</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; data.oldId = id;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; data.oldIq = iq;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;}</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160;<span class="keywordtype">double</span> Electromechanical::CalculateSyncMachineIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordtype">double</span> <span class="keywordtype">id</span>,</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keywordtype">double</span> iq,</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; <span class="keywordtype">double</span> sd,</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordtype">double</span> sq,</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keywordtype">double</span> pe,</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordtype">double</span> k)</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160;{</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <span class="keywordtype">double</span> error = 0.0;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="comment">// Mechanical differential equations.</span></div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordtype">double</span> w = data.icSpeed.c + data.icSpeed.m * (data.pm - pe);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; error = std::max(error, std::abs(data.speed - w) / m_refSpeed);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; m_wError += std::abs(data.speed - w) / m_refSpeed;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordtype">double</span> delta = data.icDelta.c + data.icDelta.m * w;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; error = std::max(error, std::abs(data.delta - delta));</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; data.speed = w;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; data.delta = delta;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="comment">// Electrical differential equations</span></div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <span class="comment">// There is no differential equations.</span></div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordtype">double</span> syncXd, transXd;</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordtype">double</span> tranEq = (data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; (1.0 + data.icTranEq.m * (sd - 1.0));</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordtype">double</span> tranEq = (data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; (1.0 + data.icTranEq.m * (sd - 1.0));</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordtype">double</span> tranEd =</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; (data.icTranEd.c - data.icTranEd.m * (syncXq - transXq) * iq) / (1.0 + data.icTranEd.m * (sq - 1.0));</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; error = std::max(error, std::abs(data.tranEd - tranEd));</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; data.tranEd = tranEd;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; std::complex&lt;double&gt; e;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; DQ0toABC(data.tranEd, data.tranEq, data.delta, e);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; data.terminalVoltage = e;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4: {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, subXd, subXq;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordtype">double</span> tranEq = (data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; (1.0 + data.icTranEq.m * (sd - 1.0));</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordtype">double</span> subEq = (data.icSubEq.c + data.icSubEq.m * (sd * tranEq + (transXd - subXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; (1.0 + data.icSubEq.m * (sd - 1.0));</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; error = std::max(error, std::abs(data.subEq - subEq));</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordtype">double</span> subEd =</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; (data.icSubEd.c - data.icSubEd.m * ((syncXq - subXq) * iq)) / (1.0 + data.icSubEd.m * (sq - 1.0));</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; error = std::max(error, std::abs(data.subEd - subEd));</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; data.subEq = subEq;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; data.subEd = subEd;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordtype">double</span> syncXd, syncXq, transXd, transXq, subXd, subXq;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; syncXd = data.syncXd * k;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; syncXq = data.syncXq * k;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; transXd = data.transXd * k;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; transXq = data.transXq * k;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; subXd = data.subXd * k;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; subXq = data.subXq * k;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">if</span>(syncXq == 0.0) syncXq = syncXd;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">if</span>(transXq == 0.0) transXq = transXd;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">if</span>(subXd == 0.0) subXd = subXq;</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">if</span>(subXq == 0.0) subXq = subXd;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordtype">double</span> tranEq = (data.icTranEq.c + data.icTranEq.m * (data.fieldVoltage + (syncXd - transXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; (1.0 + data.icTranEq.m * (sd - 1.0));</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; error = std::max(error, std::abs(data.tranEq - tranEq));</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordtype">double</span> tranEd =</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; (data.icTranEd.c - data.icTranEd.m * (syncXq - transXq) * iq) / (1.0 + data.icTranEd.m * (sq - 1.0));</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; error = std::max(error, std::abs(data.tranEd - tranEd));</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordtype">double</span> subEq = (data.icSubEq.c + data.icSubEq.m * (sd * tranEq + (transXd - subXd) * <span class="keywordtype">id</span>)) /</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; (1.0 + data.icSubEq.m * (sd - 1.0));</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; error = std::max(error, std::abs(data.subEq - subEq));</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordtype">double</span> subEd = (data.icSubEd.c + data.icSubEd.m * (sq * tranEd - (transXq - subXq) * iq)) /</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; (1.0 + data.icSubEd.m * (sq - 1.0));</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; error = std::max(error, std::abs(data.subEd - subEd));</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; data.tranEq = tranEq;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; data.tranEd = tranEd;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; data.subEq = subEq;</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; data.subEd = subEd;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; }</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <span class="keywordflow">return</span> error;</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;}</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160;</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160;<span class="keywordtype">void</span> Electromechanical::CalculateReferenceSpeed()</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;{</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">if</span>(m_useCOI) {</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordtype">double</span> sumHW = 0.0;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordtype">double</span> sumH = 0.0;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordtype">double</span> oldBase = syncGenerator-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; }</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; sumH += data.inertia / k;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; sumHW += data.inertia * data.speed / k;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; }</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; }</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; m_refSpeed = sumHW / sumH;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; m_refSpeed = 2.0 * M_PI * m_systemFreq;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;}</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160;<span class="keywordtype">bool</span> Electromechanical::CalculateSyncMachineSaturation(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncMachine,</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>,</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordtype">double</span>&amp; iq,</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keywordtype">double</span>&amp; sd,</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordtype">double</span>&amp; sq,</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordtype">bool</span> updateCurrents,</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordtype">double</span> k)</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="comment">// [Ref] Arrillaga, J.; Arnold, C. P.. &quot;Computer Modelling of Electrical Power Systems&quot;. Pg. 254-260</span></div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keyword">auto</span> data = syncMachine-&gt;GetElectricalData();</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keyword">auto</span> smDataModel = GetSyncMachineModelData(syncMachine);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordtype">int</span> n = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMachine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keywordflow">if</span>(syncMachine-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; data.terminalVoltage = m_vBus[n];</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; }</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keywordtype">double</span> idCalc = id;</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keywordtype">double</span> iqCalc = iq;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordtype">double</span> sdCalc = sd;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordtype">double</span> sqCalc = sq;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordtype">double</span> vd, vq;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; ABCtoDQ0(data.terminalVoltage, data.delta, vd, vq);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keywordtype">double</span> deltaVd = smDataModel.ed - vd;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordtype">double</span> deltaVq = smDataModel.eq - vq;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordtype">double</span> ra = data.armResistance * k;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordtype">double</span> xd = smDataModel.xd;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keywordtype">double</span> xq = smDataModel.xq;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordtype">double</span> syncXd = data.syncXd * k;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordtype">double</span> syncXq = data.syncXq * k;</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keywordflow">if</span>(data.model == Machines::SM_MODEL_1) {</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; syncXq = data.transXd * k;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; syncXd = syncXq;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.syncXq == 0.0)</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; syncXq = data.syncXd * k;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordtype">double</span> xp = data.potierReactance * k;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">if</span>(xp == 0.0) xp = 0.8 * data.transXd * k;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordtype">double</span> satFacd = (data.satFactor - 1.2) / std::pow(1.2, 7);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordtype">double</span> satFacq = satFacd * (syncXq / syncXd);</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordtype">bool</span> exit = <span class="keyword">false</span>;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keywordtype">int</span> iterations = 0;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keywordflow">while</span>(!exit) {</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordtype">double</span> oldSd = sdCalc;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="keywordtype">double</span> oldSq = sqCalc;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160;</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="comment">// Saturated reactances.</span></div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keywordtype">double</span> xds = (xd - xp) / sdCalc + xp;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordtype">double</span> xqs = (xq - xp) / sqCalc + xp;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <span class="comment">// dq currents.</span></div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; <span class="keywordtype">double</span> den = 1.0 / (ra * ra + xds * xqs);</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; iqCalc = den * (ra * deltaVq + xds * deltaVd);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; idCalc = den * (-xqs * deltaVq + ra * deltaVd);</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="comment">// Potier voltages</span></div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keywordtype">double</span> epq = vq + ra * iqCalc - xp * idCalc;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordtype">double</span> epd = vd + ra * idCalc + xp * iqCalc;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="comment">// Saturation factors.</span></div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// Gauss</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="comment">/*sdCalc = 1.0 + satFacd * std::pow(epq, 6);</span></div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;<span class="comment"> sqCalc = 1.0 + satFacq * std::pow(epd, 6);*/</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="comment">// Newton-raphson</span></div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordtype">double</span> f1 = 1.0 - sdCalc + satFacd * std::pow(epq, 6);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordtype">double</span> f2 = 1.0 - sqCalc + satFacq * std::pow(epd, 6);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordtype">double</span> dF1dSd =</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; (6.0 * satFacd * std::pow(epq, 5) * xp * (xd - xp) * deltaVq) / ((sdCalc - 1.0) * xp + xd) - 1.0;</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="keywordtype">double</span> dF2dSq =</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; (6.0 * satFacq * std::pow(epd, 5) * xp * (xq - xp) * deltaVd) / ((sqCalc - 1.0) * xp + xq) - 1.0;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; sdCalc = sdCalc - f1 / dF1dSd;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; sqCalc = sqCalc - f2 / dF2dSq;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160;</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keywordtype">double</span> error = std::abs(sdCalc - oldSd) + std::abs(sqCalc - oldSq);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">if</span>(error &lt; m_saturationTolerance) exit = <span class="keyword">true</span>;</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160;</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; iterations++;</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordflow">if</span>((iterations &gt;= m_maxIterations) &amp; !exit) {</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; m_errorMsg =</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; _(<span class="stringliteral">&quot;It was not possible to solve the saturation of the synchronous machine \&quot;&quot;</span>) + data.name + wxT(<span class="stringliteral">&quot;\&quot;.&quot;</span>);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; }</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; }</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160;</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; sd = sdCalc;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; sq = sqCalc;</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; <span class="keywordflow">if</span>(updateCurrents) {</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordtype">id</span> = idCalc;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; iq = iqCalc;</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160;}</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;<a class="code" href="struct_sync_machine_model_data.html">SyncMachineModelData</a> Electromechanical::GetSyncMachineModelData(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncMachine)</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160;{</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <a class="code" href="struct_sync_machine_model_data.html">SyncMachineModelData</a> smModelData;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="keyword">auto</span> data = syncMachine-&gt;GetElectricalData();</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordtype">double</span> k = 1.0; <span class="comment">// Power base change factor.</span></div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="keywordtype">double</span> oldBase = syncMachine-&gt;GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; k = m_powerSystemBase / oldBase;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">switch</span>(data.model) {</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_1: {</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a> = data.tranEd;</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a> = data.tranEq;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.transXd * k;</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> = smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a>;</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_2: {</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a> = data.tranEd;</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a> = data.tranEq;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> = data.transXd * k;</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.transXq * k;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keywordflow">if</span>(smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> == 0.0) {</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.syncXq * k;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keywordflow">if</span>(smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> == 0.0) {</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.syncXd * k;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; }</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; }</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_3: {</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a> = data.tranEd;</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a> = data.tranEq;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> = data.transXd * k;</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.transXq * k;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <span class="keywordflow">if</span>(smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> == 0.0) smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a>;</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_4:</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">case</span> Machines::SM_MODEL_5: {</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a> = data.subEd;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a> = data.subEq;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> = data.subXd * k;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = data.subXq * k;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; <span class="keywordflow">if</span>(smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> == 0.0) smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a> = smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a>;</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <span class="keywordflow">if</span>(smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> == 0.0) smModelData.<a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a> = smModelData.<a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a>;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; }</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keywordflow">return</span> smModelData;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160;}</div><div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00095">PowerElement.h:95</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="_electromechanical_8h_html"><div class="ttname"><a href="_electromechanical_8h.html">Electromechanical.h</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_a810b9e3250ebb8f3d4176f6e5a2b1076"><div class="ttname"><a href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">SyncMachineModelData::eq</a></div><div class="ttdeci">double eq</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00041">Electromechanical.h:41</a></div></div>
+<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00235">Element.cpp:235</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_af75546805bf92eb7a8a7280f7964b330"><div class="ttname"><a href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">SyncMachineModelData::xd</a></div><div class="ttdeci">double xd</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00035">Electromechanical.h:35</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00094">PowerElement.h:94</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00071">PowerElement.h:71</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_ad2bda1ac696b664571e33f657f4a81b6"><div class="ttname"><a href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">SyncMachineModelData::ed</a></div><div class="ttdeci">double ed</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00039">Electromechanical.h:39</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdoc">Switching data of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00093">PowerElement.h:93</a></div></div>
+<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00028">PropertiesData.h:28</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html"><div class="ttname"><a href="struct_sync_machine_model_data.html">SyncMachineModelData</a></div><div class="ttdoc">Synchronous machine data for different models. </div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00033">Electromechanical.h:33</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00073">ElectricCalculation.cpp:73</a></div></div>
+<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00182">PowerElement.h:182</a></div></div>
+<div class="ttc" id="_control_element_solver_8h_html"><div class="ttname"><a href="_control_element_solver_8h.html">ControlElementSolver.h</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_af81596945918e86e56f5822a0ba97fbc"><div class="ttname"><a href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">SyncMachineModelData::xq</a></div><div class="ttdeci">double xq</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00037">Electromechanical.h:37</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00025">ElectricCalculation.cpp:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00070">PowerElement.h:70</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_electromechanical_8h.html b/docs/doxygen/html/_electromechanical_8h.html
new file mode 100644
index 0000000..bf54f4c
--- /dev/null
+++ b/docs/doxygen/html/_electromechanical_8h.html
@@ -0,0 +1,120 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Electromechanical.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_electromechanical_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Electromechanical.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&quot;</code><br />
+<code>#include &lt;wx/progdlg.h&gt;</code><br />
+<code>#include &lt;wx/log.h&gt;</code><br />
+</div>
+<p><a href="_electromechanical_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous machine data for different models. <a href="struct_sync_machine_model_data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_electromechanical.html">Electromechanical</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the electromechanical transient based on disturbances (e.g. system fault). <a href="class_electromechanical.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_electromechanical_8h.html">Electromechanical.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_electromechanical_8h_source.html b/docs/doxygen/html/_electromechanical_8h_source.html
index 7a4e6c0..02710ac 100644
--- a/docs/doxygen/html/_electromechanical_8h_source.html
+++ b/docs/doxygen/html/_electromechanical_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,23 @@ $(document).ready(function(){initNavTree('_electromechanical_8h_source.html','')
<div class="title">Electromechanical.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ELECTROMECHANICAL_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ELECTROMECHANICAL_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/progdlg.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_electromechanical.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_electromechanical.html">Electromechanical</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_electromechanical.html">Electromechanical</a>(wxWindow* parent, std::vector&lt;Element*&gt; elementList, <a class="code" href="struct_simulation_data.html">SimulationData</a> data);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; ~<a class="code" href="class_electromechanical.html">Electromechanical</a>();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">bool</span> RunStabilityCalculation();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; wxString GetErrorMessage()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; std::vector&lt;double&gt; GetTimeVector()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_timeVector; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; std::vector&lt;double&gt; m_wErrorVector;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; std::vector&lt;double&gt; m_deltaErrorVector;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::vector&lt;double&gt; m_transEdErrorVector;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; std::vector&lt;double&gt; m_transEqErrorVector;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; std::vector&lt;double&gt; m_numItVector;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> SetEventTimeList();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">bool</span> HasEvent(<span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">void</span> SetEvent(<span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> EventTrigger(<span class="keywordtype">double</span> eventTime, <span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> GetPowerValue(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> unit);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">void</span> InsertSyncMachinesOnYBus();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; std::complex&lt;double&gt; GetSyncMachineAdmittance(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">bool</span> InitializeDynamicElements();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> CalculateMachinesCurrents();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">void</span> CalculateIntegrationConstants(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> iq, <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">bool</span> SolveSynchronousMachines();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">void</span> SetSyncMachinesModel();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> CalculateSyncMachineIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> iq, <span class="keywordtype">double</span> pe, <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">void</span> CalculateSyncMachineNonIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>, <span class="keywordtype">double</span>&amp; iq, <span class="keywordtype">double</span>&amp; pe, <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> CalculateReferenceSpeed();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> SaveData();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxString m_errorMsg = _(<span class="stringliteral">&quot;Unknown error&quot;</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> m_systemFreq = 60.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> m_refSpeed = 2.0 * M_PI * 60.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">bool</span> m_useCOI = <span class="keyword">false</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBus;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBusU;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBusL;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_vBus;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_iBus;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">double</span> m_powerSystemBase = 100e6;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> m_simTime = 10.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">double</span> m_plotTime = 1e-2;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">double</span> m_timeStep = 1e-2;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> m_ctrlTimeStepMultiplier = 0.1;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> m_tolerance = 1e-8;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">int</span> m_maxIterations = 100;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;double&gt; m_eventTimeList;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;bool&gt; m_eventOccurrenceList;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::vector&lt;double&gt; m_timeVector;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// tests</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> m_wError = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> m_numIt = 0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // ELECTROMECHANICAL_H</span></div><div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00011">PropertiesData.h:11</a></div></div>
-<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00010">Electromechanical.h:10</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
+<a href="_electromechanical_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ELECTROMECHANICAL_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ELECTROMECHANICAL_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/progdlg.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/log.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="struct_sync_machine_model_data.html"> 33</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_sync_machine_model_data.html">SyncMachineModelData</a> {</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330"> 35</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc"> 37</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6"> 39</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076"> 41</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;};</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_electromechanical.html"> 51</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_electromechanical.html">Electromechanical</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_electromechanical.html">Electromechanical</a>(wxWindow* parent, std::vector&lt;Element*&gt; elementList, <a class="code" href="struct_simulation_data.html">SimulationData</a> data);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; ~<a class="code" href="class_electromechanical.html">Electromechanical</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> RunStabilityCalculation();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxString GetErrorMessage()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;double&gt; GetTimeVector()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_timeVector; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::vector&lt;double&gt; m_wErrorVector;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; std::vector&lt;double&gt; m_deltaErrorVector;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; std::vector&lt;double&gt; m_transEdErrorVector;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::vector&lt;double&gt; m_transEqErrorVector;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::vector&lt;double&gt; m_numItVector;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;double&gt; m_sdCVector;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::vector&lt;double&gt; m_sqCVector;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> SetEventTimeList();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">bool</span> HasEvent(<span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> SetEvent(<span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">inline</span> <span class="keywordtype">bool</span> EventTrigger(<span class="keywordtype">double</span> eventTime, <span class="keywordtype">double</span> currentTime);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// double GetPowerValue(double value, ElectricalUnit unit);</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">void</span> InsertSyncMachinesOnYBus();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; std::complex&lt;double&gt; GetSyncMachineAdmittance(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* generator);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">bool</span> InitializeDynamicElements();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">bool</span> CalculateMachinesCurrents();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> CalculateIntegrationConstants(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator, <span class="keywordtype">double</span> <span class="keywordtype">id</span>, <span class="keywordtype">double</span> iq, <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">bool</span> SolveSynchronousMachines();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">void</span> SetSyncMachinesModel();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_sync_machine_model_data.html">SyncMachineModelData</a> GetSyncMachineModelData(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncMachine);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">double</span> CalculateSyncMachineIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> <span class="keywordtype">id</span>,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">double</span> iq,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">double</span> sd,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> sq,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> pe,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">bool</span> CalculateSyncMachineNonIntVariables(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">double</span>&amp; iq,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span>&amp; sd,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">double</span>&amp; sq,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">double</span>&amp; pe,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> CalculateReferenceSpeed();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">bool</span> CalculateSyncMachineSaturation(<a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncMachine,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">double</span>&amp; <span class="keywordtype">id</span>,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span>&amp; iq,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">double</span>&amp; sd,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">double</span>&amp; sq,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">bool</span> updateCurrents = <span class="keyword">true</span>,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">double</span> k = 1.0);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> SaveData();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; wxString m_errorMsg = _(<span class="stringliteral">&quot;Unknown error&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">double</span> m_systemFreq = 60.0;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">double</span> m_refSpeed = 2.0 * M_PI * 60.0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">bool</span> m_useCOI = <span class="keyword">false</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBus;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBusU;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBusL;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_vBus;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_iBus;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">double</span> m_powerSystemBase = 100e6;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">double</span> m_simTime = 10.0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">double</span> m_plotTime = 1e-2;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">double</span> m_timeStep = 1e-2;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">double</span> m_ctrlTimeStepMultiplier = 0.1;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordtype">double</span> m_tolerance = 1e-8;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">int</span> m_maxIterations = 100;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">double</span> m_saturationTolerance = 1e-8;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; std::vector&lt;double&gt; m_eventTimeList;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; std::vector&lt;bool&gt; m_eventOccurrenceList;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; std::vector&lt;double&gt; m_timeVector;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="comment">// tests</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">double</span> m_wError = 0.0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">double</span> m_sdC = 1.0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">double</span> m_sqC = 1.0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">double</span> m_numIt = 0;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;};</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="preprocessor">#endif // ELECTROMECHANICAL_H</span></div><div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_a810b9e3250ebb8f3d4176f6e5a2b1076"><div class="ttname"><a href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">SyncMachineModelData::eq</a></div><div class="ttdeci">double eq</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00041">Electromechanical.h:41</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_af75546805bf92eb7a8a7280f7964b330"><div class="ttname"><a href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">SyncMachineModelData::xd</a></div><div class="ttdeci">double xd</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00035">Electromechanical.h:35</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_ad2bda1ac696b664571e33f657f4a81b6"><div class="ttname"><a href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">SyncMachineModelData::ed</a></div><div class="ttdeci">double ed</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00039">Electromechanical.h:39</a></div></div>
+<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00028">PropertiesData.h:28</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html"><div class="ttname"><a href="struct_sync_machine_model_data.html">SyncMachineModelData</a></div><div class="ttdoc">Synchronous machine data for different models. </div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00033">Electromechanical.h:33</a></div></div>
+<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdoc">Calculates the electromechanical transient based on disturbances (e.g. system fault). </div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00051">Electromechanical.h:51</a></div></div>
+<div class="ttc" id="struct_sync_machine_model_data_html_af81596945918e86e56f5822a0ba97fbc"><div class="ttname"><a href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">SyncMachineModelData::xq</a></div><div class="ttdeci">double xq</div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00037">Electromechanical.h:37</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Electromechanical.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_electromechanical_8h.html">Electromechanical.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_element_8cpp_source.html b/docs/doxygen/html/_element_8cpp_source.html
index c557d20..3ea17ab 100644
--- a/docs/doxygen/html/_element_8cpp_source.html
+++ b/docs/doxygen/html/_element_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,38 +88,38 @@ $(document).ready(function(){initNavTree('_element_8cpp_source.html','');});
<div class="title">Element.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_element.html#ab0d0e20be9a36ae676202db753faeec9"> 6</a></span>&#160;<a class="code" href="class_element.html#ab0d0e20be9a36ae676202db753faeec9">Element::Element</a>() { m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.5, 1.0, 0.5); }</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c"> 8</a></span>&#160;<a class="code" href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c">Element::~Element</a>() {}</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_element.html#a920fe7ba1563615857618f01e64b3284"> 10</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a>(<span class="keyword">const</span> wxPoint2DDouble position)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_position = position;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0 - m_borderSize,</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_position.m_y - m_height / 2.0 - m_borderSize, m_width + 2.0 * m_borderSize, m_height + 2.0 * m_borderSize);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5"> 17</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5">Element::DrawCircle</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> radius, <span class="keywordtype">int</span> numSegments, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; glBegin(mode);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numSegments; i++) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span> theta = 2.0 * 3.1415926 * double(i) / double(numSegments);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; glVertex2f(radius * std::cos(theta) + position.m_x, radius * std::sin(theta) + position.m_y);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; glEnd();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keywordtype">void</span> Element::DrawArc(wxPoint2DDouble position,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> radius,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> finalAngle,</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">int</span> numSegments,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> initAngRad = wxDegToRad(initAngle);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> finalAngRad = wxDegToRad(finalAngle);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glBegin(mode);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt;= numSegments; i++) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> theta = initAngRad + (finalAngRad - initAngRad) * <span class="keywordtype">double</span>(i) / double(numSegments);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; glVertex2f(radius * std::cos(theta) + position.m_x, radius * std::sin(theta) + position.m_y);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; glEnd();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e"> 44</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a>(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; glBegin(mode);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; glVertex2d(points[i].m_x, points[i].m_y);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; glEnd();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8"> 53</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> width, <span class="keywordtype">double</span> height, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glBegin(mode); <span class="comment">// TODO: GL_QUADS é obsoleto (OpenGL 3.0+), encontrar outra solução.</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glVertex2d(position.m_x - width / 2.0, position.m_y - height / 2.0);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glVertex2d(position.m_x - width / 2.0, position.m_y + height / 2.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; glVertex2d(position.m_x + width / 2.0, position.m_y + height / 2.0);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; glVertex2d(position.m_x + width / 2.0, position.m_y - height / 2.0);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glEnd();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_element.html#a971be2d4fab435d9657f88bae36e7cf3"> 63</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a>(wxPoint2DDouble* points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; glBegin(mode); <span class="comment">// TODO: GL_QUADS é obsoleto (OpenGL 3.0+), encontrar outra solução.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glVertex2d(points[0].m_x, points[0].m_y);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glVertex2d(points[1].m_x, points[1].m_y);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glVertex2d(points[2].m_x, points[2].m_y);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glVertex2d(points[3].m_x, points[3].m_y);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glEnd();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_element.html#a103b3cb2670012b2695940b094f63ab3"> 73</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a>(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glBegin(mode);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = points.begin(); it != points.end(); ++it) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; glVertex2d((*it).m_x, (*it).m_y);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glEnd();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39"> 82</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glColor4d(1.0, 1.0, 1.0, 0.8);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(position, 8.0, 8.0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(position, 8.0, 8.0, GL_LINE_LOOP);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"><a class="line" href="class_element.html#a99b213010776b34a27eb814aff288a34"> 91</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a>(wxPoint2DDouble pointToRotate, <span class="keywordtype">double</span> angle, <span class="keywordtype">bool</span> degrees)<span class="keyword"> const</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">double</span> radAngle = angle;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(degrees) radAngle = wxDegToRad(angle);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(std::cos(radAngle) * (pointToRotate.m_x - m_position.m_x) -</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; std::sin(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_x,</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::sin(radAngle) * (pointToRotate.m_x - m_position.m_x) +</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::cos(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_y);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4"> 101</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; this-&gt;m_moveStartPt = position;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; this-&gt;m_movePos = m_position;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_element.html#abe884d99d12d5252e18956162115b025"> 107</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a>(wxPoint2DDouble position) { <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_movePos + position - m_moveStartPt); }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"><a class="line" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8"> 109</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale, <span class="keywordtype">double</span> offsetX, <span class="keywordtype">double</span> offsetY)<span class="keyword"> const</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(m_position.m_x + offsetX + translation.m_x, m_position.m_y + offsetY + translation.m_y) *</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; scale;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_element.html#a147dd55d902171b212168ffde7262343"> 115</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a>(wxPoint2DDouble position,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; wxPoint2DDouble translation,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">double</span> scale,</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">double</span> offsetX,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">double</span> offsetY)<span class="keyword"> const</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(position.m_x + offsetX + translation.m_x, position.m_y + offsetY + translation.m_y) * scale;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50"> 124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50">Element::DrawPoint</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> size)<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; glPointSize(size);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; glBegin(GL_POINTS);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; glVertex2d(position.m_x, position.m_y);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; glEnd();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea"> 132</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a>(wxRect2DDouble rect1,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; wxRect2DDouble rect2,</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">double</span> angle1,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">double</span> angle2)<span class="keyword"> const</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wxPoint2DDouble rect1Corners[4] = { rect1.GetLeftTop(), rect1.GetLeftBottom(), rect1.GetRightBottom(),</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; rect1.GetRightTop() };</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; wxPoint2DDouble rect2Corners[4] = { rect2.GetLeftTop(), rect2.GetLeftBottom(), rect2.GetRightBottom(),</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; rect2.GetRightTop() };</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; wxPoint2DDouble rect1Center(rect1.m_x + rect1.m_width / 2.0, rect1.m_y + rect1.m_height / 2.0);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; wxPoint2DDouble rect2Center(rect2.m_x + rect2.m_width / 2.0, rect2.m_y + rect2.m_height / 2.0);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Rotate the corners.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">double</span> radAngle1 = wxDegToRad(angle1);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">double</span> radAngle2 = wxDegToRad(angle2);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; rect1Corners[i] = wxPoint2DDouble(std::cos(radAngle1) * (rect1Corners[i].m_x - rect1Center.m_x) -</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; std::sin(radAngle1) * (rect1Corners[i].m_y - rect1Center.m_y) + rect1Center.m_x,</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::sin(radAngle1) * (rect1Corners[i].m_x - rect1Center.m_x) +</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; std::cos(radAngle1) * (rect1Corners[i].m_y - rect1Center.m_y) + rect1Center.m_y);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; rect2Corners[i] = wxPoint2DDouble(std::cos(radAngle2) * (rect2Corners[i].m_x - rect2Center.m_x) -</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; std::sin(radAngle2) * (rect2Corners[i].m_y - rect2Center.m_y) + rect2Center.m_x,</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::sin(radAngle2) * (rect2Corners[i].m_x - rect2Center.m_x) +</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; std::cos(radAngle2) * (rect2Corners[i].m_y - rect2Center.m_y) + rect2Center.m_y);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="comment">//[Ref] http://www.gamedev.net/page/resources/_/technical/game-programming/2d-rotated-rectangle-collision-r2604</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// Find the rectangles axis to project</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; wxPoint2DDouble axis[4] = { rect1Corners[3] - rect1Corners[0], rect1Corners[3] - rect1Corners[2],</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; rect2Corners[3] - rect2Corners[0], rect2Corners[3] - rect2Corners[2] };</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="comment">// Calculate the projected points to each axis</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; wxPoint2DDouble rect1ProjPts[4][4]; <span class="comment">// [axis][corner]</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; wxPoint2DDouble rect2ProjPts[4][4]; <span class="comment">// [axis][corner]</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">double</span> den = axis[i].m_x * axis[i].m_x + axis[i].m_y * axis[i].m_y;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 4; j++) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">double</span> m_rectProj = (rect1Corners[j].m_x * axis[i].m_x + rect1Corners[j].m_y * axis[i].m_y) / den;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordtype">double</span> rectProj = (rect2Corners[j].m_x * axis[i].m_x + rect2Corners[j].m_y * axis[i].m_y) / den;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; rect1ProjPts[i][j] = wxPoint2DDouble(m_rectProj * axis[i].m_x, m_rectProj * axis[i].m_y);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; rect2ProjPts[i][j] = wxPoint2DDouble(rectProj * axis[i].m_x, rectProj * axis[i].m_y);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Calculate the scalar value to identify the max and min values on projections</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">double</span> rect1Scalar[4][4]; <span class="comment">//[axis][corner]</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordtype">double</span> rect2Scalar[4][4]; <span class="comment">//[axis][corner]</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 4; j++) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; rect1Scalar[i][j] = rect1ProjPts[i][j].m_x * axis[i].m_x + rect1ProjPts[i][j].m_y * axis[i].m_y;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; rect2Scalar[i][j] = rect2ProjPts[i][j].m_x * axis[i].m_x + rect2ProjPts[i][j].m_y * axis[i].m_y;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="comment">// Identify the max and min scalar values</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">double</span> rect1Min[4];</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordtype">double</span> rect1Max[4];</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">double</span> rect2Min[4];</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordtype">double</span> rect2Max[4];</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; rect1Max[i] = rect1Scalar[i][0];</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; rect2Max[i] = rect2Scalar[i][0];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; rect1Min[i] = rect1Scalar[i][0];</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; rect2Min[i] = rect2Scalar[i][0];</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 1; j &lt; 4; j++) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(rect1Max[i] &lt; rect1Scalar[i][j]) rect1Max[i] = rect1Scalar[i][j];</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(rect2Max[i] &lt; rect2Scalar[i][j]) rect2Max[i] = rect2Scalar[i][j];</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(rect1Min[i] &gt; rect1Scalar[i][j]) rect1Min[i] = rect1Scalar[i][j];</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(rect2Min[i] &gt; rect2Scalar[i][j]) rect2Min[i] = rect2Scalar[i][j];</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="comment">// Check if any segment don&#39;t overlap</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(!(rect2Min[i] &lt;= rect1Max[i] &amp;&amp; rect2Max[i] &gt;= rect1Min[i])) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;}</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"><a class="line" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb"> 218</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a>(<span class="keywordtype">bool</span> online)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;{</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="comment">// Check if any parent is null.</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); it++) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(!(*it)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_online = online;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"><a class="line" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64"> 228</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; wxMenuItem* clockItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>, _(<span class="stringliteral">&quot;Rotate clockwise&quot;</span>));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; clockItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\rotateClock16.png&quot;</span>));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; menu.Append(clockItem);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; wxMenuItem* counterClockItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>, _(<span class="stringliteral">&quot;Rotate counter-clockwise&quot;</span>));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; counterClockItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\rotateCounterClock16.png&quot;</span>));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; menu.Append(counterClockItem);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; wxMenuItem* deleteItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>, _(<span class="stringliteral">&quot;Delete&quot;</span>));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; deleteItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\delete16.png&quot;</span>));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; menu.Append(deleteItem);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487"> 243</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a>(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom)<span class="keyword"> const</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="comment">// Check rect corners boundaries.</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">// Get rectangle corners</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; wxPoint2DDouble rectCorner[4] = { m_rect.GetLeftTop(), m_rect.GetLeftBottom(), m_rect.GetRightBottom(),</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_rect.GetRightTop() };</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Rotate corners.</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; ++i) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; rectCorner[i] = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(rectCorner[i], m_angle);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; leftUp = rectCorner[0];</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; rightBottom = rectCorner[0];</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; 4; ++i) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_x &lt; leftUp.m_x) leftUp.m_x = rectCorner[i].m_x;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_y &lt; leftUp.m_y) leftUp.m_y = rectCorner[i].m_y;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = rectCorner[i].m_x;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = rectCorner[i].m_y;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="comment">// Check points list boundaries.</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &lt; leftUp.m_x) leftUp.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &lt; leftUp.m_y) leftUp.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;}</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a"> 272</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(wxWindow* parent, wxString strValue, <span class="keywordtype">double</span>&amp; value, wxString errorMsg)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">double</span> dValue = 0.0;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(!strValue.ToDouble(&amp;dValue)) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; wxMessageDialog msgDialog(parent, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; value = dValue;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"><a class="line" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159"> 286</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(wxWindow* parent, wxString strValue, <span class="keywordtype">int</span>&amp; value, wxString errorMsg)</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;{</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordtype">long</span> <span class="keywordtype">int</span> iValue = 0;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(!strValue.ToLong(&amp;iValue)) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; wxMessageDialog msgDialog(parent, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; value = iValue;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;}</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;</div><div class="line"><a name="l00300"></a><span class="lineno"><a class="line" href="class_element.html#abb2e253ec1e86353cd7160209c96553c"> 300</a></span>&#160;wxString <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(<span class="keywordtype">double</span> value, <span class="keywordtype">int</span> minDecimal)</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;{</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; wxString str = wxString::FromCDouble(value, 13);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordtype">int</span> cutNumber = 0;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">int</span> numDecimal = 0;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordtype">bool</span> foundCut = <span class="keyword">false</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)str.length() - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(str[i] != <span class="charliteral">&#39;0&#39;</span> &amp;&amp; !foundCut) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; cutNumber = i;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; foundCut = <span class="keyword">true</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(str[i] == <span class="charliteral">&#39;.&#39;</span>) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; numDecimal = i;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; wxString formatedStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(cutNumber - numDecimal &gt; minDecimal)</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; formatedStr = wxString::FromDouble(value, cutNumber - numDecimal);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; formatedStr = wxString::FromDouble(value, minDecimal);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">return</span> formatedStr;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"><a class="line" href="class_element.html#a74ec9a279ac0127550e00941206dddb1"> 326</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a>(<a class="code" href="class_element.html">Element</a>* oldParent, <a class="code" href="class_element.html">Element</a>* newParent)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_parentList.size(); i++) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span>(m_parentList[i] == oldParent) m_parentList[i] = newParent;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;}</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"><a class="line" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62"> 333</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a>(<a class="code" href="class_element.html">Element</a>* child) { m_childList.push_back(child); }</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09"> 335</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a>(<a class="code" href="class_element.html">Element</a>* child)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(); it != m_childList.end(); ++it) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(element == child) m_childList.erase(it--);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5"> 343</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a>(<a class="code" href="class_element.html">Element</a>* oldChild, <a class="code" href="class_element.html">Element</a>* newChild)</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_childList.size(); i++) {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(m_childList[i] == oldChild) m_childList[i] = newChild;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94"> 350</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; rgba[0] = red;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; rgba[1] = green;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; rgba[2] = blue;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; rgba[3] = alpha;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;}</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad"> 358</a></span>&#160;<a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a>() { SetRGBA(1.0, 1.0, 1.0, 1.0); }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;</div><div class="line"><a name="l00360"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a273751fe4b9efccc28565ec5be7d7967"> 360</a></span>&#160;<a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;{</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; SetRGBA(red, green, blue, alpha);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;}</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"><a class="line" href="class_element.html#a158e271d7f309cd49002ca3c98365e9b"> 365</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_element.html#a158e271d7f309cd49002ca3c98365e9b">Element::PointToLineDistance</a>(wxPoint2DDouble point, <span class="keywordtype">int</span>* segmentNumber)<span class="keyword"> const</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">//[Ref] http://geomalgorithms.com/a02-_lines.html</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordtype">double</span> distance = 100.0; <span class="comment">// Big initial distance.</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; wxPoint2DDouble p0 = point;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordtype">double</span> d = 0.0;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; wxPoint2DDouble p1 = m_pointList[i];</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; wxPoint2DDouble p2 = m_pointList[i + 1];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; wxPoint2DDouble v = p2 - p1;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; wxPoint2DDouble w = p0 - p1;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordtype">double</span> c1 = w.m_x * v.m_x + w.m_y * v.m_y;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordtype">double</span> c2 = v.m_x * v.m_x + v.m_y * v.m_y;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span>(c1 &lt;= 0.0) {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; d = std::sqrt(std::pow(p0.m_y - p1.m_y, 2) + std::pow(p0.m_x - p1.m_x, 2));</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(c2 &lt;= c1) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; d = std::sqrt(std::pow(p0.m_y - p2.m_y, 2) + std::pow(p0.m_x - p2.m_x, 2));</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; d = std::abs((p2.m_y - p1.m_y) * p0.m_x - (p2.m_x - p1.m_x) * p0.m_y + p2.m_x * p1.m_y - p2.m_y * p1.m_x) /</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; std::sqrt(std::pow(p2.m_y - p1.m_y, 2) + std::pow(p2.m_x - p1.m_x, 2));</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; }</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">if</span>(d &lt; distance) {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; distance = d;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(segmentNumber) *segmentNumber = i;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">return</span> distance;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;}</div><div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_ae425d7e4f94bf7280d7d68c577d2019e"><div class="ttname"><a href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a></div><div class="ttdeci">virtual void DrawTriangle(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_TRIANGLES) const</div><div class="ttdoc">Draw a triangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00044">Element.cpp:44</a></div></div>
-<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00073">Element.cpp:73</a></div></div>
-<div class="ttc" id="class_element_html_abfee7ea88f4689c2a6eb4d39452f84d8"><div class="ttname"><a href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a></div><div class="ttdeci">virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const</div><div class="ttdoc">Convert the element position to screen position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00109">Element.cpp:109</a></div></div>
-<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00218">Element.cpp:218</a></div></div>
-<div class="ttc" id="class_element_html_acfd2c0fe1af5a8ad6da393fb711fd69a"><div class="ttname"><a href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a></div><div class="ttdeci">static bool DoubleFromString(wxWindow *parent, wxString strValue, double &amp;value, wxString errorMsg)</div><div class="ttdoc">Get a double value from a string. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00272">Element.cpp:272</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00037">Element.h:37</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00350">Element.cpp:350</a></div></div>
-<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00335">Element.cpp:335</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="class_element_html_a57f5771fd003020fef3866a1d1dc7487"><div class="ttname"><a href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00243">Element.cpp:243</a></div></div>
-<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00053">Element.cpp:53</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00228">Element.cpp:228</a></div></div>
-<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00343">Element.cpp:343</a></div></div>
-<div class="ttc" id="class_element_html_a4c93a9e20ed0ca0c376cf412b4347159"><div class="ttname"><a href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a></div><div class="ttdeci">static bool IntFromString(wxWindow *parent, wxString strValue, int &amp;value, wxString errorMsg)</div><div class="ttdoc">Convert a string to int. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00286">Element.cpp:286</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_acc6fa05591fe3881c4d3ffee1bd5b0ad"><div class="ttname"><a href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a></div><div class="ttdeci">OpenGLColour()</div><div class="ttdoc">Default construnctor. Use SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00358">Element.cpp:358</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_element_html_a4b6dd88902e04b52fe14dfc73c51fd50"><div class="ttname"><a href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50">Element::DrawPoint</a></div><div class="ttdeci">virtual void DrawPoint(wxPoint2DDouble position, double size) const</div><div class="ttdoc">Draw a point. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00124">Element.cpp:124</a></div></div>
-<div class="ttc" id="class_element_html_ad1d0d803fe522d030e2be8dc99eb9b39"><div class="ttname"><a href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a></div><div class="ttdeci">virtual void DrawPickbox(wxPoint2DDouble position) const</div><div class="ttdoc">Draw pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00082">Element.cpp:82</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00036">Element.h:36</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00326">Element.cpp:326</a></div></div>
-<div class="ttc" id="class_element_html_a158e271d7f309cd49002ca3c98365e9b"><div class="ttname"><a href="class_element.html#a158e271d7f309cd49002ca3c98365e9b">Element::PointToLineDistance</a></div><div class="ttdeci">virtual double PointToLineDistance(wxPoint2DDouble point, int *segmentNumber=NULL) const</div><div class="ttdoc">Calculate the distance between a line (formed by point list) and a point. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00365">Element.cpp:365</a></div></div>
-<div class="ttc" id="class_element_html_ab0d0e20be9a36ae676202db753faeec9"><div class="ttname"><a href="class_element.html#ab0d0e20be9a36ae676202db753faeec9">Element::Element</a></div><div class="ttdeci">Element()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00006">Element.cpp:6</a></div></div>
-<div class="ttc" id="class_element_html_a35567bc1e306c6db9522ad05a87b98f5"><div class="ttname"><a href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5">Element::DrawCircle</a></div><div class="ttdeci">virtual void DrawCircle(wxPoint2DDouble position, double radius, int numSegments, GLenum mode=GL_LINE_LOOP) const</div><div class="ttdoc">Draw a circle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00017">Element.cpp:17</a></div></div>
-<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00101">Element.cpp:101</a></div></div>
-<div class="ttc" id="class_element_html_a13d54ba9c08b6bec651402f1c2bb002c"><div class="ttname"><a href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c">Element::~Element</a></div><div class="ttdeci">virtual ~Element()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00008">Element.cpp:8</a></div></div>
-<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00132">Element.cpp:132</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_element.html#ab0d0e20be9a36ae676202db753faeec9"> 23</a></span>&#160;<a class="code" href="class_element.html#ab0d0e20be9a36ae676202db753faeec9">Element::Element</a>() { m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.5, 1.0, 0.5); }</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c"> 24</a></span>&#160;<a class="code" href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c">Element::~Element</a>() {}</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_element.html#a920fe7ba1563615857618f01e64b3284"> 25</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a>(<span class="keyword">const</span> wxPoint2DDouble position)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_position = position;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_rect =</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxRect2DDouble(m_position.m_x - m_width / 2.0 - m_borderSize, m_position.m_y - m_height / 2.0 - m_borderSize,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_width + 2.0 * m_borderSize, m_height + 2.0 * m_borderSize);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5"> 33</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5">Element::DrawCircle</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> radius, <span class="keywordtype">int</span> numSegments, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; glBegin(mode);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numSegments; i++) {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> theta = 2.0 * 3.1415926 * double(i) / double(numSegments);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glVertex2f(radius * std::cos(theta) + position.m_x, radius * std::sin(theta) + position.m_y);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; glEnd();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">void</span> Element::DrawArc(wxPoint2DDouble position,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> radius,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> finalAngle,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">int</span> numSegments,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> initAngRad = wxDegToRad(initAngle);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">double</span> finalAngRad = wxDegToRad(finalAngle);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glBegin(mode);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt;= numSegments; i++) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> theta = initAngRad + (finalAngRad - initAngRad) * <span class="keywordtype">double</span>(i) / double(numSegments);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glVertex2f(radius * std::cos(theta) + position.m_x, radius * std::sin(theta) + position.m_y);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glEnd();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e"> 60</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a>(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glBegin(mode);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; glVertex2d(points[i].m_x, points[i].m_y);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glEnd();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8"> 69</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> width, <span class="keywordtype">double</span> height, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; glBegin(mode); <span class="comment">// TODO: GL_QUADS é obsoleto (OpenGL 3.0+), encontrar outra solução.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glVertex2d(position.m_x - width / 2.0, position.m_y - height / 2.0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glVertex2d(position.m_x - width / 2.0, position.m_y + height / 2.0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glVertex2d(position.m_x + width / 2.0, position.m_y + height / 2.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glVertex2d(position.m_x + width / 2.0, position.m_y - height / 2.0);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; glEnd();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="class_element.html#a971be2d4fab435d9657f88bae36e7cf3"> 79</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a>(wxPoint2DDouble* points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; glBegin(mode); <span class="comment">// TODO: GL_QUADS é obsoleto (OpenGL 3.0+), encontrar outra solução.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glVertex2d(points[0].m_x, points[0].m_y);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glVertex2d(points[1].m_x, points[1].m_y);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glVertex2d(points[2].m_x, points[2].m_y);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glVertex2d(points[3].m_x, points[3].m_y);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glEnd();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="class_element.html#a103b3cb2670012b2695940b094f63ab3"> 89</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a>(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode)<span class="keyword"> const</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glBegin(mode);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = points.begin(); it != points.end(); ++it) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; glVertex2d((*it).m_x, (*it).m_y);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glEnd();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39"> 98</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; glColor4d(1.0, 1.0, 1.0, 0.8);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(position, 8.0, 8.0);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(position, 8.0, 8.0, GL_LINE_LOOP);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_element.html#a99b213010776b34a27eb814aff288a34"> 107</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a>(wxPoint2DDouble pointToRotate, <span class="keywordtype">double</span> angle, <span class="keywordtype">bool</span> degrees)<span class="keyword"> const</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">double</span> radAngle = angle;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(degrees) radAngle = wxDegToRad(angle);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(std::cos(radAngle) * (pointToRotate.m_x - m_position.m_x) -</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; std::sin(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_x,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; std::sin(radAngle) * (pointToRotate.m_x - m_position.m_x) +</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::cos(radAngle) * (pointToRotate.m_y - m_position.m_y) + m_position.m_y);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4"> 117</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; this-&gt;m_moveStartPt = position;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; this-&gt;m_movePos = m_position;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_element.html#abe884d99d12d5252e18956162115b025"> 123</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a>(wxPoint2DDouble position) { <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_movePos + position - m_moveStartPt); }</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8"> 124</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale, <span class="keywordtype">double</span> offsetX, <span class="keywordtype">double</span> offsetY)<span class="keyword"> const</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(m_position.m_x + offsetX + translation.m_x, m_position.m_y + offsetY + translation.m_y) *</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; scale;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_element.html#a147dd55d902171b212168ffde7262343"> 130</a></span>&#160;wxPoint2DDouble <a class="code" href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a>(wxPoint2DDouble position,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; wxPoint2DDouble translation,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">double</span> scale,</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">double</span> offsetX,</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordtype">double</span> offsetY)<span class="keyword"> const</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(position.m_x + offsetX + translation.m_x, position.m_y + offsetY + translation.m_y) * scale;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50"> 139</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50">Element::DrawPoint</a>(wxPoint2DDouble position, <span class="keywordtype">double</span> size)<span class="keyword"> const</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; glPointSize(size);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; glBegin(GL_POINTS);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; glVertex2d(position.m_x, position.m_y);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; glEnd();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea"> 147</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a>(wxRect2DDouble rect1,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; wxRect2DDouble rect2,</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordtype">double</span> angle1,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">double</span> angle2)<span class="keyword"> const</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wxPoint2DDouble rect1Corners[4] = {rect1.GetLeftTop(), rect1.GetLeftBottom(), rect1.GetRightBottom(),</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; rect1.GetRightTop()};</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; wxPoint2DDouble rect2Corners[4] = {rect2.GetLeftTop(), rect2.GetLeftBottom(), rect2.GetRightBottom(),</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; rect2.GetRightTop()};</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; wxPoint2DDouble rect1Center(rect1.m_x + rect1.m_width / 2.0, rect1.m_y + rect1.m_height / 2.0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; wxPoint2DDouble rect2Center(rect2.m_x + rect2.m_width / 2.0, rect2.m_y + rect2.m_height / 2.0);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Rotate the corners.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordtype">double</span> radAngle1 = wxDegToRad(angle1);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordtype">double</span> radAngle2 = wxDegToRad(angle2);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; rect1Corners[i] =</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; wxPoint2DDouble(std::cos(radAngle1) * (rect1Corners[i].m_x - rect1Center.m_x) -</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; std::sin(radAngle1) * (rect1Corners[i].m_y - rect1Center.m_y) + rect1Center.m_x,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; std::sin(radAngle1) * (rect1Corners[i].m_x - rect1Center.m_x) +</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; std::cos(radAngle1) * (rect1Corners[i].m_y - rect1Center.m_y) + rect1Center.m_y);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; rect2Corners[i] =</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; wxPoint2DDouble(std::cos(radAngle2) * (rect2Corners[i].m_x - rect2Center.m_x) -</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; std::sin(radAngle2) * (rect2Corners[i].m_y - rect2Center.m_y) + rect2Center.m_x,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::sin(radAngle2) * (rect2Corners[i].m_x - rect2Center.m_x) +</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::cos(radAngle2) * (rect2Corners[i].m_y - rect2Center.m_y) + rect2Center.m_y);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">//[Ref] http://www.gamedev.net/page/resources/_/technical/game-programming/2d-rotated-rectangle-collision-r2604</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="comment">// Find the rectangles axis to project</span></div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; wxPoint2DDouble axis[4] = {rect1Corners[3] - rect1Corners[0], rect1Corners[3] - rect1Corners[2],</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; rect2Corners[3] - rect2Corners[0], rect2Corners[3] - rect2Corners[2]};</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="comment">// Calculate the projected points to each axis</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; wxPoint2DDouble rect1ProjPts[4][4]; <span class="comment">// [axis][corner]</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; wxPoint2DDouble rect2ProjPts[4][4]; <span class="comment">// [axis][corner]</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">double</span> den = axis[i].m_x * axis[i].m_x + axis[i].m_y * axis[i].m_y;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 4; j++) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">double</span> m_rectProj = (rect1Corners[j].m_x * axis[i].m_x + rect1Corners[j].m_y * axis[i].m_y) / den;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">double</span> rectProj = (rect2Corners[j].m_x * axis[i].m_x + rect2Corners[j].m_y * axis[i].m_y) / den;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; rect1ProjPts[i][j] = wxPoint2DDouble(m_rectProj * axis[i].m_x, m_rectProj * axis[i].m_y);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; rect2ProjPts[i][j] = wxPoint2DDouble(rectProj * axis[i].m_x, rectProj * axis[i].m_y);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Calculate the scalar value to identify the max and min values on projections</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">double</span> rect1Scalar[4][4]; <span class="comment">//[axis][corner]</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">double</span> rect2Scalar[4][4]; <span class="comment">//[axis][corner]</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 4; j++) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; rect1Scalar[i][j] = rect1ProjPts[i][j].m_x * axis[i].m_x + rect1ProjPts[i][j].m_y * axis[i].m_y;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; rect2Scalar[i][j] = rect2ProjPts[i][j].m_x * axis[i].m_x + rect2ProjPts[i][j].m_y * axis[i].m_y;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Identify the max and min scalar values</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">double</span> rect1Min[4];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordtype">double</span> rect1Max[4];</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordtype">double</span> rect2Min[4];</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordtype">double</span> rect2Max[4];</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; rect1Max[i] = rect1Scalar[i][0];</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; rect2Max[i] = rect2Scalar[i][0];</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; rect1Min[i] = rect1Scalar[i][0];</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; rect2Min[i] = rect2Scalar[i][0];</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 1; j &lt; 4; j++) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(rect1Max[i] &lt; rect1Scalar[i][j]) rect1Max[i] = rect1Scalar[i][j];</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(rect2Max[i] &lt; rect2Scalar[i][j]) rect2Max[i] = rect2Scalar[i][j];</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(rect1Min[i] &gt; rect1Scalar[i][j]) rect1Min[i] = rect1Scalar[i][j];</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(rect2Min[i] &gt; rect2Scalar[i][j]) rect2Min[i] = rect2Scalar[i][j];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="comment">// Check if any segment don&#39;t overlap</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; i++) {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(!(rect2Min[i] &lt;= rect1Max[i] &amp;&amp; rect2Max[i] &gt;= rect1Min[i])) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"><a class="line" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb"> 235</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a>(<span class="keywordtype">bool</span> online)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;{</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// Check if any parent is null.</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); it++) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(!(*it)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_online = online;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64"> 245</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxFileName exeFileName(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; wxString exePath = exeFileName.GetPath();</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; wxMenuItem* clockItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>, _(<span class="stringliteral">&quot;Rotate clockwise&quot;</span>));</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; clockItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\rotateClock16.png&quot;</span>));</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; menu.Append(clockItem);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; wxMenuItem* counterClockItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>, _(<span class="stringliteral">&quot;Rotate counter-clockwise&quot;</span>));</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; counterClockItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\rotateCounterClock16.png&quot;</span>));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; menu.Append(counterClockItem);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; wxMenuItem* deleteItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>, _(<span class="stringliteral">&quot;Delete&quot;</span>));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; deleteItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\delete16.png&quot;</span>));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; menu.Append(deleteItem);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487"> 263</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a>(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom)<span class="keyword"> const</span></div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="comment">// Check rect corners boundaries.</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// Get rectangle corners</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; wxPoint2DDouble rectCorner[4] = {m_rect.GetLeftTop(), m_rect.GetLeftBottom(), m_rect.GetRightBottom(),</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_rect.GetRightTop()};</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="comment">// Rotate corners.</span></div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 4; ++i) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; rectCorner[i] = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(rectCorner[i], m_angle);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; leftUp = rectCorner[0];</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; rightBottom = rectCorner[0];</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; 4; ++i) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_x &lt; leftUp.m_x) leftUp.m_x = rectCorner[i].m_x;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_y &lt; leftUp.m_y) leftUp.m_y = rectCorner[i].m_y;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = rectCorner[i].m_x;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">if</span>(rectCorner[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = rectCorner[i].m_y;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="comment">// Check points list boundaries.</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &lt; leftUp.m_x) leftUp.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &lt; leftUp.m_y) leftUp.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;}</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"><a class="line" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a"> 292</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(wxWindow* parent, wxString strValue, <span class="keywordtype">double</span>&amp; value, wxString errorMsg)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;{</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordtype">double</span> dValue = 0.0;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">if</span>(!strValue.ToDouble(&amp;dValue)) {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; wxMessageDialog msgDialog(parent, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; value = dValue;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;}</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"><a class="line" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159"> 306</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(wxWindow* parent, wxString strValue, <span class="keywordtype">int</span>&amp; value, wxString errorMsg)</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;{</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordtype">long</span> <span class="keywordtype">int</span> iValue = 0;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">if</span>(!strValue.ToLong(&amp;iValue)) {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; wxMessageDialog msgDialog(parent, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; value = iValue;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="class_element.html#abb2e253ec1e86353cd7160209c96553c"> 320</a></span>&#160;wxString <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(<span class="keywordtype">double</span> value, <span class="keywordtype">int</span> minDecimal)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; wxString str = wxString::FromCDouble(value, 13);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordtype">int</span> cutNumber = 0;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordtype">int</span> numDecimal = 0;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordtype">bool</span> foundCut = <span class="keyword">false</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)str.length() - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span>(str[i] != <span class="charliteral">&#39;0&#39;</span> &amp;&amp; !foundCut) {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; cutNumber = i;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; foundCut = <span class="keyword">true</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">if</span>(str[i] == <span class="charliteral">&#39;.&#39;</span>) {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; numDecimal = i;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; wxString formatedStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span>(cutNumber - numDecimal &gt; minDecimal)</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; formatedStr = wxString::FromDouble(value, cutNumber - numDecimal);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; formatedStr = wxString::FromDouble(value, minDecimal);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">return</span> formatedStr;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;}</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"><a class="line" href="class_element.html#a74ec9a279ac0127550e00941206dddb1"> 346</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a>(<a class="code" href="class_element.html">Element</a>* oldParent, <a class="code" href="class_element.html">Element</a>* newParent)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_parentList.size(); i++) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span>(m_parentList[i] == oldParent) m_parentList[i] = newParent;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;}</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62"> 353</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a>(<a class="code" href="class_element.html">Element</a>* child) { m_childList.push_back(child); }</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09"> 354</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a>(<a class="code" href="class_element.html">Element</a>* child)</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;{</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(); it != m_childList.end(); ++it) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(element == child) m_childList.erase(it--);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;}</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"><a class="line" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5"> 362</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a>(<a class="code" href="class_element.html">Element</a>* oldChild, <a class="code" href="class_element.html">Element</a>* newChild)</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;{</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_childList.size(); i++) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">if</span>(m_childList[i] == oldChild) m_childList[i] = newChild;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;}</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94"> 369</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; rgba[0] = red;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; rgba[1] = green;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; rgba[2] = blue;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; rgba[3] = alpha;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad"> 377</a></span>&#160;<a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a>() { SetRGBA(1.0, 1.0, 1.0, 1.0); }</div><div class="line"><a name="l00378"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a273751fe4b9efccc28565ec5be7d7967"> 378</a></span>&#160;<a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160;{</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; SetRGBA(red, green, blue, alpha);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"><a class="line" href="class_element.html#a158e271d7f309cd49002ca3c98365e9b"> 383</a></span>&#160;<span class="keywordtype">double</span> <a class="code" href="class_element.html#a158e271d7f309cd49002ca3c98365e9b">Element::PointToLineDistance</a>(wxPoint2DDouble point, <span class="keywordtype">int</span>* segmentNumber)<span class="keyword"> const</span></div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="comment">//[Ref] http://geomalgorithms.com/a02-_lines.html</span></div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordtype">double</span> distance = 100.0; <span class="comment">// Big initial distance.</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; wxPoint2DDouble p0 = point;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordtype">double</span> d = 0.0;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; wxPoint2DDouble p1 = m_pointList[i];</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; wxPoint2DDouble p2 = m_pointList[i + 1];</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; wxPoint2DDouble v = p2 - p1;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; wxPoint2DDouble w = p0 - p1;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">double</span> c1 = w.m_x * v.m_x + w.m_y * v.m_y;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordtype">double</span> c2 = v.m_x * v.m_x + v.m_y * v.m_y;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span>(c1 &lt;= 0.0) {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; d = std::sqrt(std::pow(p0.m_y - p1.m_y, 2) + std::pow(p0.m_x - p1.m_x, 2));</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(c2 &lt;= c1) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; d = std::sqrt(std::pow(p0.m_y - p2.m_y, 2) + std::pow(p0.m_x - p2.m_x, 2));</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; d = std::abs((p2.m_y - p1.m_y) * p0.m_x - (p2.m_x - p1.m_x) * p0.m_y + p2.m_x * p1.m_y - p2.m_y * p1.m_x) /</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; std::sqrt(std::pow(p2.m_y - p1.m_y, 2) + std::pow(p2.m_x - p1.m_x, 2));</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>(d &lt; distance) {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; distance = d;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">if</span>(segmentNumber) *segmentNumber = i;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; }</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; }</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> distance;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div><div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00123">Element.cpp:123</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_ae425d7e4f94bf7280d7d68c577d2019e"><div class="ttname"><a href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a></div><div class="ttdeci">virtual void DrawTriangle(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_TRIANGLES) const</div><div class="ttdoc">Draw a triangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00060">Element.cpp:60</a></div></div>
+<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00089">Element.cpp:89</a></div></div>
+<div class="ttc" id="class_element_html_abfee7ea88f4689c2a6eb4d39452f84d8"><div class="ttname"><a href="class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8">Element::WorldToScreen</a></div><div class="ttdeci">virtual wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const</div><div class="ttdoc">Convert the element position to screen position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00124">Element.cpp:124</a></div></div>
+<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00235">Element.cpp:235</a></div></div>
+<div class="ttc" id="class_element_html_acfd2c0fe1af5a8ad6da393fb711fd69a"><div class="ttname"><a href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a></div><div class="ttdeci">static bool DoubleFromString(wxWindow *parent, wxString strValue, double &amp;value, wxString errorMsg)</div><div class="ttdoc">Get a double value from a string. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00292">Element.cpp:292</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00056">Element.h:56</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00369">Element.cpp:369</a></div></div>
+<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00354">Element.cpp:354</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="class_element_html_a57f5771fd003020fef3866a1d1dc7487"><div class="ttname"><a href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00263">Element.cpp:263</a></div></div>
+<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00069">Element.cpp:69</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00245">Element.cpp:245</a></div></div>
+<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00362">Element.cpp:362</a></div></div>
+<div class="ttc" id="class_element_html_a4c93a9e20ed0ca0c376cf412b4347159"><div class="ttname"><a href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a></div><div class="ttdeci">static bool IntFromString(wxWindow *parent, wxString strValue, int &amp;value, wxString errorMsg)</div><div class="ttdoc">Convert a string to int. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00306">Element.cpp:306</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_acc6fa05591fe3881c4d3ffee1bd5b0ad"><div class="ttname"><a href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a></div><div class="ttdeci">OpenGLColour()</div><div class="ttdoc">Default construnctor. Use SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00377">Element.cpp:377</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00057">Element.h:57</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_element_html_a4b6dd88902e04b52fe14dfc73c51fd50"><div class="ttname"><a href="class_element.html#a4b6dd88902e04b52fe14dfc73c51fd50">Element::DrawPoint</a></div><div class="ttdeci">virtual void DrawPoint(wxPoint2DDouble position, double size) const</div><div class="ttdoc">Draw a point. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00139">Element.cpp:139</a></div></div>
+<div class="ttc" id="class_element_html_ad1d0d803fe522d030e2be8dc99eb9b39"><div class="ttname"><a href="class_element.html#ad1d0d803fe522d030e2be8dc99eb9b39">Element::DrawPickbox</a></div><div class="ttdeci">virtual void DrawPickbox(wxPoint2DDouble position) const</div><div class="ttdoc">Draw pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00098">Element.cpp:98</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00055">Element.h:55</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00346">Element.cpp:346</a></div></div>
+<div class="ttc" id="class_element_html_a158e271d7f309cd49002ca3c98365e9b"><div class="ttname"><a href="class_element.html#a158e271d7f309cd49002ca3c98365e9b">Element::PointToLineDistance</a></div><div class="ttdeci">virtual double PointToLineDistance(wxPoint2DDouble point, int *segmentNumber=NULL) const</div><div class="ttdoc">Calculate the distance between a line (formed by point list) and a point. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00383">Element.cpp:383</a></div></div>
+<div class="ttc" id="class_element_html_ab0d0e20be9a36ae676202db753faeec9"><div class="ttname"><a href="class_element.html#ab0d0e20be9a36ae676202db753faeec9">Element::Element</a></div><div class="ttdeci">Element()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00023">Element.cpp:23</a></div></div>
+<div class="ttc" id="class_element_html_a35567bc1e306c6db9522ad05a87b98f5"><div class="ttname"><a href="class_element.html#a35567bc1e306c6db9522ad05a87b98f5">Element::DrawCircle</a></div><div class="ttdeci">virtual void DrawCircle(wxPoint2DDouble position, double radius, int numSegments, GLenum mode=GL_LINE_LOOP) const</div><div class="ttdoc">Draw a circle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00033">Element.cpp:33</a></div></div>
+<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00117">Element.cpp:117</a></div></div>
+<div class="ttc" id="class_element_html_a13d54ba9c08b6bec651402f1c2bb002c"><div class="ttname"><a href="class_element.html#a13d54ba9c08b6bec651402f1c2bb002c">Element::~Element</a></div><div class="ttdeci">virtual ~Element()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00024">Element.cpp:24</a></div></div>
+<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00147">Element.cpp:147</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_element_8h.html b/docs/doxygen/html/_element_8h.html
index 4a0ccc5..7fda9d3 100644
--- a/docs/doxygen/html/_element_8h.html
+++ b/docs/doxygen/html/_element_8h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,13 +91,12 @@ $(document).ready(function(){initNavTree('_element_8h.html','');});
<div class="title">Element.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
-
-<p>Class to manage color of OpenGL.
-<a href="#details">More...</a></p>
<div class="textblock"><code>#include &lt;wx/msgdlg.h&gt;</code><br />
<code>#include &lt;wx/geometry.h&gt;</code><br />
<code>#include &lt;wx/cursor.h&gt;</code><br />
<code>#include &lt;wx/menu.h&gt;</code><br />
+<code>#include &lt;wx/stdpaths.h&gt;</code><br />
+<code>#include &lt;wx/filename.h&gt;</code><br />
<code>#include &lt;GL/gl.h&gt;</code><br />
<code>#include &lt;complex&gt;</code><br />
</div>
@@ -100,8 +105,10 @@ $(document).ready(function(){initNavTree('_element_8h.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_open_g_l_colour.html">OpenGLColour</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to manage color of OpenGL. <a href="class_open_g_l_colour.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_element.html">Element</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of all elements of the program. This class is responsible for manage graphical and his data. <a href="class_element.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
@@ -132,11 +139,7 @@ Enumerations</h2></td></tr>
</td></tr>
<tr class="separator:a0a9284bee7d4ad748c4a740fdeb3f049"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Class to manage color of OpenGL. </p>
-
-<p class="definition">Definition in file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
-</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a0a9284bee7d4ad748c4a740fdeb3f049"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0a9284bee7d4ad748c4a740fdeb3f049">&#9670;&nbsp;</a></span>ContextMenuID</h2>
@@ -165,7 +168,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00032">32</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00051">51</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -199,7 +202,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00018">18</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00037">37</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/_element_8h_source.html b/docs/doxygen/html/_element_8h_source.html
index ebb3281..d71ef94 100644
--- a/docs/doxygen/html/_element_8h_source.html
+++ b/docs/doxygen/html/_element_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,70 +88,70 @@ $(document).ready(function(){initNavTree('_element_8h_source.html','');});
<div class="title">Element.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ELEMENT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ELEMENT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/geometry.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/cursor.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/menu.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;complex&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment">//#include &lt;wx/log.h&gt;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316"> 18</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316">PickboxID</a> {</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"> 19</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a> = 0, </div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"> 20</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>, </div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"> 21</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>, </div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d"> 22</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d">ID_PB_RIGHT_BOTTOM</a>, </div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c"> 23</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c">ID_PB_RIGHT_TOP</a>, </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f"> 24</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f">ID_PB_LEFT_BOTTOM</a>, </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb"> 25</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb">ID_PB_LEFT_TOP</a> </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;};</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049"> 32</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049">ContextMenuID</a> {</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"> 33</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a> = 0, </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"> 34</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"> 35</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>, </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"> 36</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>, </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"> 37</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>, </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"> 38</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a> </div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0"> 68</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">~OpenGLColour</a>() {}</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066"> 83</a></span>&#160; <span class="keyword">const</span> GLdouble* <a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rgba; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; GLdouble rgba[4];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;};</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_element.html"> 88</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_element.html">Element</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_element.html">Element</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_element.html#add5da19e56211c76bea78638eca87150"> 105</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#add5da19e56211c76bea78638eca87150">SetDragging</a>(<span class="keywordtype">bool</span> dragging = <span class="keyword">true</span>) { m_dragging = dragging; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec"> 111</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(<span class="keywordtype">double</span> height) { m_height = height; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> SetPosition(<span class="keyword">const</span> wxPoint2DDouble position);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"><a class="line" href="class_element.html#a5279e5a513391d399d576bcb83df736b"> 123</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keywordtype">bool</span> selected = <span class="keyword">true</span>) { m_selected = selected; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b"> 129</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(<span class="keywordtype">double</span> width) { m_width = width; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f"> 135</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(<span class="keywordtype">double</span> angle) { m_angle = angle; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c"> 141</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keywordtype">bool</span> showPickbox = <span class="keyword">true</span>) { m_showPickbox = showPickbox; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_element.html#afed922f1c0803ebdc96e785a7f696504"> 147</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#afed922f1c0803ebdc96e785a7f696504">SetBorderSize</a>(<span class="keywordtype">double</span> borderSize) { m_borderSize = borderSize; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordtype">bool</span> SetOnline(<span class="keywordtype">bool</span> online = <span class="keyword">true</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"><a class="line" href="class_element.html#a88941f383fb321b1be441838e2b8700f"> 159</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a88941f383fb321b1be441838e2b8700f">SetPointList</a>(std::vector&lt;wxPoint2DDouble&gt; pointList) { m_pointList = pointList; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_element.html#ab195252edc86fb98ea011050593e7a8a"> 165</a></span>&#160; wxRect2DDouble <a class="code" href="class_element.html#ab195252edc86fb98ea011050593e7a8a">GetRect</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"><a class="line" href="class_element.html#a536ad18a847dcc979c984b3cb287f238"> 171</a></span>&#160; wxPoint2DDouble <a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_position; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9"> 177</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9">IsDragging</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dragging; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_element.html#a616c73ff20402109ede68579094acc3d"> 183</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_height; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="class_element.html#ac42604083db300d20c010b50084de91b"> 189</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_selected; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00"> 195</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_width; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"><a class="line" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f"> 201</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_angle; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb"> 207</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rotationAngle; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323"> 213</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_showPickbox; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"><a class="line" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa"> 219</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_online; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"><a class="line" href="class_element.html#aff2870f5979a84a30c27917cb33271f9"> 225</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;wxPoint2DDouble&gt; <a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pointList; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_element.html#a569178e9138490a981511a644536c0f9"> 234</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="class_element.html#ad1f153a87797633ab310d07e1d06eba9"> 240</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#ad1f153a87797633ab310d07e1d06eba9">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent) { m_parentList.push_back(parent); }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"><a class="line" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3"> 258</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>() { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"><a class="line" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2"> 264</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) { m_elementID = id; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"><a class="line" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee"> 270</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementID; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddChild(<a class="code" href="class_element.html">Element</a>* child);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveChild(<a class="code" href="class_element.html">Element</a>* child);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceChild(<a class="code" href="class_element.html">Element</a>* oldChild, <a class="code" href="class_element.html">Element</a>* newChild);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"><a class="line" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486"> 295</a></span>&#160; <span class="keyword">virtual</span> wxString <a class="code" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">GetTipText</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxEmptyString; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187"> 302</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const </span>{}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"><a class="line" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e"> 308</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>) {}</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e"> 315</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">GetContextMenu</a>(wxMenu&amp; menu) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;</div><div class="line"><a name="l00321"></a><span class="lineno"><a class="line" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e"> 321</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">AddPoint</a>(wxPoint2DDouble point) {}</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd"> 341</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) {}</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"><a class="line" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4"> 348</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">NodeContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"><a class="line" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c"> 353</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>() {}</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5"> 361</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"><a class="line" href="class_element.html#a9504437b60faf2c5a27584de8a24810c"> 367</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent) {}</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceParent(<a class="code" href="class_element.html">Element</a>* oldParent, <a class="code" href="class_element.html">Element</a>* newParent);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"><a class="line" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3"> 381</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>) {}</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="class_element.html#af4815de7e7698ea116e8e2af51414050"> 389</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"><a class="line" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525"> 395</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">MovePickbox</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="class_element.html#a245924c5be948397b101787dbea565ea"> 401</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_element.html#a245924c5be948397b101787dbea565ea">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_ARROW; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"><a class="line" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33"> 406</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>() { m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>; }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a"> 411</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">ResetNodes</a>() { m_activeNodeID = 0; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; WorldToScreen(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale, <span class="keywordtype">double</span> offsetX = 0.0, <span class="keywordtype">double</span> offsetY = 0.0) <span class="keyword">const</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble WorldToScreen(wxPoint2DDouble position,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; wxPoint2DDouble translation,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">double</span> scale,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordtype">double</span> offsetX = 0.0,</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordtype">double</span> offsetY = 0.0) <span class="keyword">const</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span></div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, <span class="keywordtype">double</span> angle1, <span class="keywordtype">double</span> angle2) <span class="keyword">const</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawCircle(wxPoint2DDouble position, <span class="keywordtype">double</span> radius, <span class="keywordtype">int</span> numSegments, GLenum mode = GL_LINE_LOOP) <span class="keyword">const</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawArc(wxPoint2DDouble position,</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordtype">double</span> radius,</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">double</span> finalAngle,</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordtype">int</span> numSegments,</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; GLenum mode = GL_LINE_LOOP) <span class="keyword">const</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawRectangle(wxPoint2DDouble position, <span class="keywordtype">double</span> width, <span class="keywordtype">double</span> height, GLenum mode = GL_QUADS) <span class="keyword">const</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawRectangle(wxPoint2DDouble* points, GLenum mode = GL_QUADS) <span class="keyword">const</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawTriangle(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode = GL_TRIANGLES) <span class="keyword">const</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPoint(wxPoint2DDouble position, <span class="keywordtype">double</span> size) <span class="keyword">const</span>;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawLine(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode = GL_LINE_STRIP) <span class="keyword">const</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPickbox(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, <span class="keywordtype">double</span> angle, <span class="keywordtype">bool</span> degrees = <span class="keyword">true</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"><a class="line" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09"> 517</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;Element*&gt; <a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_parentList; }</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"><a class="line" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0"> 523</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;Element*&gt; <a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_childList; }</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="comment">// virtual wxPoint2DDouble GetMoveStartPosition() const { return m_moveStartPt; }</span></div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="comment">// virtual wxPoint2DDouble GetMovePosition() const { return m_movePos; }</span></div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculateBoundaries(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom) <span class="keyword">const</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GeneralMenuItens(wxMenu&amp; menu);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"><a class="line" href="class_element.html#ae1652eded3ccbd241a783691117418b2"> 547</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> DoubleFromString(wxWindow* parent, wxString strValue, <span class="keywordtype">double</span>&amp; value, wxString errorMsg);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> IntFromString(wxWindow* parent, wxString strValue, <span class="keywordtype">int</span>&amp; value, wxString errorMsg);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">static</span> wxString StringFromDouble(<span class="keywordtype">double</span> value, <span class="keywordtype">int</span> minDecimal = 1);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> PointToLineDistance(wxPoint2DDouble point, <span class="keywordtype">int</span>* segmentNumber = NULL) <span class="keyword">const</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordtype">int</span> m_elementID = 0;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; std::vector&lt;Element*&gt; m_parentList;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; std::vector&lt;Element*&gt; m_childList;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; wxRect2DDouble m_rect;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; wxPoint2DDouble m_position;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">double</span> m_width = 0.0;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordtype">double</span> m_height = 0.0;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordtype">double</span> m_angle = 0.0;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordtype">double</span> m_borderSize = 2.0;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keywordtype">double</span> m_rotationAngle = 45.0;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordtype">double</span> m_switchSize = 10.0;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; std::vector&lt;wxRect2DDouble&gt; m_switchRect;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordtype">bool</span> m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">bool</span> m_dragging = <span class="keyword">false</span>;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordtype">bool</span> m_showPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordtype">int</span> m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordtype">int</span> m_activeNodeID = 0;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_pointList;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_movePts;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; wxPoint2DDouble m_moveStartPt;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; wxPoint2DDouble m_movePos;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordtype">bool</span> m_online = <span class="keyword">true</span>;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_selectionColour;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;};</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="preprocessor">#endif // ELEMENT_H</span></div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_element_html_ab8bf35b4a205fa58772402cea7fad89c"><div class="ttname"><a href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element::ShowPickbox</a></div><div class="ttdeci">void ShowPickbox(bool showPickbox=true)</div><div class="ttdoc">Set if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00141">Element.h:141</a></div></div>
-<div class="ttc" id="class_element_html_aa40c60c03d6a76639d8c6f6bab86720e"><div class="ttname"><a href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">Element::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00321">Element.h:321</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00123">Element.h:123</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_element_html_a5da121470a0c26c6b5c57a7c4eeac48b"><div class="ttname"><a href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">Element::SetWidth</a></div><div class="ttdeci">void SetWidth(double width)</div><div class="ttdoc">Set element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00129">Element.h:129</a></div></div>
-<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00523">Element.h:523</a></div></div>
-<div class="ttc" id="class_element_html_a3be3ed2876d3bb547c43caab95353f33"><div class="ttname"><a href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">Element::ResetPickboxes</a></div><div class="ttdeci">virtual void ResetPickboxes()</div><div class="ttdoc">Remove the pickboxes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00406">Element.h:406</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_element_html_a95b4f7e9341883ec39d0201148afffb4"><div class="ttname"><a href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00348">Element.h:348</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049">ContextMenuID</a></div><div class="ttdeci">ContextMenuID</div><div class="ttdoc">ID of contex menu itens. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00032">Element.h:32</a></div></div>
-<div class="ttc" id="class_element_html_af4815de7e7698ea116e8e2af51414050"><div class="ttname"><a href="class_element.html#af4815de7e7698ea116e8e2af51414050">Element::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00389">Element.h:389</a></div></div>
-<div class="ttc" id="class_element_html_a499c3b52be27d2bf436a13b6f5353b9c"><div class="ttname"><a href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">Element::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00353">Element.h:353</a></div></div>
-<div class="ttc" id="class_element_html_a88941f383fb321b1be441838e2b8700f"><div class="ttname"><a href="class_element.html#a88941f383fb321b1be441838e2b8700f">Element::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00159">Element.h:159</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00037">Element.h:37</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00350">Element.cpp:350</a></div></div>
-<div class="ttc" id="class_element_html_a870e266e0457bacbc3f7ef1fb70c6fdd"><div class="ttname"><a href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00341">Element.h:341</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d">ID_PB_RIGHT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00022">Element.h:22</a></div></div>
-<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00234">Element.h:234</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00034">Element.h:34</a></div></div>
+<a href="_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ELEMENT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ELEMENT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/geometry.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/cursor.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/menu.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;wx/stdpaths.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;wx/filename.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &lt;complex&gt;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="comment">//#include &lt;wx/log.h&gt;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316"> 37</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316">PickboxID</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"> 38</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a> = 0, </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"> 39</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a>, </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"> 40</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d"> 41</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d">ID_PB_RIGHT_BOTTOM</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c"> 42</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c">ID_PB_RIGHT_TOP</a>, </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f"> 43</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f">ID_PB_LEFT_BOTTOM</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb"> 44</a></span>&#160; <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb">ID_PB_LEFT_TOP</a> </div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049"> 51</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049">ContextMenuID</a> {</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"> 52</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a> = 0, </div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"> 53</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>, </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"> 54</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>, </div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"> 55</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>, </div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"> 56</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>, </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"> 57</a></span>&#160; <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a> </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html"> 67</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour</a>();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0"> 87</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">~OpenGLColour</a>() {}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"><a class="line" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066"> 101</a></span>&#160; <span class="keyword">const</span> GLdouble* <a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> rgba; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; GLdouble rgba[4];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;};</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_element.html"> 113</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="class_element.html">Element</a>();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_element.html">Element</a>();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_element.html#add5da19e56211c76bea78638eca87150"> 130</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#add5da19e56211c76bea78638eca87150">SetDragging</a>(<span class="keywordtype">bool</span> dragging = <span class="keyword">true</span>) { m_dragging = dragging; }</div><div class="line"><a name="l00135"></a><span class="lineno"><a class="line" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec"> 135</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(<span class="keywordtype">double</span> height) { m_height = height; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> SetPosition(<span class="keyword">const</span> wxPoint2DDouble position);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_element.html#a5279e5a513391d399d576bcb83df736b"> 146</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keywordtype">bool</span> selected = <span class="keyword">true</span>) { m_selected = selected; }</div><div class="line"><a name="l00151"></a><span class="lineno"><a class="line" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b"> 151</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(<span class="keywordtype">double</span> width) { m_width = width; }</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f"> 156</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(<span class="keywordtype">double</span> angle) { m_angle = angle; }</div><div class="line"><a name="l00161"></a><span class="lineno"><a class="line" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c"> 161</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keywordtype">bool</span> showPickbox = <span class="keyword">true</span>) { m_showPickbox = showPickbox; }</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="class_element.html#afed922f1c0803ebdc96e785a7f696504"> 166</a></span>&#160; <span class="keywordtype">void</span> <a class="code" href="class_element.html#afed922f1c0803ebdc96e785a7f696504">SetBorderSize</a>(<span class="keywordtype">double</span> borderSize) { m_borderSize = borderSize; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">bool</span> SetOnline(<span class="keywordtype">bool</span> online = <span class="keyword">true</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="class_element.html#a88941f383fb321b1be441838e2b8700f"> 177</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a88941f383fb321b1be441838e2b8700f">SetPointList</a>(std::vector&lt;wxPoint2DDouble&gt; pointList) { m_pointList = pointList; }</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_element.html#ab195252edc86fb98ea011050593e7a8a"> 182</a></span>&#160; wxRect2DDouble <a class="code" href="class_element.html#ab195252edc86fb98ea011050593e7a8a">GetRect</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect; }</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_element.html#a536ad18a847dcc979c984b3cb287f238"> 187</a></span>&#160; wxPoint2DDouble <a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_position; }</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9"> 192</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9">IsDragging</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dragging; }</div><div class="line"><a name="l00197"></a><span class="lineno"><a class="line" href="class_element.html#a616c73ff20402109ede68579094acc3d"> 197</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_height; }</div><div class="line"><a name="l00202"></a><span class="lineno"><a class="line" href="class_element.html#ac42604083db300d20c010b50084de91b"> 202</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_selected; }</div><div class="line"><a name="l00207"></a><span class="lineno"><a class="line" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00"> 207</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_width; }</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f"> 212</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_angle; }</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb"> 217</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rotationAngle; }</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323"> 222</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_showPickbox; }</div><div class="line"><a name="l00227"></a><span class="lineno"><a class="line" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa"> 227</a></span>&#160; <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_online; }</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="class_element.html#aff2870f5979a84a30c27917cb33271f9"> 232</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;wxPoint2DDouble&gt; <a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pointList; }</div><div class="line"><a name="l00240"></a><span class="lineno"><a class="line" href="class_element.html#a569178e9138490a981511a644536c0f9"> 240</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00245"></a><span class="lineno"><a class="line" href="class_element.html#ad1f153a87797633ab310d07e1d06eba9"> 245</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#ad1f153a87797633ab310d07e1d06eba9">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent) { m_parentList.push_back(parent); }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span> = 0;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"><a class="line" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3"> 262</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>() { <span class="keywordflow">return</span> NULL; }</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2"> 267</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) { m_elementID = id; }</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee"> 272</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> <a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementID; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddChild(<a class="code" href="class_element.html">Element</a>* child);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveChild(<a class="code" href="class_element.html">Element</a>* child);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceChild(<a class="code" href="class_element.html">Element</a>* oldChild, <a class="code" href="class_element.html">Element</a>* newChild);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"><a class="line" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486"> 296</a></span>&#160; <span class="keyword">virtual</span> wxString <a class="code" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">GetTipText</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxEmptyString; }</div><div class="line"><a name="l00302"></a><span class="lineno"><a class="line" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187"> 302</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const </span>{}</div><div class="line"><a name="l00307"></a><span class="lineno"><a class="line" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e"> 307</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>) {}</div><div class="line"><a name="l00313"></a><span class="lineno"><a class="line" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e"> 313</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">GetContextMenu</a>(wxMenu&amp; menu) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00318"></a><span class="lineno"><a class="line" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e"> 318</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">AddPoint</a>(wxPoint2DDouble point) {}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"><a class="line" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd"> 337</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) {}</div><div class="line"><a name="l00343"></a><span class="lineno"><a class="line" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4"> 343</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">NodeContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00347"></a><span class="lineno"><a class="line" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c"> 347</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>() {}</div><div class="line"><a name="l00354"></a><span class="lineno"><a class="line" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5"> 354</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_element.html#a9504437b60faf2c5a27584de8a24810c"> 359</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent) {}</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceParent(<a class="code" href="class_element.html">Element</a>* oldParent, <a class="code" href="class_element.html">Element</a>* newParent);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"><a class="line" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3"> 372</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>) {}</div><div class="line"><a name="l00379"></a><span class="lineno"><a class="line" href="class_element.html#af4815de7e7698ea116e8e2af51414050"> 379</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00384"></a><span class="lineno"><a class="line" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525"> 384</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">MovePickbox</a>(wxPoint2DDouble position) {}</div><div class="line"><a name="l00389"></a><span class="lineno"><a class="line" href="class_element.html#a245924c5be948397b101787dbea565ea"> 389</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_element.html#a245924c5be948397b101787dbea565ea">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_ARROW; }</div><div class="line"><a name="l00393"></a><span class="lineno"><a class="line" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33"> 393</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>() { m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>; }</div><div class="line"><a name="l00397"></a><span class="lineno"><a class="line" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a"> 397</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">ResetNodes</a>() { m_activeNodeID = 0; }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble WorldToScreen(wxPoint2DDouble translation,</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordtype">double</span> scale,</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordtype">double</span> offsetX = 0.0,</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordtype">double</span> offsetY = 0.0) <span class="keyword">const</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble WorldToScreen(wxPoint2DDouble position,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; wxPoint2DDouble translation,</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">double</span> scale,</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordtype">double</span> offsetX = 0.0,</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordtype">double</span> offsetY = 0.0) <span class="keyword">const</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> RotatedRectanglesIntersects(wxRect2DDouble rect1,</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; wxRect2DDouble rect2,</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordtype">double</span> angle1,</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordtype">double</span> angle2) <span class="keyword">const</span>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawCircle(wxPoint2DDouble position, <span class="keywordtype">double</span> radius, <span class="keywordtype">int</span> numSegments, GLenum mode = GL_LINE_LOOP) <span class="keyword">const</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawArc(wxPoint2DDouble position,</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordtype">double</span> radius,</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordtype">double</span> finalAngle,</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordtype">int</span> numSegments,</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; GLenum mode = GL_LINE_LOOP) <span class="keyword">const</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawRectangle(wxPoint2DDouble position, <span class="keywordtype">double</span> width, <span class="keywordtype">double</span> height, GLenum mode = GL_QUADS) <span class="keyword">const</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawRectangle(wxPoint2DDouble* points, GLenum mode = GL_QUADS) <span class="keyword">const</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawTriangle(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode = GL_TRIANGLES) <span class="keyword">const</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPoint(wxPoint2DDouble position, <span class="keywordtype">double</span> size) <span class="keyword">const</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawLine(std::vector&lt;wxPoint2DDouble&gt; points, GLenum mode = GL_LINE_STRIP) <span class="keyword">const</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPickbox(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, <span class="keywordtype">double</span> angle, <span class="keywordtype">bool</span> degrees = <span class="keyword">true</span>) <span class="keyword">const</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09"> 506</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;Element*&gt; <a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_parentList; }</div><div class="line"><a name="l00511"></a><span class="lineno"><a class="line" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0"> 511</a></span>&#160; <span class="keyword">virtual</span> std::vector&lt;Element*&gt; <a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_childList; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="comment">// virtual wxPoint2DDouble GetMoveStartPosition() const { return m_moveStartPt; }</span></div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="comment">// virtual wxPoint2DDouble GetMovePosition() const { return m_movePos; }</span></div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculateBoundaries(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom) <span class="keyword">const</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GeneralMenuItens(wxMenu&amp; menu);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"><a class="line" href="class_element.html#ae1652eded3ccbd241a783691117418b2"> 534</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> DoubleFromString(wxWindow* parent, wxString strValue, <span class="keywordtype">double</span>&amp; value, wxString errorMsg);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">static</span> <span class="keywordtype">bool</span> IntFromString(wxWindow* parent, wxString strValue, <span class="keywordtype">int</span>&amp; value, wxString errorMsg);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">static</span> wxString StringFromDouble(<span class="keywordtype">double</span> value, <span class="keywordtype">int</span> minDecimal = 1);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> PointToLineDistance(wxPoint2DDouble point, <span class="keywordtype">int</span>* segmentNumber = NULL) <span class="keyword">const</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordtype">int</span> m_elementID = 0;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; std::vector&lt;Element*&gt; m_parentList;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; std::vector&lt;Element*&gt; m_childList;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; wxRect2DDouble m_rect;</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; wxPoint2DDouble m_position;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordtype">double</span> m_width = 0.0;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordtype">double</span> m_height = 0.0;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordtype">double</span> m_angle = 0.0;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordtype">double</span> m_borderSize = 2.0;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordtype">double</span> m_rotationAngle = 45.0;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordtype">double</span> m_switchSize = 10.0;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; std::vector&lt;wxRect2DDouble&gt; m_switchRect;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordtype">bool</span> m_selected = <span class="keyword">false</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordtype">bool</span> m_dragging = <span class="keyword">false</span>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordtype">bool</span> m_showPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordtype">int</span> m_activePickboxID = <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordtype">int</span> m_activeNodeID = 0;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_pointList;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_movePts;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; wxPoint2DDouble m_moveStartPt;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; wxPoint2DDouble m_movePos;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordtype">bool</span> m_online = <span class="keyword">true</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_selectionColour;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;};</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="preprocessor">#endif // ELEMENT_H</span></div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_element_html_ab8bf35b4a205fa58772402cea7fad89c"><div class="ttname"><a href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element::ShowPickbox</a></div><div class="ttdeci">void ShowPickbox(bool showPickbox=true)</div><div class="ttdoc">Set if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00161">Element.h:161</a></div></div>
+<div class="ttc" id="class_element_html_aa40c60c03d6a76639d8c6f6bab86720e"><div class="ttname"><a href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">Element::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00318">Element.h:318</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00146">Element.h:146</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_element_html_a5da121470a0c26c6b5c57a7c4eeac48b"><div class="ttname"><a href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">Element::SetWidth</a></div><div class="ttdeci">void SetWidth(double width)</div><div class="ttdoc">Set element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00151">Element.h:151</a></div></div>
+<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00511">Element.h:511</a></div></div>
+<div class="ttc" id="class_element_html_a3be3ed2876d3bb547c43caab95353f33"><div class="ttname"><a href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">Element::ResetPickboxes</a></div><div class="ttdeci">virtual void ResetPickboxes()</div><div class="ttdoc">Remove the pickboxes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00393">Element.h:393</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_element_html_a95b4f7e9341883ec39d0201148afffb4"><div class="ttname"><a href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00343">Element.h:343</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049">ContextMenuID</a></div><div class="ttdeci">ContextMenuID</div><div class="ttdoc">ID of contex menu itens. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00051">Element.h:51</a></div></div>
+<div class="ttc" id="class_element_html_af4815de7e7698ea116e8e2af51414050"><div class="ttname"><a href="class_element.html#af4815de7e7698ea116e8e2af51414050">Element::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00379">Element.h:379</a></div></div>
+<div class="ttc" id="class_element_html_a499c3b52be27d2bf436a13b6f5353b9c"><div class="ttname"><a href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">Element::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00347">Element.h:347</a></div></div>
+<div class="ttc" id="class_element_html_a88941f383fb321b1be441838e2b8700f"><div class="ttname"><a href="class_element.html#a88941f383fb321b1be441838e2b8700f">Element::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00177">Element.h:177</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00056">Element.h:56</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00369">Element.cpp:369</a></div></div>
+<div class="ttc" id="class_element_html_a870e266e0457bacbc3f7ef1fb70c6fdd"><div class="ttname"><a href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00337">Element.h:337</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a982b811b9fa895eb15a3f8400ffa385d">ID_PB_RIGHT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00041">Element.h:41</a></div></div>
+<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00240">Element.h:240</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00053">Element.h:53</a></div></div>
<div class="ttc" id="class_element_html_a551ed1eeab446b5366d56c2ee9dec187"><div class="ttname"><a href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00302">Element.h:302</a></div></div>
-<div class="ttc" id="class_element_html_abd94ea2ca7984d9a32d3ffd23837a323"><div class="ttname"><a href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">Element::IsPickboxShown</a></div><div class="ttdeci">bool IsPickboxShown() const</div><div class="ttdoc">Checks if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00213">Element.h:213</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="class_element_html_ab195252edc86fb98ea011050593e7a8a"><div class="ttname"><a href="class_element.html#ab195252edc86fb98ea011050593e7a8a">Element::GetRect</a></div><div class="ttdeci">wxRect2DDouble GetRect() const</div><div class="ttdoc">Get the element rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00165">Element.h:165</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_acc6fa05591fe3881c4d3ffee1bd5b0ad"><div class="ttname"><a href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a></div><div class="ttdeci">OpenGLColour()</div><div class="ttdoc">Default construnctor. Use SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00358">Element.cpp:358</a></div></div>
-<div class="ttc" id="class_element_html_aa5d8558082ce38832af3b8c8ac1cf36f"><div class="ttname"><a href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">Element::SetAngle</a></div><div class="ttdeci">void SetAngle(double angle)</div><div class="ttdoc">Set element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00135">Element.h:135</a></div></div>
-<div class="ttc" id="class_element_html_a23e1fe2745c70cfb43725f608c4bce00"><div class="ttname"><a href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">Element::GetWidth</a></div><div class="ttdeci">double GetWidth() const</div><div class="ttdoc">Get the element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00195">Element.h:195</a></div></div>
-<div class="ttc" id="class_element_html_aa79db7f54ba9754e953b5059a1d79486"><div class="ttname"><a href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00295">Element.h:295</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a4b9a726773b4c82935f15add648ed2a0"><div class="ttname"><a href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">OpenGLColour::~OpenGLColour</a></div><div class="ttdeci">virtual ~OpenGLColour()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00068">Element.h:68</a></div></div>
-<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00308">Element.h:308</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb">ID_PB_LEFT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00025">Element.h:25</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c">ID_PB_RIGHT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00023">Element.h:23</a></div></div>
-<div class="ttc" id="class_element_html_a2a436b0497017a1c3d03dba5e59f037e"><div class="ttname"><a href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00315">Element.h:315</a></div></div>
-<div class="ttc" id="class_element_html_a616c73ff20402109ede68579094acc3d"><div class="ttname"><a href="class_element.html#a616c73ff20402109ede68579094acc3d">Element::GetHeight</a></div><div class="ttdeci">double GetHeight() const</div><div class="ttdoc">Get the element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00183">Element.h:183</a></div></div>
-<div class="ttc" id="class_element_html_aff2870f5979a84a30c27917cb33271f9"><div class="ttname"><a href="class_element.html#aff2870f5979a84a30c27917cb33271f9">Element::GetPointList</a></div><div class="ttdeci">virtual std::vector&lt; wxPoint2DDouble &gt; GetPointList() const</div><div class="ttdoc">Get the list of points that connect the element to bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00225">Element.h:225</a></div></div>
-<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00547">Element.h:547</a></div></div>
-<div class="ttc" id="class_element_html_ad1f153a87797633ab310d07e1d06eba9"><div class="ttname"><a href="class_element.html#ad1f153a87797633ab310d07e1d06eba9">Element::AddParent</a></div><div class="ttdeci">virtual void AddParent(Element *parent)</div><div class="ttdoc">Add a parent to the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00240">Element.h:240</a></div></div>
-<div class="ttc" id="class_element_html_a6f071b6dfd64721ca673bfbe1ca2d525"><div class="ttname"><a href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">Element::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00395">Element.h:395</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00036">Element.h:36</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00035">Element.h:35</a></div></div>
-<div class="ttc" id="class_element_html_a245924c5be948397b101787dbea565ea"><div class="ttname"><a href="class_element.html#a245924c5be948397b101787dbea565ea">Element::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00401">Element.h:401</a></div></div>
-<div class="ttc" id="class_element_html_afed922f1c0803ebdc96e785a7f696504"><div class="ttname"><a href="class_element.html#afed922f1c0803ebdc96e785a7f696504">Element::SetBorderSize</a></div><div class="ttdeci">void SetBorderSize(double borderSize)</div><div class="ttdoc">Set the size of the border (shown in selected elements). </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00147">Element.h:147</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316">PickboxID</a></div><div class="ttdeci">PickboxID</div><div class="ttdoc">ID of the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00018">Element.h:18</a></div></div>
-<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00189">Element.h:189</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="class_element_html_af26c67b6dd32eb1b3e417fddf54818c3"><div class="ttname"><a href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00381">Element.h:381</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00021">Element.h:21</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f">ID_PB_LEFT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00024">Element.h:24</a></div></div>
-<div class="ttc" id="class_element_html_a9aa2fec8b6c7bef4bf75b9f86fbb76f2"><div class="ttname"><a href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">Element::SetID</a></div><div class="ttdeci">virtual void SetID(int id)</div><div class="ttdoc">Set the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00264">Element.h:264</a></div></div>
-<div class="ttc" id="class_element_html_ac7490a91f3edfff08584567cc84d86b5"><div class="ttname"><a href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00361">Element.h:361</a></div></div>
-<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00270">Element.h:270</a></div></div>
-<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00367">Element.h:367</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00020">Element.h:20</a></div></div>
-<div class="ttc" id="class_element_html_a2f78fae8a5869ff53e87ecfdc6fc33b9"><div class="ttname"><a href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9">Element::IsDragging</a></div><div class="ttdeci">bool IsDragging() const</div><div class="ttdoc">Checks if the element is being dragged. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00177">Element.h:177</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_element_html_a8c16c17a6f22ffcdeb80ffa0ed27a72a"><div class="ttname"><a href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">Element::ResetNodes</a></div><div class="ttdeci">virtual void ResetNodes()</div><div class="ttdoc">Remove the active nodes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00411">Element.h:411</a></div></div>
-<div class="ttc" id="class_element_html_add5da19e56211c76bea78638eca87150"><div class="ttname"><a href="class_element.html#add5da19e56211c76bea78638eca87150">Element::SetDragging</a></div><div class="ttdeci">void SetDragging(bool dragging=true)</div><div class="ttdoc">Set if the element are being dragged. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00105">Element.h:105</a></div></div>
-<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00258">Element.h:258</a></div></div>
-<div class="ttc" id="class_element_html_a3687fe2558f6a27ee068fa7244f855eb"><div class="ttname"><a href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">Element::GetRotationAngle</a></div><div class="ttdeci">double GetRotationAngle() const</div><div class="ttdoc">Get the angle of rotation. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00207">Element.h:207</a></div></div>
-<div class="ttc" id="class_element_html_a88171a7f1d0d9273f6fd43a4945341ec"><div class="ttname"><a href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">Element::SetHeight</a></div><div class="ttdeci">void SetHeight(double height)</div><div class="ttdoc">Set element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00111">Element.h:111</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00019">Element.h:19</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="ttc" id="class_element_html_abd94ea2ca7984d9a32d3ffd23837a323"><div class="ttname"><a href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">Element::IsPickboxShown</a></div><div class="ttdeci">bool IsPickboxShown() const</div><div class="ttdoc">Checks if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00222">Element.h:222</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="class_element_html_ab195252edc86fb98ea011050593e7a8a"><div class="ttname"><a href="class_element.html#ab195252edc86fb98ea011050593e7a8a">Element::GetRect</a></div><div class="ttdeci">wxRect2DDouble GetRect() const</div><div class="ttdoc">Get the element rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00182">Element.h:182</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_acc6fa05591fe3881c4d3ffee1bd5b0ad"><div class="ttname"><a href="class_open_g_l_colour.html#acc6fa05591fe3881c4d3ffee1bd5b0ad">OpenGLColour::OpenGLColour</a></div><div class="ttdeci">OpenGLColour()</div><div class="ttdoc">Default construnctor. Use SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00377">Element.cpp:377</a></div></div>
+<div class="ttc" id="class_element_html_aa5d8558082ce38832af3b8c8ac1cf36f"><div class="ttname"><a href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">Element::SetAngle</a></div><div class="ttdeci">void SetAngle(double angle)</div><div class="ttdoc">Set element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00156">Element.h:156</a></div></div>
+<div class="ttc" id="class_element_html_a23e1fe2745c70cfb43725f608c4bce00"><div class="ttname"><a href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">Element::GetWidth</a></div><div class="ttdeci">double GetWidth() const</div><div class="ttdoc">Get the element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00207">Element.h:207</a></div></div>
+<div class="ttc" id="class_element_html_aa79db7f54ba9754e953b5059a1d79486"><div class="ttname"><a href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00296">Element.h:296</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a4b9a726773b4c82935f15add648ed2a0"><div class="ttname"><a href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">OpenGLColour::~OpenGLColour</a></div><div class="ttdeci">virtual ~OpenGLColour()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00087">Element.h:87</a></div></div>
+<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00307">Element.h:307</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00057">Element.h:57</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a49b276646725b598a6b3a24ee74e8afb">ID_PB_LEFT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00044">Element.h:44</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a34118762cdb912e35698c4550edf470c">ID_PB_RIGHT_TOP</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00042">Element.h:42</a></div></div>
+<div class="ttc" id="class_element_html_a2a436b0497017a1c3d03dba5e59f037e"><div class="ttname"><a href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00313">Element.h:313</a></div></div>
+<div class="ttc" id="class_element_html_a616c73ff20402109ede68579094acc3d"><div class="ttname"><a href="class_element.html#a616c73ff20402109ede68579094acc3d">Element::GetHeight</a></div><div class="ttdeci">double GetHeight() const</div><div class="ttdoc">Get the element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00197">Element.h:197</a></div></div>
+<div class="ttc" id="class_element_html_aff2870f5979a84a30c27917cb33271f9"><div class="ttname"><a href="class_element.html#aff2870f5979a84a30c27917cb33271f9">Element::GetPointList</a></div><div class="ttdeci">virtual std::vector&lt; wxPoint2DDouble &gt; GetPointList() const</div><div class="ttdoc">Get the list of points that connect the element to bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00232">Element.h:232</a></div></div>
+<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00534">Element.h:534</a></div></div>
+<div class="ttc" id="class_element_html_ad1f153a87797633ab310d07e1d06eba9"><div class="ttname"><a href="class_element.html#ad1f153a87797633ab310d07e1d06eba9">Element::AddParent</a></div><div class="ttdeci">virtual void AddParent(Element *parent)</div><div class="ttdoc">Add a parent to the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00245">Element.h:245</a></div></div>
+<div class="ttc" id="class_element_html_a6f071b6dfd64721ca673bfbe1ca2d525"><div class="ttname"><a href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">Element::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00384">Element.h:384</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00055">Element.h:55</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00054">Element.h:54</a></div></div>
+<div class="ttc" id="class_element_html_a245924c5be948397b101787dbea565ea"><div class="ttname"><a href="class_element.html#a245924c5be948397b101787dbea565ea">Element::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00389">Element.h:389</a></div></div>
+<div class="ttc" id="class_element_html_afed922f1c0803ebdc96e785a7f696504"><div class="ttname"><a href="class_element.html#afed922f1c0803ebdc96e785a7f696504">Element::SetBorderSize</a></div><div class="ttdeci">void SetBorderSize(double borderSize)</div><div class="ttdoc">Set the size of the border (shown in selected elements). </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00166">Element.h:166</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316">PickboxID</a></div><div class="ttdeci">PickboxID</div><div class="ttdoc">ID of the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00037">Element.h:37</a></div></div>
+<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00202">Element.h:202</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="class_element_html_af26c67b6dd32eb1b3e417fddf54818c3"><div class="ttname"><a href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00372">Element.h:372</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa8b70955f3c623a35fb64e0d95531721">ID_PB_LEFT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00040">Element.h:40</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316aa962fdbb47309de8b6f16025e2d46b2f">ID_PB_LEFT_BOTTOM</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00043">Element.h:43</a></div></div>
+<div class="ttc" id="class_element_html_a9aa2fec8b6c7bef4bf75b9f86fbb76f2"><div class="ttname"><a href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">Element::SetID</a></div><div class="ttdeci">virtual void SetID(int id)</div><div class="ttdoc">Set the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00267">Element.h:267</a></div></div>
+<div class="ttc" id="class_element_html_ac7490a91f3edfff08584567cc84d86b5"><div class="ttname"><a href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00354">Element.h:354</a></div></div>
+<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00272">Element.h:272</a></div></div>
+<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00359">Element.h:359</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0">ID_PB_RIGHT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00039">Element.h:39</a></div></div>
+<div class="ttc" id="class_element_html_a2f78fae8a5869ff53e87ecfdc6fc33b9"><div class="ttname"><a href="class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9">Element::IsDragging</a></div><div class="ttdeci">bool IsDragging() const</div><div class="ttdoc">Checks if the element is being dragged. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00192">Element.h:192</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_element_html_a8c16c17a6f22ffcdeb80ffa0ed27a72a"><div class="ttname"><a href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">Element::ResetNodes</a></div><div class="ttdeci">virtual void ResetNodes()</div><div class="ttdoc">Remove the active nodes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00397">Element.h:397</a></div></div>
+<div class="ttc" id="class_element_html_add5da19e56211c76bea78638eca87150"><div class="ttname"><a href="class_element.html#add5da19e56211c76bea78638eca87150">Element::SetDragging</a></div><div class="ttdeci">void SetDragging(bool dragging=true)</div><div class="ttdoc">Set if the element are being dragged. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00130">Element.h:130</a></div></div>
+<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00262">Element.h:262</a></div></div>
+<div class="ttc" id="class_element_html_a3687fe2558f6a27ee068fa7244f855eb"><div class="ttname"><a href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">Element::GetRotationAngle</a></div><div class="ttdeci">double GetRotationAngle() const</div><div class="ttdoc">Get the angle of rotation. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00217">Element.h:217</a></div></div>
+<div class="ttc" id="class_element_html_a88171a7f1d0d9273f6fd43a4945341ec"><div class="ttname"><a href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">Element::SetHeight</a></div><div class="ttdeci">void SetHeight(double height)</div><div class="ttdoc">Set element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00135">Element.h:135</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_element_data_object_8cpp_source.html b/docs/doxygen/html/_element_data_object_8cpp_source.html
index 76da35b..273056d 100644
--- a/docs/doxygen/html/_element_data_object_8cpp_source.html
+++ b/docs/doxygen/html/_element_data_object_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,10 +88,11 @@ $(document).ready(function(){initNavTree('_element_data_object_8cpp_source.html'
<div class="title">ElementDataObject.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ElementDataObject.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;ElementDataObject::ElementDataObject()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; : wxDataObjectSimple(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_elementsLists = <span class="keyword">new</span> <a class="code" href="struct_elements_lists.html">ElementsLists</a>();</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;ElementDataObject::ElementDataObject(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; : wxDataObjectSimple(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_elementsLists = <span class="keyword">new</span> <a class="code" href="struct_elements_lists.html">ElementsLists</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">if</span>(elementList.size() &gt; 0) {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="comment">// Separate buses (parents) from the rest of the elements (childs).</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bus.html">Bus</a>* bus = dynamic_cast&lt;Bus*&gt;(copy))</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_elementsLists-&gt;parentList.push_back(bus);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_elementsLists-&gt;elementList.push_back(copy);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;}</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;ElementDataObject::~ElementDataObject() {}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keywordtype">size_t</span> ElementDataObject::GetDataSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*); }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keywordtype">bool</span> ElementDataObject::GetDataHere(<span class="keywordtype">void</span>* buf)<span class="keyword"> const</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; *(<a class="code" href="struct_elements_lists.html">ElementsLists</a>**)buf = m_elementsLists;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">bool</span> ElementDataObject::SetData(<span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_elementsLists = *(<a class="code" href="struct_elements_lists.html">ElementsLists</a>**)buf;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00007">ElementDataObject.h:7</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00258">Element.h:258</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_data_object_8h.html">ElementDataObject.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;ElementDataObject::ElementDataObject() : wxDataObjectSimple(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_elementsLists = <span class="keyword">new</span> <a class="code" href="struct_elements_lists.html">ElementsLists</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;ElementDataObject::ElementDataObject(std::vector&lt;Element*&gt; elementList) : wxDataObjectSimple(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_elementsLists = <span class="keyword">new</span> <a class="code" href="struct_elements_lists.html">ElementsLists</a>();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span>(elementList.size() &gt; 0) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// Separate buses (parents) from the rest of the elements (childs).</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_bus.html">Bus</a>* bus = dynamic_cast&lt;Bus*&gt;(copy))</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_elementsLists-&gt;parentList.push_back(bus);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_elementsLists-&gt;elementList.push_back(copy);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;ElementDataObject::~ElementDataObject() {}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keywordtype">size_t</span> ElementDataObject::GetDataSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">sizeof</span>(<span class="keywordtype">void</span>*); }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keywordtype">bool</span> ElementDataObject::GetDataHere(<span class="keywordtype">void</span>* buf)<span class="keyword"> const</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; *(<a class="code" href="struct_elements_lists.html">ElementsLists</a>**)buf = m_elementsLists;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">bool</span> ElementDataObject::SetData(<span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_elementsLists = *(<a class="code" href="struct_elements_lists.html">ElementsLists</a>**)buf;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00024">ElementDataObject.h:24</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_element_data_object_8h_html"><div class="ttname"><a href="_element_data_object_8h.html">ElementDataObject.h</a></div></div>
+<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00262">Element.h:262</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_element_data_object_8h.html b/docs/doxygen/html/_element_data_object_8h.html
new file mode 100644
index 0000000..7c9b487
--- /dev/null
+++ b/docs/doxygen/html/_element_data_object_8h.html
@@ -0,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ElementDataObject.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_element_data_object_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ElementDataObject.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_workspace_8h_source.html">Workspace.h</a>&quot;</code><br />
+<code>#include &lt;wx/dataobj.h&gt;</code><br />
+</div>
+<p><a href="_element_data_object_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_elements_lists.html">ElementsLists</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_element_data_object.html">ElementDataObject</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to store the elements in the clipboard. <a href="class_element_data_object.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_element_data_object_8h.html">ElementDataObject.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_element_data_object_8h_source.html b/docs/doxygen/html/_element_data_object_8h_source.html
index 677d41a..d709e22 100644
--- a/docs/doxygen/html/_element_data_object_8h_source.html
+++ b/docs/doxygen/html/_element_data_object_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,14 +88,15 @@ $(document).ready(function(){initNavTree('_element_data_object_8h_source.html','
<div class="title">ElementDataObject.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ELEMENTDATAOBJECT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ELEMENTDATAOBJECT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Workspace.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/dataobj.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="struct_elements_lists.html"> 7</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_elements_lists.html">ElementsLists</a> {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; std::vector&lt;Bus*&gt; parentList;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;};</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_element_data_object.html"> 12</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a> : <span class="keyword">public</span> wxDataObjectSimple</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; ~<a class="code" href="class_element_data_object.html">ElementDataObject</a>();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">size_t</span> GetDataSize() <span class="keyword">const override</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">bool</span> GetDataHere(<span class="keywordtype">void</span>* buf) <span class="keyword">const override</span>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">bool</span> SetData(<span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf) <span class="keyword">override</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* GetElementsLists() { <span class="keywordflow">return</span> m_elementsLists; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* m_elementsLists = NULL;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#endif // ELEMENTDATAOBJECT_H</span></div><div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00007">ElementDataObject.h:7</a></div></div>
-<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00012">ElementDataObject.h:12</a></div></div>
+<a href="_element_data_object_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ELEMENTDATAOBJECT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ELEMENTDATAOBJECT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_workspace_8h.html">Workspace.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/dataobj.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="struct_elements_lists.html"> 24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_elements_lists.html">ElementsLists</a> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; std::vector&lt;Bus*&gt; parentList;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_element_data_object.html"> 36</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a> : <span class="keyword">public</span> wxDataObjectSimple</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; ~<a class="code" href="class_element_data_object.html">ElementDataObject</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">size_t</span> GetDataSize() <span class="keyword">const override</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">bool</span> GetDataHere(<span class="keywordtype">void</span>* buf) <span class="keyword">const override</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">bool</span> SetData(<span class="keywordtype">size_t</span> len, <span class="keyword">const</span> <span class="keywordtype">void</span>* buf) <span class="keyword">override</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* GetElementsLists() { <span class="keywordflow">return</span> m_elementsLists; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* m_elementsLists = NULL;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="preprocessor">#endif // ELEMENTDATAOBJECT_H</span></div><div class="ttc" id="_workspace_8h_html"><div class="ttname"><a href="_workspace_8h.html">Workspace.h</a></div></div>
+<div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00024">ElementDataObject.h:24</a></div></div>
+<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdoc">Class to store the elements in the clipboard. </div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00036">ElementDataObject.h:36</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ElementDataObject.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_element_data_object_8h.html">ElementDataObject.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_element_form_8cpp_source.html b/docs/doxygen/html/_element_form_8cpp_source.html
index d0cf593..ca0b601 100644
--- a/docs/doxygen/html/_element_form_8cpp_source.html
+++ b/docs/doxygen/html/_element_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_element_form_8h_source.html b/docs/doxygen/html/_element_form_8h_source.html
index 9db4411..a45a598 100644
--- a/docs/doxygen/html/_element_form_8h_source.html
+++ b/docs/doxygen/html/_element_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_element_form_bitmaps_8cpp_source.html b/docs/doxygen/html/_element_form_bitmaps_8cpp_source.html
index 24f54e4..e437032 100644
--- a/docs/doxygen/html/_element_form_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_element_form_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_element_plot_data_8cpp_source.html b/docs/doxygen/html/_element_plot_data_8cpp_source.html
index 61ab4b0..865ea35 100644
--- a/docs/doxygen/html/_element_plot_data_8cpp_source.html
+++ b/docs/doxygen/html/_element_plot_data_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,8 @@ $(document).ready(function(){initNavTree('_element_plot_data_8cpp_source.html','
<div class="title">ElementPlotData.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ElementPlotData.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;ElementPlotData::ElementPlotData(wxString name, CurveType curveType)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; m_name = name;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_curveType = curveType;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;ElementPlotData::~ElementPlotData() {}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keywordtype">void</span> ElementPlotData::AddData(std::vector&lt;double&gt; values, wxString name)</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = <span class="keyword">new</span> <a class="code" href="class_plot_data.html">PlotData</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; data-&gt;SetName(name);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; data-&gt;SetValues(values);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; data-&gt;SetPlot(<span class="keyword">false</span>);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; data-&gt;SetAxis(0);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; data-&gt;SetColour(*wxBLACK);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; data-&gt;SetPenType(wxPENSTYLE_SOLID);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; data-&gt;SetThick(2);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_elementData.push_back(data);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div><div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00010">ElementPlotData.h:10</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_plot_data_8h.html">ElementPlotData.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;ElementPlotData::ElementPlotData(wxString name, CurveType curveType)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_name = name;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_curveType = curveType;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;}</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;ElementPlotData::~ElementPlotData() {}</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keywordtype">void</span> ElementPlotData::AddData(std::vector&lt;double&gt; values, wxString name)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* data = <span class="keyword">new</span> <a class="code" href="class_plot_data.html">PlotData</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; data-&gt;SetName(name);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; data-&gt;SetValues(values);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; data-&gt;SetPlot(<span class="keyword">false</span>);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; data-&gt;SetAxis(0);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; data-&gt;SetColour(*wxBLACK);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; data-&gt;SetPenType(wxPENSTYLE_SOLID);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; data-&gt;SetThick(2);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_elementData.push_back(data);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="ttc" id="_element_plot_data_8h_html"><div class="ttname"><a href="_element_plot_data_8h.html">ElementPlotData.h</a></div></div>
+<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdoc">This class is responsible to manage the graphical data of electromechanical result to be plotted on c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00035">ElementPlotData.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_element_plot_data_8h.html b/docs/doxygen/html/_element_plot_data_8h.html
new file mode 100644
index 0000000..efd1791
--- /dev/null
+++ b/docs/doxygen/html/_element_plot_data_8h.html
@@ -0,0 +1,120 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ElementPlotData.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_element_plot_data_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ElementPlotData.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wx/treectrl.h&gt;</code><br />
+<code>#include &lt;wx/colour.h&gt;</code><br />
+<code>#include &lt;wx/pen.h&gt;</code><br />
+<code>#include &lt;vector&gt;</code><br />
+</div>
+<p><a href="_element_plot_data_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_plot_data.html">PlotData</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class is responsible to manage the graphical data of electromechanical result to be plotted on chart viewer. <a href="class_plot_data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_element_plot_data.html">ElementPlotData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_element_plot_data_8h.html">ElementPlotData.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_element_plot_data_8h_source.html b/docs/doxygen/html/_element_plot_data_8h_source.html
index 90ec59b..b86375d 100644
--- a/docs/doxygen/html/_element_plot_data_8h_source.html
+++ b/docs/doxygen/html/_element_plot_data_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,14 +88,14 @@ $(document).ready(function(){initNavTree('_element_plot_data_8h_source.html','')
<div class="title">ElementPlotData.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef ELEMENTPLOTDATA_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define ELEMENTPLOTDATA_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/treectrl.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/colour.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/pen.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_plot_data.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_plot_data.html">PlotData</a> : <span class="keyword">public</span> wxTreeItemData</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>() {}</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; ~<a class="code" href="class_plot_data.html">PlotData</a>() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">void</span> SetAxis(<span class="keywordtype">int</span> axis) { m_axis = axis; }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">void</span> SetColour(<span class="keyword">const</span> wxColour&amp; colour) { m_colour = colour; }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">void</span> SetName(<span class="keyword">const</span> wxString&amp; name) { m_name = name; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> SetPenType(<span class="keyword">const</span> wxPenStyle&amp; penType) { m_penType = penType; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">void</span> SetPlot(<span class="keywordtype">bool</span> plot) { m_plot = plot; }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">void</span> SetThick(<span class="keywordtype">int</span> thick) { m_thick = thick; }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">void</span> SetValues(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; values) { m_values = values; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> GetAxis()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_axis; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; wxColour GetColour()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_colour; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; wxPenStyle GetPenType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_penType; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">bool</span> IsPlot()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_plot; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">int</span> GetThick()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_thick; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; std::vector&lt;double&gt; GetValues()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_values; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; std::vector&lt;double&gt; m_values;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; wxString m_name;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> m_plot;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; wxColour m_colour;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">int</span> m_thick;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; wxPenStyle m_penType;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">int</span> m_axis;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_element_plot_data.html"> 39</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">enum</span> CurveType {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; CT_BUS = 0,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; CT_SYNC_GENERATOR,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; CT_SYNC_COMPENSATOR,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; CT_TRANSFORMER,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; CT_LINE,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; CT_IND_MOTOR,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; CT_SHUNT_INDUCTOR,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; CT_SHUNT_CAPACITOR,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; CT_LOAD,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; CT_TEST,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; NUM_ELEMENTS,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; CT_TIME</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; };</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a>() {};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a>(wxString name, CurveType curveType);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; ~<a class="code" href="class_element_plot_data.html">ElementPlotData</a>();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">void</span> SetName(wxString name) { m_name = name; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; CurveType GetCurveType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_curveType; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">void</span> SetCurveType(CurveType type) { m_curveType = type; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* GetPlotData(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">void</span> AddData(std::vector&lt;double&gt; values, wxString name);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">int</span> GetElementDataNumber()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_elementData.size()); }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;double&gt; GetValues(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetValues(); }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> SetValues(<span class="keywordtype">int</span> index, std::vector&lt;double&gt; values) { m_elementData[index]-&gt;SetValues(values); }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> SetPlot(<span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> plot = <span class="keyword">true</span>) { m_elementData[index]-&gt;SetPlot(plot); }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; wxString GetDataName(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetName(); }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> SetDataName(<span class="keywordtype">int</span> index, wxString name) { m_elementData[index]-&gt;SetName(name); }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxColour GetColour(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetColour(); }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> SetColour(<span class="keywordtype">int</span> index, wxColour colour) { m_elementData[index]-&gt;SetColour(colour); }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">int</span> GetThick(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetThick(); }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">void</span> SetThick(<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> thick) { m_elementData[index]-&gt;SetThick(thick); }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxPenStyle GetPenType(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetPenType(); }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">void</span> SetPenType(<span class="keywordtype">int</span> index, wxPenStyle penType) { m_elementData[index]-&gt;SetPenType(penType); }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> GetAxis(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetAxis(); }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">void</span> SetAxis(<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> axis) { m_elementData[index]-&gt;SetAxis(axis); }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxString m_name;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; CurveType m_curveType;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::vector&lt;PlotData*&gt; m_elementData;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;};</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // ELEMENTPLOTDATA_H</span></div><div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00010">ElementPlotData.h:10</a></div></div>
+<a href="_element_plot_data_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef ELEMENTPLOTDATA_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define ELEMENTPLOTDATA_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/treectrl.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/colour.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/pen.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;vector&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_plot_data.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_plot_data.html">PlotData</a> : <span class="keyword">public</span> wxTreeItemData</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>() {}</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ~<a class="code" href="class_plot_data.html">PlotData</a>() {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">void</span> SetAxis(<span class="keywordtype">int</span> axis) { m_axis = axis; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">void</span> SetColour(<span class="keyword">const</span> wxColour&amp; colour) { m_colour = colour; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> SetName(<span class="keyword">const</span> wxString&amp; name) { m_name = name; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">void</span> SetPenType(<span class="keyword">const</span> wxPenStyle&amp; penType) { m_penType = penType; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">void</span> SetPlot(<span class="keywordtype">bool</span> plot) { m_plot = plot; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">void</span> SetThick(<span class="keywordtype">int</span> thick) { m_thick = thick; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">void</span> SetValues(<span class="keyword">const</span> std::vector&lt;double&gt;&amp; values) { m_values = values; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">int</span> GetAxis()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_axis; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxColour GetColour()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_colour; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; wxPenStyle GetPenType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_penType; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">bool</span> IsPlot()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_plot; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">int</span> GetThick()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_thick; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;double&gt; GetValues()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_values; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::vector&lt;double&gt; m_values;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; wxString m_name;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">bool</span> m_plot;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxColour m_colour;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">int</span> m_thick;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxPenStyle m_penType;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">int</span> m_axis;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_element_plot_data.html"> 64</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">enum</span> CurveType {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; CT_BUS = 0,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; CT_SYNC_GENERATOR,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; CT_SYNC_COMPENSATOR,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; CT_TRANSFORMER,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; CT_LINE,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; CT_IND_MOTOR,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; CT_SHUNT_INDUCTOR,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; CT_SHUNT_CAPACITOR,</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; CT_LOAD,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; CT_TEST,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; NUM_ELEMENTS,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; CT_TIME</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; };</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a>(){};</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a>(wxString name, CurveType curveType);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; ~<a class="code" href="class_element_plot_data.html">ElementPlotData</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">void</span> SetName(wxString name) { m_name = name; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; CurveType GetCurveType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_curveType; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">void</span> SetCurveType(CurveType type) { m_curveType = type; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_plot_data.html">PlotData</a>* GetPlotData(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> AddData(std::vector&lt;double&gt; values, wxString name);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">int</span> GetElementDataNumber()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_elementData.size()); }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; std::vector&lt;double&gt; GetValues(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetValues(); }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> SetValues(<span class="keywordtype">int</span> index, std::vector&lt;double&gt; values) { m_elementData[index]-&gt;SetValues(values); }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> SetPlot(<span class="keywordtype">int</span> index, <span class="keywordtype">bool</span> plot = <span class="keyword">true</span>) { m_elementData[index]-&gt;SetPlot(plot); }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; wxString GetDataName(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetName(); }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> SetDataName(<span class="keywordtype">int</span> index, wxString name) { m_elementData[index]-&gt;SetName(name); }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; wxColour GetColour(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetColour(); }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> SetColour(<span class="keywordtype">int</span> index, wxColour colour) { m_elementData[index]-&gt;SetColour(colour); }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">int</span> GetThick(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetThick(); }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">void</span> SetThick(<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> thick) { m_elementData[index]-&gt;SetThick(thick); }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxPenStyle GetPenType(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetPenType(); }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">void</span> SetPenType(<span class="keywordtype">int</span> index, wxPenStyle penType) { m_elementData[index]-&gt;SetPenType(penType); }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">int</span> GetAxis(<span class="keywordtype">int</span> index)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementData[index]-&gt;GetAxis(); }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> SetAxis(<span class="keywordtype">int</span> index, <span class="keywordtype">int</span> axis) { m_elementData[index]-&gt;SetAxis(axis); }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxString m_name;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; CurveType m_curveType;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; std::vector&lt;PlotData*&gt; m_elementData;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;};</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="preprocessor">#endif // ELEMENTPLOTDATA_H</span></div><div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="class_plot_data_html"><div class="ttname"><a href="class_plot_data.html">PlotData</a></div><div class="ttdoc">This class is responsible to manage the graphical data of electromechanical result to be plotted on c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00035">ElementPlotData.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ElementPlotData.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_element_plot_data_8h.html">ElementPlotData.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_exponential_8cpp_source.html b/docs/doxygen/html/_exponential_8cpp_source.html
index e064fa3..5061d3d 100644
--- a/docs/doxygen/html/_exponential_8cpp_source.html
+++ b/docs/doxygen/html/_exponential_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,18 @@ $(document).ready(function(){initNavTree('_exponential_8cpp_source.html','');});
<div class="title">Exponential.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Exponential.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ExponentialForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Exponential::Exponential(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;Exponential::~Exponential() {}</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339"> 17</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::vector&lt;wxPoint2DDouble&gt; axis;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; axis.push_back(m_position + wxPoint2DDouble(13, 13));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, -13));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; DrawLine(axis, GL_LINES);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::vector&lt;wxPoint2DDouble&gt; expSymbol;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(-6, 13));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(2, 12));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(4, 11));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(6, 10));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(8, 7));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(11, -1));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(12, -7));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(13, -13));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; DrawLine(expSymbol);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawNodes();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d"> 56</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_exponential_form.html">ExponentialForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_exponential_form.html">ExponentialForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea"> 67</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; UpdatePoints();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">void</span> Exponential::UpdatePoints()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keywordtype">void</span> Exponential::GetValues(<span class="keywordtype">double</span>&amp; aValue, <span class="keywordtype">double</span>&amp; bValue)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; aValue = m_aValue;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; bValue = m_bValue;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;}</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;<span class="keywordtype">void</span> Exponential::SetValues(<span class="keywordtype">double</span> aValue, <span class="keywordtype">double</span> bValue)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;{</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_aValue = aValue;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_bValue = bValue;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keywordtype">bool</span> Exponential::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_output = m_aValue * std::exp(m_bValue * input);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f"> 121</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a>()</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* copy = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(m_elementID);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_exponential_html_a0714869ee8815119a6d76431bac767ea"><div class="ttname"><a href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00067">Exponential.cpp:67</a></div></div>
-<div class="ttc" id="class_exponential_html_abdf1c3c1d8e7839fc2a8fc914acff68d"><div class="ttname"><a href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00056">Exponential.cpp:56</a></div></div>
-<div class="ttc" id="class_exponential_html_af5f172e2f7ae7df0fc79b44b55355339"><div class="ttname"><a href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00017">Exponential.cpp:17</a></div></div>
-<div class="ttc" id="class_exponential_html_a85cda0dba6549828a9045e478e24609f"><div class="ttname"><a href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00121">Exponential.cpp:121</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00007">ExponentialForm.h:7</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_8h.html">Exponential.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_form_8h.html">ExponentialForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Exponential::Exponential(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;Exponential::~Exponential() {}</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339"> 34</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;wxPoint2DDouble&gt; axis;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; axis.push_back(m_position + wxPoint2DDouble(13, 13));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, -13));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawLine(axis, GL_LINES);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::vector&lt;wxPoint2DDouble&gt; expSymbol;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(-13, 13));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(-6, 13));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(2, 12));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(4, 11));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(6, 10));</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(8, 7));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(11, -1));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(12, -7));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; expSymbol.push_back(m_position + wxPoint2DDouble(13, -13));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; DrawLine(expSymbol);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawNodes();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d"> 73</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_exponential_form.html">ExponentialForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_exponential_form.html">ExponentialForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea"> 84</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; UpdatePoints();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keywordtype">void</span> Exponential::UpdatePoints()</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;<span class="keywordtype">void</span> Exponential::GetValues(<span class="keywordtype">double</span>&amp; aValue, <span class="keywordtype">double</span>&amp; bValue)</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;{</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; aValue = m_aValue;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; bValue = m_bValue;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keywordtype">void</span> Exponential::SetValues(<span class="keywordtype">double</span> aValue, <span class="keywordtype">double</span> bValue)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_aValue = aValue;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_bValue = bValue;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f"> 132</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Exponential::Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_output = m_aValue * std::exp(m_bValue * input);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f"> 138</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a>()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* copy = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(m_elementID);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_exponential_html_ae8e635b32b5d6a8226a3654aa639094f"><div class="ttname"><a href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Exponential::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculates the exponential. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00132">Exponential.cpp:132</a></div></div>
+<div class="ttc" id="class_exponential_html_a0714869ee8815119a6d76431bac767ea"><div class="ttname"><a href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00084">Exponential.cpp:84</a></div></div>
+<div class="ttc" id="class_exponential_html_abdf1c3c1d8e7839fc2a8fc914acff68d"><div class="ttname"><a href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00073">Exponential.cpp:73</a></div></div>
+<div class="ttc" id="class_exponential_html_af5f172e2f7ae7df0fc79b44b55355339"><div class="ttname"><a href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00034">Exponential.cpp:34</a></div></div>
+<div class="ttc" id="class_exponential_html_a85cda0dba6549828a9045e478e24609f"><div class="ttname"><a href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00138">Exponential.cpp:138</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdoc">Form to edit the exponential control data. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00031">ExponentialForm.h:31</a></div></div>
+<div class="ttc" id="_exponential_8h_html"><div class="ttname"><a href="_exponential_8h.html">Exponential.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="_exponential_form_8h_html"><div class="ttname"><a href="_exponential_form_8h.html">ExponentialForm.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_exponential_8h.html b/docs/doxygen/html/_exponential_8h.html
new file mode 100644
index 0000000..56fc1e9
--- /dev/null
+++ b/docs/doxygen/html/_exponential_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Exponential.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_exponential_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Exponential.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_exponential_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_exponential.html">Exponential</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generates an output following an exponential function. <a href="class_exponential.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_exponential_8h.html">Exponential.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_exponential_8h_source.html b/docs/doxygen/html/_exponential_8h_source.html
index 6ecb51b..429bace 100644
--- a/docs/doxygen/html/_exponential_8h_source.html
+++ b/docs/doxygen/html/_exponential_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,24 @@ $(document).ready(function(){initNavTree('_exponential_8h_source.html','');});
<div class="title">Exponential.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef EXPONENTIAL_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define EXPONENTIAL_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential_form.html">ExponentialForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_exponential.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_exponential.html">Exponential</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e"> 16</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetValues(<span class="keywordtype">double</span>&amp; aValue, <span class="keywordtype">double</span> &amp;bValue);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValues(<span class="keywordtype">double</span> aValue, <span class="keywordtype">double</span> bValue);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">GetCopy</a>();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> m_aValue = 0.001;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> m_bValue = 5.0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#endif // EXPONENTIAL_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_exponential_html_a79eabfca357002f160b082a6df9f6f2b"><div class="ttname"><a href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b">Exponential::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00015">Exponential.h:15</a></div></div>
-<div class="ttc" id="class_exponential_html_a0714869ee8815119a6d76431bac767ea"><div class="ttname"><a href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00067">Exponential.cpp:67</a></div></div>
-<div class="ttc" id="class_exponential_html_abdf1c3c1d8e7839fc2a8fc914acff68d"><div class="ttname"><a href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00056">Exponential.cpp:56</a></div></div>
-<div class="ttc" id="class_exponential_html_af5f172e2f7ae7df0fc79b44b55355339"><div class="ttname"><a href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00017">Exponential.cpp:17</a></div></div>
-<div class="ttc" id="class_exponential_html_a85cda0dba6549828a9045e478e24609f"><div class="ttname"><a href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00121">Exponential.cpp:121</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00007">ExponentialForm.h:7</a></div></div>
-<div class="ttc" id="class_exponential_html_a540b1a43045b9bb7c96d32825d15c95e"><div class="ttname"><a href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e">Exponential::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00016">Exponential.h:16</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_exponential_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef EXPONENTIAL_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define EXPONENTIAL_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential_form.html">ExponentialForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_exponential.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_exponential.html">Exponential</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e"> 40</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetValues(<span class="keywordtype">double</span>&amp; aValue, <span class="keywordtype">double</span>&amp; bValue);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValues(<span class="keywordtype">double</span> aValue, <span class="keywordtype">double</span> bValue);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">GetCopy</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">double</span> m_aValue = 0.001;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">double</span> m_bValue = 5.0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="preprocessor">#endif // EXPONENTIAL_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_exponential_html_a79eabfca357002f160b082a6df9f6f2b"><div class="ttname"><a href="class_exponential.html#a79eabfca357002f160b082a6df9f6f2b">Exponential::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00039">Exponential.h:39</a></div></div>
+<div class="ttc" id="class_exponential_html_ae8e635b32b5d6a8226a3654aa639094f"><div class="ttname"><a href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Exponential::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculates the exponential. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00132">Exponential.cpp:132</a></div></div>
+<div class="ttc" id="class_exponential_html_a0714869ee8815119a6d76431bac767ea"><div class="ttname"><a href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00084">Exponential.cpp:84</a></div></div>
+<div class="ttc" id="class_exponential_html_abdf1c3c1d8e7839fc2a8fc914acff68d"><div class="ttname"><a href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00073">Exponential.cpp:73</a></div></div>
+<div class="ttc" id="class_exponential_html_af5f172e2f7ae7df0fc79b44b55355339"><div class="ttname"><a href="class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339">Exponential::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00034">Exponential.cpp:34</a></div></div>
+<div class="ttc" id="class_exponential_html_a85cda0dba6549828a9045e478e24609f"><div class="ttname"><a href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8cpp_source.html#l00138">Exponential.cpp:138</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdoc">Form to edit the exponential control data. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00031">ExponentialForm.h:31</a></div></div>
+<div class="ttc" id="class_exponential_html_a540b1a43045b9bb7c96d32825d15c95e"><div class="ttname"><a href="class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e">Exponential::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00040">Exponential.h:40</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Exponential.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_exponential_8h.html">Exponential.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_exponential_form_8cpp_source.html b/docs/doxygen/html/_exponential_form_8cpp_source.html
index 464dd0f..a4fb180 100644
--- a/docs/doxygen/html/_exponential_form_8cpp_source.html
+++ b/docs/doxygen/html/_exponential_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_exponential_form_8cpp_source.html',''
<div class="title">ExponentialForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ExponentialForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Exponential.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;ExponentialForm::ExponentialForm(wxWindow* parent, <a class="code" href="class_exponential.html">Exponential</a>* exponential) : <a class="code" href="class_exponential_form_base.html">ExponentialFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; wxString expSymbol = wxString::FromUTF8(<span class="stringliteral">&quot;\xF0\x9D\x91\x92&quot;</span>);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxString superscriptCapitalB = wxString::FromUTF8(<span class="stringliteral">&quot;\xE1\xB4\xAE&quot;</span>);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxString superscriptSmallX = wxString::FromUTF8(<span class="stringliteral">&quot;\xCB\xA3&quot;</span>);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_staticTextExp-&gt;SetLabel(<span class="stringliteral">&quot;y = A&quot;</span> + expSymbol + superscriptCapitalB + superscriptSmallX);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; font.SetPointSize(14);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_staticTextExp-&gt;SetFont(font);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_parent = parent;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_exponential = exponential;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_exponential-&gt;GetValues(a, b);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_textCtrlAValue-&gt;SetValue(m_exponential-&gt;StringFromDouble(a));</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_textCtrlBValue-&gt;SetValue(m_exponential-&gt;StringFromDouble(b));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; SetInitialSize();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; Layout();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;ExponentialForm::~ExponentialForm() {}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> ExponentialForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keywordtype">bool</span> ExponentialForm::ValidateData()</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(!m_exponential-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlAValue-&gt;GetValue(), a,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;A value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(!m_exponential-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlBValue-&gt;GetValue(), b,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;B value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_exponential-&gt;SetValues(a, b);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="class_exponential_form_base_html"><div class="ttname"><a href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00891">ElementForm.h:891</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_form_8h.html">ExponentialForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_exponential_8h.html">Exponential.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;ExponentialForm::ExponentialForm(wxWindow* parent, <a class="code" href="class_exponential.html">Exponential</a>* exponential) : <a class="code" href="class_exponential_form_base.html">ExponentialFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; wxString expSymbol = wxString::FromUTF8(<span class="stringliteral">&quot;\xF0\x9D\x91\x92&quot;</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString superscriptCapitalB = wxString::FromUTF8(<span class="stringliteral">&quot;\xE1\xB4\xAE&quot;</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxString superscriptSmallX = wxString::FromUTF8(<span class="stringliteral">&quot;\xCB\xA3&quot;</span>);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_staticTextExp-&gt;SetLabel(<span class="stringliteral">&quot;y = A&quot;</span> + expSymbol + superscriptCapitalB + superscriptSmallX);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; wxFont font = wxSystemSettings::GetFont(wxSYS_DEFAULT_GUI_FONT);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; font.SetPointSize(14);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_staticTextExp-&gt;SetFont(font);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_parent = parent;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_exponential = exponential;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_exponential-&gt;GetValues(a, b);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_textCtrlAValue-&gt;SetValue(m_exponential-&gt;StringFromDouble(a));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_textCtrlBValue-&gt;SetValue(m_exponential-&gt;StringFromDouble(b));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; SetInitialSize();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; Layout();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;ExponentialForm::~ExponentialForm() {}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">void</span> ExponentialForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;<span class="keywordtype">bool</span> ExponentialForm::ValidateData()</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(!m_exponential-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlAValue-&gt;GetValue(), a,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;A value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(!m_exponential-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlBValue-&gt;GetValue(), b,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;B value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_exponential-&gt;SetValues(a, b);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="ttc" id="class_exponential_form_base_html"><div class="ttname"><a href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00891">ElementForm.h:891</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="_exponential_8h_html"><div class="ttname"><a href="_exponential_8h.html">Exponential.h</a></div></div>
+<div class="ttc" id="_exponential_form_8h_html"><div class="ttname"><a href="_exponential_form_8h.html">ExponentialForm.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_exponential_form_8h.html b/docs/doxygen/html/_exponential_form_8h.html
new file mode 100644
index 0000000..027fe13
--- /dev/null
+++ b/docs/doxygen/html/_exponential_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ExponentialForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_exponential_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ExponentialForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_exponential_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_exponential_form.html">ExponentialForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the exponential control data. <a href="class_exponential_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_exponential_form_8h.html">ExponentialForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_exponential_form_8h_source.html b/docs/doxygen/html/_exponential_form_8h_source.html
index a9c26c4..8f4f99e 100644
--- a/docs/doxygen/html/_exponential_form_8h_source.html
+++ b/docs/doxygen/html/_exponential_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_exponential_form_8h_source.html','');
<div class="title">ExponentialForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef EXPONENTIALFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define EXPONENTIALFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_exponential_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential_form.html">ExponentialForm</a> : <span class="keyword">public</span> <a class="code" href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_exponential_form.html">ExponentialForm</a>(wxWindow* parent, <a class="code" href="class_exponential.html">Exponential</a>* exponential);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_exponential_form.html">ExponentialForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* m_exponential = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // EXPONENTIALFORM_H</span></div><div class="ttc" id="class_exponential_form_base_html"><div class="ttname"><a href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00891">ElementForm.h:891</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00007">ExponentialForm.h:7</a></div></div>
+<a href="_exponential_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef EXPONENTIALFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define EXPONENTIALFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential.html">Exponential</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_exponential_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_exponential_form.html">ExponentialForm</a> : <span class="keyword">public</span> <a class="code" href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_exponential_form.html">ExponentialForm</a>(wxWindow* parent, <a class="code" href="class_exponential.html">Exponential</a>* exponential);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_exponential_form.html">ExponentialForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* m_exponential = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif // EXPONENTIALFORM_H</span></div><div class="ttc" id="class_exponential_form_base_html"><div class="ttname"><a href="class_exponential_form_base.html">ExponentialFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00891">ElementForm.h:891</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_exponential_form_html"><div class="ttname"><a href="class_exponential_form.html">ExponentialForm</a></div><div class="ttdoc">Form to edit the exponential control data. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_form_8h_source.html#l00031">ExponentialForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ExponentialForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_exponential_form_8h.html">ExponentialForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_fault_8cpp_source.html b/docs/doxygen/html/_fault_8cpp_source.html
index 3d7117c..d78a93d 100644
--- a/docs/doxygen/html/_fault_8cpp_source.html
+++ b/docs/doxygen/html/_fault_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,32 +88,32 @@ $(document).ready(function(){initNavTree('_fault_8cpp_source.html','');});
<div class="title">Fault.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fault_8h.html">Fault.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef"> 6</a></span>&#160;<a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a>() : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>() {}</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_fault.html#a8fbe3ce9f7288c4f8261db2d9a89adbb"> 7</a></span>&#160;<a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a>(std::vector&lt;Element*&gt; elementList) { <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(elementList); }</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_fault.html#a42019654142cd8187b314e43d70262eb"> 8</a></span>&#160;<a class="code" href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a>() {}</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f"> 9</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_systemPowerBase = systemPowerBase;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">int</span> numberOfBuses = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_busList.size());</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">if</span>(numberOfBuses == 0) {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no buses in the system.&quot;</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// Get adimittance matrices.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusPos;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusPos, systemPowerBase, POSITIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusNeg;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusNeg, systemPowerBase, NEGATIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusZero;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusZero, systemPowerBase, ZERO_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// Calculate the impedance matrices.</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusPos, m_zBusPos)) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the positive sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusNeg, m_zBusNeg)) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the negative sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusZero, m_zBusZero)) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the zero sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Pre-fault voltages (power flow solution).</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; preFaultVoltages;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; preFaultVoltages.resize(m_busList.size());</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Get fault parameters.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">int</span> fNumber = -1;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> fType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> fLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::complex&lt;double&gt; fImpedance = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; preFaultVoltages[data.number] = data.voltage;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; fNumber = data.number;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; fType = data.faultType;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; fLocation = data.faultLocation;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; fImpedance = std::complex&lt;double&gt;(data.faultResistance, data.faultReactance);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(fNumber == -1) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no fault in the system.&quot;</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Fault calculation.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::complex&lt;double&gt; fCurrentPos = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::complex&lt;double&gt; fCurrentNeg = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::complex&lt;double&gt; fCurrentZero = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::complex&lt;double&gt; preFaultVoltage = preFaultVoltages[fNumber];</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(-0.5, 0.866025403784);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::complex&lt;double&gt; a2 = std::complex&lt;double&gt;(-0.5, -0.866025403784);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">switch</span>(fType) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>: {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; fCurrentPos = preFaultVoltage / (m_zBusPos[fNumber][fNumber] + fImpedance);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>: {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; fCurrentPos = preFaultVoltage / (m_zBusPos[fNumber][fNumber] + m_zBusNeg[fNumber][fNumber] + fImpedance);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; fCurrentNeg = -a2 * fCurrentPos;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; fCurrentNeg = -fCurrentPos;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; fCurrentNeg = -a * fCurrentPos;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; std::complex&lt;double&gt; z1 = m_zBusPos[fNumber][fNumber];</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; std::complex&lt;double&gt; z2 = m_zBusNeg[fNumber][fNumber];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::complex&lt;double&gt; z0 = m_zBusZero[fNumber][fNumber];</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; std::complex&lt;double&gt; zf_3 = std::complex&lt;double&gt;(3.0, 0.0) * fImpedance;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; fCurrentPos = (preFaultVoltage * (z2 + z0 + zf_3)) / (z1 * z2 + z2 * z0 + z2 * zf_3 + z1 * z0 + z1 * zf_3);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; fCurrentNeg = -a2 * ((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; fCurrentZero = -a * ((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; fCurrentNeg = -((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; fCurrentZero = -((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; fCurrentNeg = -a * ((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; fCurrentZero = -a2 * ((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>: {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; fCurrentPos =</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; preFaultVoltage / (m_zBusPos[fNumber][fNumber] + m_zBusNeg[fNumber][fNumber] +</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_zBusZero[fNumber][fNumber] + std::complex&lt;double&gt;(3.0, 0.0) * fImpedance);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; fCurrentNeg = fCurrentPos;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fCurrentZero = fCurrentPos;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fCurrentNeg = a * fCurrentPos;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fCurrentZero = a2 * fCurrentPos;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; fCurrentNeg = a2 * fCurrentPos;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; fCurrentZero = a * fCurrentPos;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Convert sequence currents to ABC. [Iabc] = [A]*[I012]</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_fCurrentA = fCurrentZero + fCurrentPos + fCurrentNeg;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_fCurrentB = fCurrentZero + a2 * fCurrentPos + a * fCurrentNeg;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_fCurrentC = fCurrentZero + a * fCurrentPos + a2 * fCurrentNeg;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Pos-fault voltages calculation</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_posFaultVoltagePos.clear();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_posFaultVoltageNeg.clear();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_posFaultVoltageZero.clear();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_posFaultVoltageA.clear();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_posFaultVoltageB.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_posFaultVoltageC.clear();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; ++i) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_posFaultVoltagePos.push_back(preFaultVoltages[i] - m_zBusPos[i][fNumber] * fCurrentPos);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_posFaultVoltageNeg.push_back(-m_zBusNeg[i][fNumber] * fCurrentNeg);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_posFaultVoltageZero.push_back(-m_zBusZero[i][fNumber] * fCurrentZero);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// V012 -&gt; Vabc</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_posFaultVoltageA.push_back(m_posFaultVoltageZero[i] + m_posFaultVoltagePos[i] + m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_posFaultVoltageB.push_back(m_posFaultVoltageZero[i] + a2 * m_posFaultVoltagePos[i] +</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; a * m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_posFaultVoltageC.push_back(m_posFaultVoltageZero[i] + a * m_posFaultVoltagePos[i] +</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; a2 * m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">UpdateElementsFault</a>(systemPowerBase);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;}</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"><a class="line" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf"> 176</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;{</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(-0.5, 0.866025403784);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; std::complex&lt;double&gt; a2 = std::complex&lt;double&gt;(-0.5, -0.866025403784);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; data.faultCurrent[0] = m_fCurrentA;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; data.faultCurrent[1] = m_fCurrentB;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; data.faultCurrent[2] = m_fCurrentC;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; data.faultCurrent[0] = data.faultCurrent[1] = data.faultCurrent[2] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; data.faultVoltage[0] = m_posFaultVoltageA[data.number];</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; data.faultVoltage[1] = m_posFaultVoltageB[data.number];</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; data.faultVoltage[2] = m_posFaultVoltageC[data.number];</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">auto</span> puData = line-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::complex&lt;double&gt; vPos[2] = {m_posFaultVoltagePos[n1], m_posFaultVoltagePos[n2]};</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; std::complex&lt;double&gt; vNeg[2] = {m_posFaultVoltageNeg[n1], m_posFaultVoltageNeg[n2]};</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; std::complex&lt;double&gt; vZero[2] = {m_posFaultVoltageZero[n1], m_posFaultVoltageZero[n2]};</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; std::complex&lt;double&gt; zPos(puData.resistance, puData.indReactance);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; std::complex&lt;double&gt; bPos(0.0, puData.capSusceptance / 2.0);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance, puData.zeroIndReactance);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::complex&lt;double&gt; bZero(0.0, puData.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; std::complex&lt;double&gt; lineCurrentPos[2];</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; std::complex&lt;double&gt; lineCurrentNeg[2];</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; std::complex&lt;double&gt; lineCurrentZero[2];</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; lineCurrentPos[0] = ((vPos[0] - vPos[1]) / zPos) + (vPos[0] * bPos);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; lineCurrentNeg[0] = ((vNeg[0] - vNeg[1]) / zPos) + (vNeg[0] * bPos);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; lineCurrentZero[0] = ((vZero[0] - vZero[1]) / zZero) + (vZero[0] * bZero);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; lineCurrentPos[1] = ((vPos[1] - vPos[0]) / zPos) + (vPos[1] * bPos);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; lineCurrentNeg[1] = ((vNeg[1] - vNeg[0]) / zPos) + (vNeg[1] * bPos);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; lineCurrentZero[1] = ((vZero[1] - vZero[0]) / zZero) + (vZero[1] * bZero);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; data.faultCurrent[0][0] = lineCurrentZero[0] + lineCurrentPos[0] + lineCurrentNeg[0];</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; data.faultCurrent[0][1] = lineCurrentZero[0] + a2 * lineCurrentPos[0] + a * lineCurrentNeg[0];</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; data.faultCurrent[0][2] = lineCurrentZero[0] + a * lineCurrentPos[0] + a2 * lineCurrentNeg[0];</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; data.faultCurrent[1][0] = lineCurrentZero[1] + lineCurrentPos[1] + lineCurrentNeg[1];</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; data.faultCurrent[1][1] = lineCurrentZero[1] + a2 * lineCurrentPos[1] + a * lineCurrentNeg[1];</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; data.faultCurrent[1][2] = lineCurrentZero[1] + a * lineCurrentPos[1] + a2 * lineCurrentNeg[1];</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">auto</span> puData = transformer-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; std::complex&lt;double&gt; vPos[2] = {m_posFaultVoltagePos[n1], m_posFaultVoltagePos[n2]};</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; std::complex&lt;double&gt; vNeg[2] = {m_posFaultVoltageNeg[n1], m_posFaultVoltageNeg[n2]};</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; std::complex&lt;double&gt; vZero[2] = {m_posFaultVoltageZero[n1], m_posFaultVoltageZero[n2]};</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; std::complex&lt;double&gt; zPos(puData.resistance, puData.indReactance);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance, puData.zeroIndReactance);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; std::complex&lt;double&gt; transformerCurrentPos[2];</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; std::complex&lt;double&gt; transformerCurrentNeg[2];</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; std::complex&lt;double&gt; transformerCurrentZero[2];</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; transformerCurrentPos[0] = (vPos[0] - vPos[1]) / zPos;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; transformerCurrentNeg[0] = (vNeg[0] - vNeg[1]) / zPos;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; transformerCurrentZero[0] = (vZero[0] - vZero[1]) / zZero;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; transformerCurrentPos[1] = (vPos[1] - vPos[0]) / zPos;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; transformerCurrentNeg[1] = (vNeg[1] - vNeg[0]) / zPos;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; transformerCurrentZero[1] = (vZero[1] - vZero[0]) / zZero;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; std::complex&lt;double&gt; t = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; transformerCurrentPos[0] =</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; vPos[0] * (1.0 / (std::pow(std::abs(t), 2.0) * zPos)) - vPos[1] * (1.0 / (std::conj(t) * zPos));</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; transformerCurrentNeg[0] =</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; vNeg[0] * (1.0 / (std::pow(std::abs(t), 2.0) * zPos)) - vNeg[1] * (1.0 / (t * zPos));</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; transformerCurrentPos[1] = -vPos[0] * (1.0 / (t * zPos)) + vPos[1] / zPos;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; transformerCurrentNeg[1] = -vNeg[0] * (1.0 / (std::conj(t) * zPos)) + vNeg[1] / zPos;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">switch</span>(data.connection) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">case</span> GWYE_GWYE: {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; transformerCurrentZero[0] = (vZero[0] - vZero[1]) / zZero;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; transformerCurrentZero[1] = (vZero[1] - vZero[0]) / zZero;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">case</span> GWYE_DELTA: {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; transformerCurrentZero[0] = vZero[0] / zZero;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; transformerCurrentZero[1] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">case</span> DELTA_GWYE: {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; transformerCurrentZero[0] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; transformerCurrentZero[1] = vZero[1] / zZero;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; transformerCurrentZero[0] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; transformerCurrentZero[1] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; data.faultCurrent[0][0] = transformerCurrentZero[0] + transformerCurrentPos[0] + transformerCurrentNeg[0];</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; data.faultCurrent[0][1] =</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; transformerCurrentZero[0] + a2 * transformerCurrentPos[0] + a * transformerCurrentNeg[0];</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; data.faultCurrent[0][2] =</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; transformerCurrentZero[0] + a * transformerCurrentPos[0] + a2 * transformerCurrentNeg[0];</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; data.faultCurrent[1][0] = transformerCurrentZero[1] + transformerCurrentPos[1] + transformerCurrentNeg[1];</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; data.faultCurrent[1][1] =</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; transformerCurrentZero[1] + a2 * transformerCurrentPos[1] + a * transformerCurrentNeg[1];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; data.faultCurrent[1][2] =</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; transformerCurrentZero[1] + a * transformerCurrentPos[1] + a2 * transformerCurrentNeg[1];</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">int</span> n = bus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; std::complex&lt;double&gt; v = bus-&gt;GetElectricalData().voltage; <span class="comment">// Pre-fault voltage.</span></div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">auto</span> puData = syncGenerator-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; std::complex&lt;double&gt; vPos = m_posFaultVoltagePos[n];</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; std::complex&lt;double&gt; vNeg = m_posFaultVoltageNeg[n];</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; std::complex&lt;double&gt; vZero = m_posFaultVoltageZero[n];</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; std::complex&lt;double&gt; zPos(puData.positiveResistance, puData.positiveReactance);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; std::complex&lt;double&gt; zNeg(puData.negativeResistance, puData.negativeReactance);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance + 3.0 * puData.groundResistance,</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; puData.zeroReactance + 3.0 * puData.groundReactance);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="comment">// Internal voltage</span></div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; std::complex&lt;double&gt; i = std::complex&lt;double&gt;(puData.activePower, -puData.reactivePower) / std::conj(v);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; std::complex&lt;double&gt; e = v + zPos * i;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentPos = (e - vPos) / zPos;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentNeg = (-vNeg) / zNeg;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentZero(0.0, 0.0);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) syncGeneratorCurrentZero = (-vZero) / zZero;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; data.faultCurrent[0] = syncGeneratorCurrentZero + syncGeneratorCurrentPos + syncGeneratorCurrentNeg;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; data.faultCurrent[1] =</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; syncGeneratorCurrentZero + a2 * syncGeneratorCurrentPos + a * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; data.faultCurrent[2] =</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; syncGeneratorCurrentZero + a * syncGeneratorCurrentPos + a2 * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncMotorList.begin(), itEnd = m_syncMotorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *it;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordtype">int</span> n = bus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; std::complex&lt;double&gt; v = bus-&gt;GetElectricalData().voltage; <span class="comment">// Pre-fault voltage.</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">auto</span> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keyword">auto</span> puData = syncMotor-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; std::complex&lt;double&gt; vPos = m_posFaultVoltagePos[n];</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; std::complex&lt;double&gt; vNeg = m_posFaultVoltageNeg[n];</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; std::complex&lt;double&gt; vZero = m_posFaultVoltageZero[n];</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; std::complex&lt;double&gt; zPos(puData.positiveResistance, puData.positiveReactance);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; std::complex&lt;double&gt; zNeg(puData.negativeResistance, puData.negativeReactance);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance + 3.0 * puData.groundResistance,</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; puData.zeroReactance + 3.0 * puData.groundReactance);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentPos = (v - vPos) / zPos;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentNeg = (-vNeg) / zNeg;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentZero(0.0, 0.0);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) syncGeneratorCurrentZero = (-vZero) / zZero;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; data.faultCurrent[0] = syncGeneratorCurrentZero + syncGeneratorCurrentPos + syncGeneratorCurrentNeg;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; data.faultCurrent[1] =</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; syncGeneratorCurrentZero + a2 * syncGeneratorCurrentPos + a * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; data.faultCurrent[2] =</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; syncGeneratorCurrentZero + a * syncGeneratorCurrentPos + a2 * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;}</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"><a class="line" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a"> 382</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;{</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="comment">// Get adimittance matrix.</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusPos;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusPos, systemPowerBase, POSITIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// Calculate the impedance matrix.</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusPos, m_zBusPos)) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the positive sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; }</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="comment">// Set the SC power.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordtype">int</span> n = data.number;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; data.scPower = 1.0 / std::abs(m_zBusPos[n][n]);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00045">PowerElement.h:45</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="class_fault_html_a4120f861b073783b4fb82385171fbd0f"><div class="ttname"><a href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a></div><div class="ttdeci">virtual bool RunFaultCalculation(double systemPowerBase)</div><div class="ttdoc">Calculate the fault of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00009">Fault.cpp:9</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
-<div class="ttc" id="class_fault_html_a77baeae2c3388de3f7bbeabf52c99bef"><div class="ttname"><a href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a></div><div class="ttdeci">Fault()</div><div class="ttdoc">Default contructor. Use GetElementsFromList(std::vector&lt;Element*&gt; elementList). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00006">Fault.cpp:6</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
-<div class="ttc" id="_fault_8h_html"><div class="ttname"><a href="_fault_8h.html">Fault.h</a></div><div class="ttdoc">Calculate the fault of the system and update the elements data. </div></div>
-<div class="ttc" id="class_electric_calculation_html_af00a6599f2b0b4e35bf0f8c70195447c"><div class="ttname"><a href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a></div><div class="ttdeci">virtual bool InvertMatrix(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</div><div class="ttdoc">Invert a matrix. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00572">ElectricCalculation.cpp:572</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00056">ElectricCalculation.cpp:56</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
-<div class="ttc" id="class_fault_html_ac7942a558f3ecdb8c06ddb49567c487a"><div class="ttname"><a href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a></div><div class="ttdeci">virtual bool RunSCPowerCalcutation(double systemPowerBase)</div><div class="ttdoc">Calculate the short-circuit power of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00382">Fault.cpp:382</a></div></div>
-<div class="ttc" id="class_fault_html_a42019654142cd8187b314e43d70262eb"><div class="ttname"><a href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a></div><div class="ttdeci">~Fault()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00008">Fault.cpp:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00008">ElectricCalculation.cpp:8</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="class_fault_html_af1bb91359dfe8df0251a2031957d3ddf"><div class="ttname"><a href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a></div><div class="ttdeci">virtual void UpdateElementsFault(double systemPowerBase)</div><div class="ttdoc">Update the data of the elements. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00176">Fault.cpp:176</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fault_8h.html">Fault.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef"> 23</a></span>&#160;<a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a>() : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>() {}</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_fault.html#a8fbe3ce9f7288c4f8261db2d9a89adbb"> 24</a></span>&#160;<a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a>(std::vector&lt;Element*&gt; elementList) { <a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(elementList); }</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_fault.html#a42019654142cd8187b314e43d70262eb"> 25</a></span>&#160;<a class="code" href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a>() {}</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f"> 26</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;{</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_systemPowerBase = systemPowerBase;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> numberOfBuses = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_busList.size());</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(numberOfBuses == 0) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no buses in the system.&quot;</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Get adimittance matrices.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusPos;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusPos, systemPowerBase, POSITIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusNeg;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusNeg, systemPowerBase, NEGATIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusZero;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusZero, systemPowerBase, ZERO_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// Calculate the impedance matrices.</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusPos, m_zBusPos)) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the positive sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusNeg, m_zBusNeg)) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the negative sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusZero, m_zBusZero)) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the zero sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Pre-fault voltages (power flow solution).</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; preFaultVoltages;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; preFaultVoltages.resize(m_busList.size());</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Get fault parameters.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">int</span> fNumber = -1;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> fType = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> fLocation = <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::complex&lt;double&gt; fImpedance = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; preFaultVoltages[data.number] = data.voltage;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; fNumber = data.number;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; fType = data.faultType;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; fLocation = data.faultLocation;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; fImpedance = std::complex&lt;double&gt;(data.faultResistance, data.faultReactance);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(fNumber == -1) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no fault in the system.&quot;</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Fault calculation.</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::complex&lt;double&gt; fCurrentPos = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; std::complex&lt;double&gt; fCurrentNeg = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::complex&lt;double&gt; fCurrentZero = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::complex&lt;double&gt; preFaultVoltage = preFaultVoltages[fNumber];</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(-0.5, 0.866025403784);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::complex&lt;double&gt; a2 = std::complex&lt;double&gt;(-0.5, -0.866025403784);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">switch</span>(fType) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a>: {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; fCurrentPos = preFaultVoltage / (m_zBusPos[fNumber][fNumber] + fImpedance);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; fCurrentPos = preFaultVoltage / (m_zBusPos[fNumber][fNumber] + m_zBusNeg[fNumber][fNumber] + fImpedance);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; fCurrentNeg = -a2 * fCurrentPos;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; fCurrentNeg = -fCurrentPos;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; fCurrentNeg = -a * fCurrentPos;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>: {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::complex&lt;double&gt; z1 = m_zBusPos[fNumber][fNumber];</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; std::complex&lt;double&gt; z2 = m_zBusNeg[fNumber][fNumber];</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; std::complex&lt;double&gt; z0 = m_zBusZero[fNumber][fNumber];</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; std::complex&lt;double&gt; zf_3 = std::complex&lt;double&gt;(3.0, 0.0) * fImpedance;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; fCurrentPos = (preFaultVoltage * (z2 + z0 + zf_3)) / (z1 * z2 + z2 * z0 + z2 * zf_3 + z1 * z0 + z1 * zf_3);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; fCurrentNeg = -a2 * ((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; fCurrentZero = -a * ((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; fCurrentNeg = -((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; fCurrentZero = -((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; fCurrentNeg = -a * ((preFaultVoltage - z1 * fCurrentPos) / z2);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; fCurrentZero = -a2 * ((preFaultVoltage - z1 * fCurrentPos) / (z0 + zf_3));</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>: {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; fCurrentPos =</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; preFaultVoltage / (m_zBusPos[fNumber][fNumber] + m_zBusNeg[fNumber][fNumber] +</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_zBusZero[fNumber][fNumber] + std::complex&lt;double&gt;(3.0, 0.0) * fImpedance);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">switch</span>(fLocation) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>: {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; fCurrentNeg = fCurrentPos;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; fCurrentZero = fCurrentPos;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; fCurrentNeg = a * fCurrentPos;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; fCurrentZero = a2 * fCurrentPos;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a>: {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; fCurrentNeg = a2 * fCurrentPos;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; fCurrentZero = a * fCurrentPos;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Convert sequence currents to ABC. [Iabc] = [A]*[I012]</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_fCurrentA = fCurrentZero + fCurrentPos + fCurrentNeg;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_fCurrentB = fCurrentZero + a2 * fCurrentPos + a * fCurrentNeg;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_fCurrentC = fCurrentZero + a * fCurrentPos + a2 * fCurrentNeg;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// Pos-fault voltages calculation</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_posFaultVoltagePos.clear();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_posFaultVoltageNeg.clear();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_posFaultVoltageZero.clear();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_posFaultVoltageA.clear();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_posFaultVoltageB.clear();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_posFaultVoltageC.clear();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; ++i) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_posFaultVoltagePos.push_back(preFaultVoltages[i] - m_zBusPos[i][fNumber] * fCurrentPos);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_posFaultVoltageNeg.push_back(-m_zBusNeg[i][fNumber] * fCurrentNeg);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_posFaultVoltageZero.push_back(-m_zBusZero[i][fNumber] * fCurrentZero);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// V012 -&gt; Vabc</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_posFaultVoltageA.push_back(m_posFaultVoltageZero[i] + m_posFaultVoltagePos[i] + m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_posFaultVoltageB.push_back(m_posFaultVoltageZero[i] + a2 * m_posFaultVoltagePos[i] +</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; a * m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_posFaultVoltageC.push_back(m_posFaultVoltageZero[i] + a * m_posFaultVoltagePos[i] +</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; a2 * m_posFaultVoltageNeg[i]);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">UpdateElementsFault</a>(systemPowerBase);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;}</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf"> 193</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; std::complex&lt;double&gt; a = std::complex&lt;double&gt;(-0.5, 0.866025403784);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; std::complex&lt;double&gt; a2 = std::complex&lt;double&gt;(-0.5, -0.866025403784);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(data.hasFault) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; data.faultCurrent[0] = m_fCurrentA;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; data.faultCurrent[1] = m_fCurrentB;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; data.faultCurrent[2] = m_fCurrentC;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; data.faultCurrent[0] = data.faultCurrent[1] = data.faultCurrent[2] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; data.faultVoltage[0] = m_posFaultVoltageA[data.number];</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; data.faultVoltage[1] = m_posFaultVoltageB[data.number];</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; data.faultVoltage[2] = m_posFaultVoltageC[data.number];</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_lineList.begin(), itEnd = m_lineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">auto</span> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">auto</span> puData = line-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; std::complex&lt;double&gt; vPos[2] = {m_posFaultVoltagePos[n1], m_posFaultVoltagePos[n2]};</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; std::complex&lt;double&gt; vNeg[2] = {m_posFaultVoltageNeg[n1], m_posFaultVoltageNeg[n2]};</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; std::complex&lt;double&gt; vZero[2] = {m_posFaultVoltageZero[n1], m_posFaultVoltageZero[n2]};</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; std::complex&lt;double&gt; zPos(puData.resistance, puData.indReactance);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; std::complex&lt;double&gt; bPos(0.0, puData.capSusceptance / 2.0);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance, puData.zeroIndReactance);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; std::complex&lt;double&gt; bZero(0.0, puData.zeroCapSusceptance / 2.0);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; std::complex&lt;double&gt; lineCurrentPos[2];</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::complex&lt;double&gt; lineCurrentNeg[2];</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::complex&lt;double&gt; lineCurrentZero[2];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; lineCurrentPos[0] = ((vPos[0] - vPos[1]) / zPos) + (vPos[0] * bPos);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; lineCurrentNeg[0] = ((vNeg[0] - vNeg[1]) / zPos) + (vNeg[0] * bPos);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; lineCurrentZero[0] = ((vZero[0] - vZero[1]) / zZero) + (vZero[0] * bZero);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; lineCurrentPos[1] = ((vPos[1] - vPos[0]) / zPos) + (vPos[1] * bPos);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; lineCurrentNeg[1] = ((vNeg[1] - vNeg[0]) / zPos) + (vNeg[1] * bPos);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; lineCurrentZero[1] = ((vZero[1] - vZero[0]) / zZero) + (vZero[1] * bZero);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; data.faultCurrent[0][0] = lineCurrentZero[0] + lineCurrentPos[0] + lineCurrentNeg[0];</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; data.faultCurrent[0][1] = lineCurrentZero[0] + a2 * lineCurrentPos[0] + a * lineCurrentNeg[0];</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; data.faultCurrent[0][2] = lineCurrentZero[0] + a * lineCurrentPos[0] + a2 * lineCurrentNeg[0];</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; data.faultCurrent[1][0] = lineCurrentZero[1] + lineCurrentPos[1] + lineCurrentNeg[1];</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; data.faultCurrent[1][1] = lineCurrentZero[1] + a2 * lineCurrentPos[1] + a * lineCurrentNeg[1];</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; data.faultCurrent[1][2] = lineCurrentZero[1] + a * lineCurrentPos[1] + a2 * lineCurrentNeg[1];</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_transformerList.begin(), itEnd = m_transformerList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordtype">int</span> n1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">int</span> n2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData().number;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">auto</span> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">auto</span> puData = transformer-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; std::complex&lt;double&gt; vPos[2] = {m_posFaultVoltagePos[n1], m_posFaultVoltagePos[n2]};</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; std::complex&lt;double&gt; vNeg[2] = {m_posFaultVoltageNeg[n1], m_posFaultVoltageNeg[n2]};</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; std::complex&lt;double&gt; vZero[2] = {m_posFaultVoltageZero[n1], m_posFaultVoltageZero[n2]};</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; std::complex&lt;double&gt; zPos(puData.resistance, puData.indReactance);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance, puData.zeroIndReactance);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; std::complex&lt;double&gt; transformerCurrentPos[2];</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; std::complex&lt;double&gt; transformerCurrentNeg[2];</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; std::complex&lt;double&gt; transformerCurrentZero[2];</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(data.turnsRatio == 1.0 &amp;&amp; data.phaseShift == 0.0) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; transformerCurrentPos[0] = (vPos[0] - vPos[1]) / zPos;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; transformerCurrentNeg[0] = (vNeg[0] - vNeg[1]) / zPos;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; transformerCurrentZero[0] = (vZero[0] - vZero[1]) / zZero;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; transformerCurrentPos[1] = (vPos[1] - vPos[0]) / zPos;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; transformerCurrentNeg[1] = (vNeg[1] - vNeg[0]) / zPos;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; transformerCurrentZero[1] = (vZero[1] - vZero[0]) / zZero;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordtype">double</span> radPhaseShift = wxDegToRad(data.phaseShift);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; std::complex&lt;double&gt; t = std::complex&lt;double&gt;(data.turnsRatio * std::cos(radPhaseShift),</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; -data.turnsRatio * std::sin(radPhaseShift));</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; transformerCurrentPos[0] =</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; vPos[0] * (1.0 / (std::pow(std::abs(t), 2.0) * zPos)) - vPos[1] * (1.0 / (std::conj(t) * zPos));</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; transformerCurrentNeg[0] =</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; vNeg[0] * (1.0 / (std::pow(std::abs(t), 2.0) * zPos)) - vNeg[1] * (1.0 / (t * zPos));</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; transformerCurrentPos[1] = -vPos[0] * (1.0 / (t * zPos)) + vPos[1] / zPos;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; transformerCurrentNeg[1] = -vNeg[0] * (1.0 / (std::conj(t) * zPos)) + vNeg[1] / zPos;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; }</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">switch</span>(data.connection) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">case</span> GWYE_GWYE: {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; transformerCurrentZero[0] = (vZero[0] - vZero[1]) / zZero;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; transformerCurrentZero[1] = (vZero[1] - vZero[0]) / zZero;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">case</span> GWYE_DELTA: {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; transformerCurrentZero[0] = vZero[0] / zZero;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; transformerCurrentZero[1] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> DELTA_GWYE: {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; transformerCurrentZero[0] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; transformerCurrentZero[1] = vZero[1] / zZero;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; transformerCurrentZero[0] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; transformerCurrentZero[1] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; data.faultCurrent[0][0] = transformerCurrentZero[0] + transformerCurrentPos[0] + transformerCurrentNeg[0];</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; data.faultCurrent[0][1] =</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; transformerCurrentZero[0] + a2 * transformerCurrentPos[0] + a * transformerCurrentNeg[0];</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; data.faultCurrent[0][2] =</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; transformerCurrentZero[0] + a * transformerCurrentPos[0] + a2 * transformerCurrentNeg[0];</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; data.faultCurrent[1][0] = transformerCurrentZero[1] + transformerCurrentPos[1] + transformerCurrentNeg[1];</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; data.faultCurrent[1][1] =</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; transformerCurrentZero[1] + a2 * transformerCurrentPos[1] + a * transformerCurrentNeg[1];</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; data.faultCurrent[1][2] =</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; transformerCurrentZero[1] + a * transformerCurrentPos[1] + a2 * transformerCurrentNeg[1];</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncGeneratorList.begin(), itEnd = m_syncGeneratorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *it;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordtype">int</span> n = bus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; std::complex&lt;double&gt; v = bus-&gt;GetElectricalData().voltage; <span class="comment">// Pre-fault voltage.</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">auto</span> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">auto</span> puData = syncGenerator-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; std::complex&lt;double&gt; vPos = m_posFaultVoltagePos[n];</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; std::complex&lt;double&gt; vNeg = m_posFaultVoltageNeg[n];</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; std::complex&lt;double&gt; vZero = m_posFaultVoltageZero[n];</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; std::complex&lt;double&gt; zPos(puData.positiveResistance, puData.positiveReactance);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; std::complex&lt;double&gt; zNeg(puData.negativeResistance, puData.negativeReactance);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance + 3.0 * puData.groundResistance,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; puData.zeroReactance + 3.0 * puData.groundReactance);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="comment">// Internal voltage</span></div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; std::complex&lt;double&gt; i = std::complex&lt;double&gt;(puData.activePower, -puData.reactivePower) / std::conj(v);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; std::complex&lt;double&gt; e = v + zPos * i;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentPos = (e - vPos) / zPos;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentNeg = (-vNeg) / zNeg;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentZero(0.0, 0.0);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) syncGeneratorCurrentZero = (-vZero) / zZero;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; data.faultCurrent[0] = syncGeneratorCurrentZero + syncGeneratorCurrentPos + syncGeneratorCurrentNeg;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; data.faultCurrent[1] =</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; syncGeneratorCurrentZero + a2 * syncGeneratorCurrentPos + a * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; data.faultCurrent[2] =</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; syncGeneratorCurrentZero + a * syncGeneratorCurrentPos + a2 * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_syncMotorList.begin(), itEnd = m_syncMotorList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *it;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordtype">int</span> n = bus-&gt;GetElectricalData().number;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; std::complex&lt;double&gt; v = bus-&gt;GetElectricalData().voltage; <span class="comment">// Pre-fault voltage.</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keyword">auto</span> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keyword">auto</span> puData = syncMotor-&gt;GetPUElectricalData(m_systemPowerBase);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; std::complex&lt;double&gt; vPos = m_posFaultVoltagePos[n];</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; std::complex&lt;double&gt; vNeg = m_posFaultVoltageNeg[n];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; std::complex&lt;double&gt; vZero = m_posFaultVoltageZero[n];</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; std::complex&lt;double&gt; zPos(puData.positiveResistance, puData.positiveReactance);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; std::complex&lt;double&gt; zNeg(puData.negativeResistance, puData.negativeReactance);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; std::complex&lt;double&gt; zZero(puData.zeroResistance + 3.0 * puData.groundResistance,</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; puData.zeroReactance + 3.0 * puData.groundReactance);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentPos = (v - vPos) / zPos;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentNeg = (-vNeg) / zNeg;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; std::complex&lt;double&gt; syncGeneratorCurrentZero(0.0, 0.0);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span>(data.groundNeutral) syncGeneratorCurrentZero = (-vZero) / zZero;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; data.faultCurrent[0] = syncGeneratorCurrentZero + syncGeneratorCurrentPos + syncGeneratorCurrentNeg;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; data.faultCurrent[1] =</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; syncGeneratorCurrentZero + a2 * syncGeneratorCurrentPos + a * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; data.faultCurrent[2] =</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; syncGeneratorCurrentZero + a * syncGeneratorCurrentPos + a2 * syncGeneratorCurrentNeg;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; }</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160;}</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"><a class="line" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a"> 399</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a>(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;{</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="comment">// Get adimittance matrix.</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; yBusPos;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(yBusPos, systemPowerBase, POSITIVE_SEQ, <span class="keyword">true</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="comment">// Calculate the impedance matrix.</span></div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(yBusPos, m_zBusPos)) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;Fail to invert the positive sequence admittance matrix.&quot;</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; }</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="comment">// Set the SC power.</span></div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_busList.begin(), itEnd = m_busList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordtype">int</span> n = data.number;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; data.scPower = 1.0 / std::abs(m_zBusPos[n][n]);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00059">PowerElement.h:59</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00055">PowerElement.h:55</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="class_fault_html_a4120f861b073783b4fb82385171fbd0f"><div class="ttname"><a href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a></div><div class="ttdeci">virtual bool RunFaultCalculation(double systemPowerBase)</div><div class="ttdoc">Calculate the fault of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00026">Fault.cpp:26</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00060">PowerElement.h:60</a></div></div>
+<div class="ttc" id="class_fault_html_a77baeae2c3388de3f7bbeabf52c99bef"><div class="ttname"><a href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a></div><div class="ttdeci">Fault()</div><div class="ttdoc">Default contructor. Use GetElementsFromList(std::vector&lt;Element*&gt; elementList). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00023">Fault.cpp:23</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00057">PowerElement.h:57</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00056">PowerElement.h:56</a></div></div>
+<div class="ttc" id="_fault_8h_html"><div class="ttname"><a href="_fault_8h.html">Fault.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_af00a6599f2b0b4e35bf0f8c70195447c"><div class="ttname"><a href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">ElectricCalculation::InvertMatrix</a></div><div class="ttdeci">virtual bool InvertMatrix(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</div><div class="ttdoc">Invert a matrix. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00589">ElectricCalculation.cpp:589</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a939e6e75b5e0cb555a82b2f9ef59c59d"><div class="ttname"><a href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">ElectricCalculation::GetYBus</a></div><div class="ttdeci">virtual bool GetYBus(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</div><div class="ttdoc">Get the admittance matrix from the list of elements (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00073">ElectricCalculation.cpp:73</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00058">PowerElement.h:58</a></div></div>
+<div class="ttc" id="class_fault_html_ac7942a558f3ecdb8c06ddb49567c487a"><div class="ttname"><a href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a></div><div class="ttdeci">virtual bool RunSCPowerCalcutation(double systemPowerBase)</div><div class="ttdoc">Calculate the short-circuit power of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00399">Fault.cpp:399</a></div></div>
+<div class="ttc" id="class_fault_html_a42019654142cd8187b314e43d70262eb"><div class="ttname"><a href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a></div><div class="ttdeci">~Fault()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00025">Fault.cpp:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00025">ElectricCalculation.cpp:25</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="class_fault_html_af1bb91359dfe8df0251a2031957d3ddf"><div class="ttname"><a href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a></div><div class="ttdeci">virtual void UpdateElementsFault(double systemPowerBase)</div><div class="ttdoc">Update the data of the elements. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00193">Fault.cpp:193</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_fault_8h.html b/docs/doxygen/html/_fault_8h.html
index 311d0d7..c85b102 100644
--- a/docs/doxygen/html/_fault_8h.html
+++ b/docs/doxygen/html/_fault_8h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -84,9 +90,6 @@ $(document).ready(function(){initNavTree('_fault_8h.html','');});
<div class="title">Fault.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
-
-<p>Calculate the fault of the system and update the elements data.
-<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&quot;</code><br />
</div>
<p><a href="_fault_8h_source.html">Go to the source code of this file.</a></p>
@@ -94,13 +97,10 @@ $(document).ready(function(){initNavTree('_fault_8h.html','');});
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_fault.html">Fault</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the fault of the system and update the elements data. <a href="class_fault.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Calculate the fault of the system and update the elements data. </p>
-
-<p class="definition">Definition in file <a class="el" href="_fault_8h_source.html">Fault.h</a>.</p>
-</div></div><!-- contents -->
+</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/doxygen/html/_fault_8h_source.html b/docs/doxygen/html/_fault_8h_source.html
index ffbcce0..622d6a9 100644
--- a/docs/doxygen/html/_fault_8h_source.html
+++ b/docs/doxygen/html/_fault_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_fault_8h_source.html','');});
<div class="title">Fault.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_fault_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef FAULT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define FAULT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="class_fault.html"> 13</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_fault.html">Fault</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault</a>();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_fault.html#a42019654142cd8187b314e43d70262eb">~Fault</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">RunFaultCalculation</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">RunSCPowerCalcutation</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">UpdateElementsFault</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0"> 54</a></span>&#160; <span class="keyword">virtual</span> wxString <a class="code" href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0">GetErrorMessage</a>() { <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; wxString m_errorMsg = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; </div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> m_systemPowerBase;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusPos;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusNeg;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusZero;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltagePos;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageNeg;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageZero;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::complex&lt;double&gt; m_fCurrentA;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; std::complex&lt;double&gt; m_fCurrentB;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::complex&lt;double&gt; m_fCurrentC;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageA;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageB;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageC;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;};</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="preprocessor">#endif // FAULT_H</span></div><div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_fault_html_a3c2f14cd1da46cb88109fdb172d959b0"><div class="ttname"><a href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0">Fault::GetErrorMessage</a></div><div class="ttdeci">virtual wxString GetErrorMessage()</div><div class="ttdoc">Get the error message generated in RunFaultCalculation(double systemPowerBase). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00054">Fault.h:54</a></div></div>
-<div class="ttc" id="class_fault_html_a4120f861b073783b4fb82385171fbd0f"><div class="ttname"><a href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a></div><div class="ttdeci">virtual bool RunFaultCalculation(double systemPowerBase)</div><div class="ttdoc">Calculate the fault of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00009">Fault.cpp:9</a></div></div>
-<div class="ttc" id="class_fault_html_a77baeae2c3388de3f7bbeabf52c99bef"><div class="ttname"><a href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a></div><div class="ttdeci">Fault()</div><div class="ttdoc">Default contructor. Use GetElementsFromList(std::vector&lt;Element*&gt; elementList). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00006">Fault.cpp:6</a></div></div>
-<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00013">Fault.h:13</a></div></div>
-<div class="ttc" id="class_fault_html_ac7942a558f3ecdb8c06ddb49567c487a"><div class="ttname"><a href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a></div><div class="ttdeci">virtual bool RunSCPowerCalcutation(double systemPowerBase)</div><div class="ttdoc">Calculate the short-circuit power of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00382">Fault.cpp:382</a></div></div>
-<div class="ttc" id="class_fault_html_a42019654142cd8187b314e43d70262eb"><div class="ttname"><a href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a></div><div class="ttdeci">~Fault()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00008">Fault.cpp:8</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="class_fault_html_af1bb91359dfe8df0251a2031957d3ddf"><div class="ttname"><a href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a></div><div class="ttdeci">virtual void UpdateElementsFault(double systemPowerBase)</div><div class="ttdoc">Update the data of the elements. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00176">Fault.cpp:176</a></div></div>
+<a href="_fault_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef FAULT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define FAULT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_fault.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_fault.html">Fault</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault</a>();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_fault.html#a42019654142cd8187b314e43d70262eb">~Fault</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">RunFaultCalculation</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">RunSCPowerCalcutation</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">UpdateElementsFault</a>(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0"> 71</a></span>&#160; <span class="keyword">virtual</span> wxString <a class="code" href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0">GetErrorMessage</a>() { <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; wxString m_errorMsg = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> m_systemPowerBase;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusPos;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusNeg;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_zBusZero;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltagePos;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageNeg;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageZero;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; std::complex&lt;double&gt; m_fCurrentA;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::complex&lt;double&gt; m_fCurrentB;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; std::complex&lt;double&gt; m_fCurrentC;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageA;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageB;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; m_posFaultVoltageC;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;};</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="preprocessor">#endif // FAULT_H</span></div><div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="class_fault_html_a3c2f14cd1da46cb88109fdb172d959b0"><div class="ttname"><a href="class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0">Fault::GetErrorMessage</a></div><div class="ttdeci">virtual wxString GetErrorMessage()</div><div class="ttdoc">Get the error message generated in RunFaultCalculation(double systemPowerBase). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00071">Fault.h:71</a></div></div>
+<div class="ttc" id="class_fault_html_a4120f861b073783b4fb82385171fbd0f"><div class="ttname"><a href="class_fault.html#a4120f861b073783b4fb82385171fbd0f">Fault::RunFaultCalculation</a></div><div class="ttdeci">virtual bool RunFaultCalculation(double systemPowerBase)</div><div class="ttdoc">Calculate the fault of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00026">Fault.cpp:26</a></div></div>
+<div class="ttc" id="class_fault_html_a77baeae2c3388de3f7bbeabf52c99bef"><div class="ttname"><a href="class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef">Fault::Fault</a></div><div class="ttdeci">Fault()</div><div class="ttdoc">Default contructor. Use GetElementsFromList(std::vector&lt;Element*&gt; elementList). </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00023">Fault.cpp:23</a></div></div>
+<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdoc">Calculate the fault of the system and update the elements data. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00030">Fault.h:30</a></div></div>
+<div class="ttc" id="class_fault_html_ac7942a558f3ecdb8c06ddb49567c487a"><div class="ttname"><a href="class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a">Fault::RunSCPowerCalcutation</a></div><div class="ttdeci">virtual bool RunSCPowerCalcutation(double systemPowerBase)</div><div class="ttdoc">Calculate the short-circuit power of the system. Return true if was possible the calculation. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00399">Fault.cpp:399</a></div></div>
+<div class="ttc" id="class_fault_html_a42019654142cd8187b314e43d70262eb"><div class="ttname"><a href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault::~Fault</a></div><div class="ttdeci">~Fault()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00025">Fault.cpp:25</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="class_fault_html_af1bb91359dfe8df0251a2031957d3ddf"><div class="ttname"><a href="class_fault.html#af1bb91359dfe8df0251a2031957d3ddf">Fault::UpdateElementsFault</a></div><div class="ttdeci">virtual void UpdateElementsFault(double systemPowerBase)</div><div class="ttdoc">Update the data of the elements. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8cpp_source.html#l00193">Fault.cpp:193</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_file_handing_8cpp_source.html b/docs/doxygen/html/_file_handing_8cpp_source.html
index 14f2099..5f11b75 100644
--- a/docs/doxygen/html/_file_handing_8cpp_source.html
+++ b/docs/doxygen/html/_file_handing_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,101 +88,102 @@ $(document).ready(function(){initNavTree('_file_handing_8cpp_source.html','');})
<div class="title">FileHanding.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;FileHanding.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;FileHanding::~FileHanding() {}</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;FileHanding::FileHanding(<a class="code" href="class_workspace.html">Workspace</a>* workspace) { m_workspace = workspace; }</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;FileHanding::FileHanding(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor) { m_controlEditor = controlEditor; }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;FileHanding::FileHanding() {}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveProject(wxFileName path)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="comment">// Erase the file (if exists or not) and write the initial data</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; std::ofstream writeProjectsFile(path.GetFullPath());</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; writeProjectsFile.close();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; rapidxml::xml_node&lt;&gt;* decl = doc.allocate_node(rapidxml::node_declaration);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; rapidxml::xml_attribute&lt;&gt;* ver = doc.allocate_attribute(<span class="stringliteral">&quot;version&quot;</span>, <span class="stringliteral">&quot;1.0&quot;</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; rapidxml::xml_attribute&lt;&gt;* encoding = doc.allocate_attribute(<span class="stringliteral">&quot;encoding&quot;</span>, <span class="stringliteral">&quot;utf-8&quot;</span>);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; decl-&gt;append_attribute(ver);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; decl-&gt;append_attribute(encoding);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; doc.append_node(decl);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; rapidxml::xml_node&lt;&gt;* rootNode = doc.allocate_node(rapidxml::node_element, <span class="stringliteral">&quot;Project&quot;</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; doc.append_node(rootNode);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; rapidxml::xml_node&lt;&gt;* projectNameNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; SetNodeValue(doc, projectNameNode, path.GetName());</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">auto</span> elementsNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Elements&quot;</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// Save all the data</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> allElements;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; allElements.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="comment">//{ Buses</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">auto</span> busesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;BusList&quot;</span>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">auto</span> busList = allElements.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)busList.size(); i++) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = busList[i];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">auto</span> busNode = AppendNode(doc, busesNode, <span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; SetNodeAttribute(doc, busNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, busNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; SetNodeValue(doc, posX, bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; SetNodeValue(doc, posY, bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; SetNodeValue(doc, width, bus-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; SetNodeValue(doc, height, bus-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; SetNodeValue(doc, angle, bus-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, busNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">auto</span> isVoltageControlled = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsVoltageControlled&quot;</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; SetNodeValue(doc, isVoltageControlled, data.isVoltageControlled);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">auto</span> controlledVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; SetNodeValue(doc, controlledVoltage, data.controlledVoltage);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; SetNodeAttribute(doc, controlledVoltage, <span class="stringliteral">&quot;Choice&quot;</span>, data.controlledVoltageUnitChoice);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">auto</span> slackBus = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SlackBus&quot;</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; SetNodeValue(doc, slackBus, data.slackBus);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">auto</span> hasFault = AppendNode(doc, fault, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; SetNodeValue(doc, hasFault, data.hasFault);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">auto</span> faultType = AppendNode(doc, fault, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; SetNodeValue(doc, faultType, data.faultType);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">auto</span> faultLocation = AppendNode(doc, fault, <span class="stringliteral">&quot;Location&quot;</span>);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; SetNodeValue(doc, faultLocation, data.faultLocation);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">auto</span> faultResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; SetNodeValue(doc, faultResistance, data.faultResistance);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">auto</span> faultReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;Reactance&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; SetNodeValue(doc, faultReactance, data.faultReactance);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">auto</span> stability = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">auto</span> plotBus = AppendNode(doc, stability, <span class="stringliteral">&quot;Plot&quot;</span>);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; SetNodeValue(doc, plotBus, data.plotBus);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">auto</span> stabHasFault = AppendNode(doc, stability, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; SetNodeValue(doc, stabHasFault, data.stabHasFault);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">auto</span> stabFaultTime = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultTime&quot;</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; SetNodeValue(doc, stabFaultTime, data.stabFaultTime);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">auto</span> stabFaultLength = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultLength&quot;</span>);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; SetNodeValue(doc, stabFaultLength, data.stabFaultLength);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">auto</span> stabFaultResistance = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultResistance&quot;</span>);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; SetNodeValue(doc, stabFaultResistance, data.stabFaultResistance);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">auto</span> stabFaultReactance = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultReactance&quot;</span>);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; SetNodeValue(doc, stabFaultReactance, data.stabFaultReactance);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; data.number = i;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">//{ Capacitor</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">auto</span> capacitorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;CapacitorList&quot;</span>);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">auto</span> capacitorList = allElements.<a class="code" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)capacitorList.size(); i++) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = capacitorList[i];</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">auto</span> capacitorNode = AppendNode(doc, capacitorsNode, <span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; SetNodeAttribute(doc, capacitorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, capacitorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; SetNodeValue(doc, posX, capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; SetNodeValue(doc, posY, capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; SetNodeValue(doc, width, capacitor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; SetNodeValue(doc, height, capacitor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; SetNodeValue(doc, angle, capacitor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; SetNodeValue(doc, nodePosX, capacitor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; SetNodeValue(doc, nodePosY, capacitor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, capacitorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; SetNodeValue(doc, isOnline, capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = capacitor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">//{ IndMotor</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">auto</span> indMotorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;IndMotorList&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">auto</span> indMotorList = allElements.<a class="code" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)indMotorList.size(); i++) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = indMotorList[i];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">auto</span> indMotorNode = AppendNode(doc, indMotorsNode, <span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; SetNodeAttribute(doc, indMotorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, indMotorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; SetNodeValue(doc, posX, indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; SetNodeValue(doc, posY, indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; SetNodeValue(doc, width, indMotor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; SetNodeValue(doc, height, indMotor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; SetNodeValue(doc, angle, indMotor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; SetNodeValue(doc, nodePosX, indMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; SetNodeValue(doc, nodePosY, indMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, indMotorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; SetNodeValue(doc, isOnline, indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">//{ Inductor</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keyword">auto</span> inductorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;InductorList&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keyword">auto</span> inductorList = allElements.<a class="code" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)inductorList.size(); i++) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = inductorList[i];</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> inductorNode = AppendNode(doc, inductorsNode, <span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; SetNodeAttribute(doc, inductorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, inductorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; SetNodeValue(doc, posX, inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; SetNodeValue(doc, posY, inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; SetNodeValue(doc, width, inductor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; SetNodeValue(doc, height, inductor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; SetNodeValue(doc, angle, inductor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; SetNodeValue(doc, nodePosX, inductor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; SetNodeValue(doc, nodePosY, inductor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, inductorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; SetNodeValue(doc, isOnline, inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = inductor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="comment">//{ Line</span></div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">auto</span> linesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LineList&quot;</span>);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keyword">auto</span> lineList = allElements.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)lineList.size(); i++) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <a class="code" href="class_line.html">Line</a>* line = lineList[i];</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">auto</span> lineNode = AppendNode(doc, linesNode, <span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; SetNodeAttribute(doc, lineNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, lineNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keyword">auto</span> ptList = line-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>();</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordtype">int</span> nodeID = 0;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)ptList.size(); j++) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>((j != 1) &amp;&amp; (j != (int)ptList.size() - 2)) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; SetNodeAttribute(doc, nodePos, <span class="stringliteral">&quot;ID&quot;</span>, nodeID);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; SetNodeValue(doc, nodePosX, ptList[j].m_x);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; SetNodeValue(doc, nodePosY, ptList[j].m_y);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; nodeID++;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; }</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keyword">auto</span> parentIDList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, parentIDList, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; SetNodeAttribute(doc, parentID, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, lineNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; SetNodeValue(doc, isOnline, line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keyword">auto</span> resistance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; SetNodeValue(doc, resistance, data.resistance);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; SetNodeAttribute(doc, resistance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.resistanceUnit);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keyword">auto</span> indReactance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; SetNodeValue(doc, indReactance, data.indReactance);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; SetNodeAttribute(doc, indReactance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.indReactanceUnit);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">auto</span> capSusceptance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; SetNodeValue(doc, capSusceptance, data.capSusceptance);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; SetNodeAttribute(doc, capSusceptance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.capSusceptanceUnit);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">auto</span> lineSize = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;LineSize&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; SetNodeValue(doc, lineSize, data.lineSize);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">auto</span> useLinePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseLinePower&quot;</span>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; SetNodeValue(doc, useLinePower, data.useLinePower);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">auto</span> zeroIndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; SetNodeValue(doc, zeroIndReactance, data.zeroIndReactance);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">auto</span> zeroCapSusceptance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroCapSusceptance&quot;</span>);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; SetNodeValue(doc, zeroCapSusceptance, data.zeroCapSusceptance);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = line-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="comment">//{ Load</span></div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keyword">auto</span> loadsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LoadList&quot;</span>);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">auto</span> loadList = allElements.<a class="code" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>();</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)loadList.size(); i++) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <a class="code" href="class_load.html">Load</a>* load = loadList[i];</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">auto</span> loadNode = AppendNode(doc, loadsNode, <span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; SetNodeAttribute(doc, loadNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, loadNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; SetNodeValue(doc, posX, load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; SetNodeValue(doc, posY, load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; SetNodeValue(doc, width, load-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; SetNodeValue(doc, height, load-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; SetNodeValue(doc, angle, load-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; SetNodeValue(doc, nodePosX, load-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; SetNodeValue(doc, nodePosY, load-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, loadNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; SetNodeValue(doc, isOnline, load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keyword">auto</span> loadType = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;LoadType&quot;</span>);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; SetNodeValue(doc, loadType, data.loadType);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = load-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="comment">//{ SyncGenerator</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keyword">auto</span> syncGeneratorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SyncGeneratorList&quot;</span>);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">auto</span> syncGeneratorList = allElements.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)syncGeneratorList.size(); i++) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = syncGeneratorList[i];</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">auto</span> syncGeneratorNode = AppendNode(doc, syncGeneratorsNode, <span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; SetNodeAttribute(doc, syncGeneratorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, syncGeneratorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; SetNodeValue(doc, posX, syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; SetNodeValue(doc, posY, syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; SetNodeValue(doc, width, syncGenerator-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; SetNodeValue(doc, height, syncGenerator-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; SetNodeValue(doc, angle, syncGenerator-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; SetNodeValue(doc, nodePosX, syncGenerator-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; SetNodeValue(doc, nodePosY, syncGenerator-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, syncGeneratorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; SetNodeValue(doc, isOnline, syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">auto</span> haveMaxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; SetNodeValue(doc, haveMaxReactive, data.haveMaxReactive);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keyword">auto</span> maxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; SetNodeValue(doc, maxReactive, data.maxReactive);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; SetNodeAttribute(doc, maxReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.maxReactiveUnit);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">auto</span> haveMinReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; SetNodeValue(doc, haveMinReactive, data.haveMinReactive);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">auto</span> minReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; SetNodeValue(doc, minReactive, data.minReactive);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; SetNodeAttribute(doc, minReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.minReactiveUnit);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keyword">auto</span> useMachineBase = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; SetNodeValue(doc, useMachineBase, data.useMachineBase);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">auto</span> positiveResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; SetNodeValue(doc, positiveResistance, data.positiveResistance);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keyword">auto</span> positiveReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; SetNodeValue(doc, positiveReactance, data.positiveReactance);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keyword">auto</span> negativeResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; SetNodeValue(doc, negativeResistance, data.negativeResistance);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keyword">auto</span> negativeReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; SetNodeValue(doc, negativeReactance, data.negativeReactance);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">auto</span> zeroReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; SetNodeValue(doc, zeroReactance, data.zeroReactance);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keyword">auto</span> groundResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; SetNodeValue(doc, groundResistance, data.groundResistance);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keyword">auto</span> groundReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; SetNodeValue(doc, groundReactance, data.groundReactance);</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">auto</span> groundNeutral = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; SetNodeValue(doc, groundNeutral, data.groundNeutral);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">auto</span> stability = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keyword">auto</span> plotSyncMachine = AppendNode(doc, stability, <span class="stringliteral">&quot;PlotSyncMachine&quot;</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; SetNodeValue(doc, plotSyncMachine, data.plotSyncMachine);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keyword">auto</span> inertia = AppendNode(doc, stability, <span class="stringliteral">&quot;Inertia&quot;</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; SetNodeValue(doc, inertia, data.inertia);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keyword">auto</span> damping = AppendNode(doc, stability, <span class="stringliteral">&quot;Damping&quot;</span>);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; SetNodeValue(doc, damping, data.damping);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keyword">auto</span> useAVR = AppendNode(doc, stability, <span class="stringliteral">&quot;UseAVR&quot;</span>);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; SetNodeValue(doc, useAVR, data.useAVR);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keyword">auto</span> useSpeedGovernor = AppendNode(doc, stability, <span class="stringliteral">&quot;UseSpeedGovernor&quot;</span>);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; SetNodeValue(doc, useSpeedGovernor, data.useSpeedGovernor);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keyword">auto</span> armResistance = AppendNode(doc, stability, <span class="stringliteral">&quot;ArmResistance&quot;</span>);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; SetNodeValue(doc, armResistance, data.armResistance);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keyword">auto</span> potierReactance = AppendNode(doc, stability, <span class="stringliteral">&quot;PotierReactance&quot;</span>);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; SetNodeValue(doc, potierReactance, data.potierReactance);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keyword">auto</span> satFactor = AppendNode(doc, stability, <span class="stringliteral">&quot;SatFactor&quot;</span>);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; SetNodeValue(doc, satFactor, data.satFactor);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">auto</span> syncXd = AppendNode(doc, stability, <span class="stringliteral">&quot;SyncXd&quot;</span>);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; SetNodeValue(doc, syncXd, data.syncXd);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keyword">auto</span> syncXq = AppendNode(doc, stability, <span class="stringliteral">&quot;SyncXq&quot;</span>);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; SetNodeValue(doc, syncXq, data.syncXq);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">auto</span> transXd = AppendNode(doc, stability, <span class="stringliteral">&quot;TransXd&quot;</span>);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; SetNodeValue(doc, transXd, data.transXd);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keyword">auto</span> transXq = AppendNode(doc, stability, <span class="stringliteral">&quot;TransXq&quot;</span>);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; SetNodeValue(doc, transXq, data.transXq);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keyword">auto</span> transTd0 = AppendNode(doc, stability, <span class="stringliteral">&quot;TransTd0&quot;</span>);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; SetNodeValue(doc, transTd0, data.transTd0);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keyword">auto</span> transTq0 = AppendNode(doc, stability, <span class="stringliteral">&quot;TransTq0&quot;</span>);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; SetNodeValue(doc, transTq0, data.transTq0);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">auto</span> subXd = AppendNode(doc, stability, <span class="stringliteral">&quot;SubXd&quot;</span>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; SetNodeValue(doc, subXd, data.subXd);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keyword">auto</span> subXq = AppendNode(doc, stability, <span class="stringliteral">&quot;SubXq&quot;</span>);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; SetNodeValue(doc, subXq, data.subXq);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keyword">auto</span> subTd0 = AppendNode(doc, stability, <span class="stringliteral">&quot;SubTd0&quot;</span>);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; SetNodeValue(doc, subTd0, data.subTd0);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keyword">auto</span> subTq0 = AppendNode(doc, stability, <span class="stringliteral">&quot;SubTq0&quot;</span>);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; SetNodeValue(doc, subTq0, data.subTq0);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">auto</span> avr = AppendNode(doc, stability, <span class="stringliteral">&quot;AVR&quot;</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">if</span>(data.avr) SaveControlElements(doc, avr, data.avr);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keyword">auto</span> speedGov = AppendNode(doc, stability, <span class="stringliteral">&quot;SpeedGovernor&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(data.speedGov) SaveControlElements(doc, speedGov, data.speedGov);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = syncGenerator-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">//{ SyncMotor</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keyword">auto</span> syncMotorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SyncMotorList&quot;</span>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">auto</span> syncMotorList = allElements.<a class="code" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>();</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)syncMotorList.size(); i++) {</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = syncMotorList[i];</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">auto</span> syncMotorNode = AppendNode(doc, syncMotorsNode, <span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; SetNodeAttribute(doc, syncMotorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, syncMotorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; SetNodeValue(doc, posX, syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; SetNodeValue(doc, posY, syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; SetNodeValue(doc, width, syncMotor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; SetNodeValue(doc, height, syncMotor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; SetNodeValue(doc, angle, syncMotor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; SetNodeValue(doc, nodePosX, syncMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; SetNodeValue(doc, nodePosY, syncMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, syncMotorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; SetNodeValue(doc, isOnline, syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="comment">// auto nominalVoltage = AppendNode(doc, electricalProp, &quot;NominalVoltage&quot;);</span></div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">// SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="comment">// SetNodeAttribute(doc, nominalVoltage, &quot;UnitID&quot;, data.nominalVoltageUnit);</span></div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">auto</span> haveMaxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; SetNodeValue(doc, haveMaxReactive, data.haveMaxReactive);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keyword">auto</span> maxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; SetNodeValue(doc, maxReactive, data.maxReactive);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; SetNodeAttribute(doc, maxReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.maxReactiveUnit);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">auto</span> haveMinReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; SetNodeValue(doc, haveMinReactive, data.haveMinReactive);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keyword">auto</span> minReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; SetNodeValue(doc, minReactive, data.minReactive);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; SetNodeAttribute(doc, minReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.minReactiveUnit);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keyword">auto</span> useMachineBase = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; SetNodeValue(doc, useMachineBase, data.useMachineBase);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">auto</span> positiveResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; SetNodeValue(doc, positiveResistance, data.positiveResistance);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keyword">auto</span> positiveReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; SetNodeValue(doc, positiveReactance, data.positiveReactance);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keyword">auto</span> negativeResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; SetNodeValue(doc, negativeResistance, data.negativeResistance);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keyword">auto</span> negativeReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; SetNodeValue(doc, negativeReactance, data.negativeReactance);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keyword">auto</span> zeroReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; SetNodeValue(doc, zeroReactance, data.zeroReactance);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keyword">auto</span> groundResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; SetNodeValue(doc, groundResistance, data.groundResistance);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="keyword">auto</span> groundReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; SetNodeValue(doc, groundReactance, data.groundReactance);</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">auto</span> groundNeutral = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; SetNodeValue(doc, groundNeutral, data.groundNeutral);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="comment">// To future use...</span></div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">/*auto stability = AppendNode(doc, electricalProp, &quot;Stability&quot;);</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160;<span class="comment"> auto plotSyncMachine = AppendNode(doc, stability, &quot;PlotSyncMotor&quot;);</span></div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;<span class="comment"> SetNodeValue(doc, plotSyncMachine, data.plotSyncMachine);</span></div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160;<span class="comment"> auto inertia = AppendNode(doc, stability, &quot;Inertia&quot;);</span></div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160;<span class="comment"> SetNodeValue(doc, inertia, data.inertia);</span></div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160;<span class="comment"> auto damping = AppendNode(doc, stability, &quot;Damping&quot;);</span></div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160;<span class="comment"> SetNodeValue(doc, damping, data.damping);</span></div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;<span class="comment"> auto useAVR = AppendNode(doc, stability, &quot;UseAVR&quot;);</span></div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160;<span class="comment"> SetNodeValue(doc, useAVR, data.useAVR);</span></div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160;<span class="comment"> auto armResistance = AppendNode(doc, stability, &quot;ArmResistance&quot;);</span></div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160;<span class="comment"> SetNodeValue(doc, armResistance, data.armResistance);</span></div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160;<span class="comment"> auto potierReactance = AppendNode(doc, stability, &quot;PotierReactance&quot;);</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160;<span class="comment"> SetNodeValue(doc, potierReactance, data.potierReactance);</span></div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;<span class="comment"> auto satFactor = AppendNode(doc, stability, &quot;SatFactor&quot;);</span></div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;<span class="comment"> SetNodeValue(doc, satFactor, data.satFactor);</span></div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="comment"> auto syncXd = AppendNode(doc, stability, &quot;SyncXd&quot;);</span></div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;<span class="comment"> SetNodeValue(doc, syncXd, data.syncXd);</span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;<span class="comment"> auto syncXq = AppendNode(doc, stability, &quot;SyncXq&quot;);</span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="comment"> SetNodeValue(doc, syncXq, data.syncXq);</span></div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment"> auto transXd = AppendNode(doc, stability, &quot;TransXd&quot;);</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="comment"> SetNodeValue(doc, transXd, data.transXd);</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="comment"> auto transXq = AppendNode(doc, stability, &quot;TransXq&quot;);</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="comment"> SetNodeValue(doc, transXq, data.transXq);</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="comment"> auto transTd0 = AppendNode(doc, stability, &quot;TransTd0&quot;);</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="comment"> SetNodeValue(doc, transTd0, data.transTd0);</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="comment"> auto transTq0 = AppendNode(doc, stability, &quot;TransTq0&quot;);</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="comment"> SetNodeValue(doc, transTq0, data.transTq0);</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="comment"> auto subXd = AppendNode(doc, stability, &quot;SubXd&quot;);</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="comment"> SetNodeValue(doc, subXd, data.subXd);</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="comment"> auto subXq = AppendNode(doc, stability, &quot;SubXq&quot;);</span></div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment"> SetNodeValue(doc, subXq, data.subXq);</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment"> auto subTd0 = AppendNode(doc, stability, &quot;SubTd0&quot;);</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment"> SetNodeValue(doc, subTd0, data.subTd0);</span></div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="comment"> auto subTq0 = AppendNode(doc, stability, &quot;SubTq0&quot;);</span></div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="comment"> SetNodeValue(doc, subTq0, data.subTq0);</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="comment"> auto switchingList = AppendNode(doc, electricalProp, &quot;SwitchingList&quot;);</span></div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="comment"> SwitchingData swData = syncGenerator-&gt;GetSwitchingData();</span></div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment"> for(int j = 0; j &lt; (int)swData.swType.size(); j++) {</span></div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="comment"> auto switching = AppendNode(doc, switchingList, &quot;Switching&quot;);</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="comment"> SetNodeAttribute(doc, switching, &quot;ID&quot;, j);</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment"> auto swType = AppendNode(doc, switching, &quot;Type&quot;);</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="comment"> SetNodeValue(doc, swType, swData.swType[j]);</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment"> auto swTime = AppendNode(doc, switching, &quot;Time&quot;);</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment"> SetNodeValue(doc, swTime, swData.swTime[j]);</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="comment"> }*/</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="comment">//{ Transfomer</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keyword">auto</span> transformersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TransformerList&quot;</span>);</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keyword">auto</span> transformerList = allElements.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)transformerList.size(); i++) {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transfomer = transformerList[i];</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; <span class="keyword">auto</span> transformerNode = AppendNode(doc, transformersNode, <span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; SetNodeAttribute(doc, transformerNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, transformerNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; SetNodeValue(doc, posX, transfomer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; SetNodeValue(doc, posY, transfomer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; SetNodeValue(doc, width, transfomer-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; SetNodeValue(doc, height, transfomer-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; SetNodeValue(doc, angle, transfomer-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keyword">auto</span> nodePos1 = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; SetNodeAttribute(doc, nodePos1, <span class="stringliteral">&quot;ID&quot;</span>, 0);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keyword">auto</span> nodePosX1 = AppendNode(doc, nodePos1, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; SetNodeValue(doc, nodePosX1, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keyword">auto</span> nodePosY1 = AppendNode(doc, nodePos1, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; SetNodeValue(doc, nodePosY1, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keyword">auto</span> nodePos2 = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; SetNodeAttribute(doc, nodePos2, <span class="stringliteral">&quot;ID&quot;</span>, 1);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keyword">auto</span> nodePosX2 = AppendNode(doc, nodePos2, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; SetNodeValue(doc, nodePosX2, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>().size() - 1].m_x);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">auto</span> nodePosY2 = AppendNode(doc, nodePos2, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; SetNodeValue(doc, nodePosY2, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>().size() - 1].m_y);</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="keyword">auto</span> parentIDList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)transfomer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transfomer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, parentIDList, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; SetNodeAttribute(doc, parentID, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; }</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; }</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transfomer-&gt;GetElectricalData();</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, transformerNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; SetNodeValue(doc, isOnline, transfomer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keyword">auto</span> primaryNominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; SetNodeValue(doc, primaryNominalVoltage, data.primaryNominalVoltage);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; SetNodeAttribute(doc, primaryNominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <span class="keyword">auto</span> secondaryNominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; SetNodeValue(doc, secondaryNominalVoltage, data.secondaryNominalVoltage);</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; SetNodeAttribute(doc, secondaryNominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keyword">auto</span> resistance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; SetNodeValue(doc, resistance, data.resistance);</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; SetNodeAttribute(doc, resistance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.resistanceUnit);</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">auto</span> indReactance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; SetNodeValue(doc, indReactance, data.indReactance);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; SetNodeAttribute(doc, indReactance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.indReactanceUnit);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">auto</span> connection = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; SetNodeValue(doc, connection, data.connection);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">auto</span> turnsRatio = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;TurnsRatio&quot;</span>);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; SetNodeValue(doc, turnsRatio, data.turnsRatio);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keyword">auto</span> phaseShift = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;PhaseShift&quot;</span>);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; SetNodeValue(doc, phaseShift, data.phaseShift);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keyword">auto</span> useTransformerPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseTransfomerPower&quot;</span>);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; SetNodeValue(doc, useTransformerPower, data.useTransformerPower);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160;</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keyword">auto</span> zeroIndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; SetNodeValue(doc, zeroIndReactance, data.zeroIndReactance);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">auto</span> primaryGrndResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PrimaryGrndResistance&quot;</span>);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; SetNodeValue(doc, primaryGrndResistance, data.primaryGrndResistance);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keyword">auto</span> primaryGrndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PrimaryGrndReactance&quot;</span>);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; SetNodeValue(doc, primaryGrndReactance, data.primaryGrndReactance);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keyword">auto</span> secondaryGrndResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;SecondaryGrndResistance&quot;</span>);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; SetNodeValue(doc, secondaryGrndResistance, data.secondaryGrndResistance);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keyword">auto</span> secondaryGrndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;SecondaryGrndReactance&quot;</span>);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; SetNodeValue(doc, secondaryGrndReactance, data.secondaryGrndReactance);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160;</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = transfomer-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; }</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="comment">//{ Text</span></div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keyword">auto</span> textsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TextList&quot;</span>);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">auto</span> textList = m_workspace-&gt;GetTextList();</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)textList.size(); i++) {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="class_text.html">Text</a>* text = textList[i];</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keyword">auto</span> textNode = AppendNode(doc, textsNode, <span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; SetNodeAttribute(doc, textNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, textNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; SetNodeValue(doc, posX, text-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; SetNodeValue(doc, posY, text-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; SetNodeValue(doc, width, text-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; SetNodeValue(doc, height, text-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; SetNodeValue(doc, angle, text-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keyword">auto</span> textProperties = AppendNode(doc, textNode, <span class="stringliteral">&quot;TextProperties&quot;</span>);</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keyword">auto</span> elementType = AppendNode(doc, textProperties, <span class="stringliteral">&quot;ElementType&quot;</span>);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; SetNodeValue(doc, elementType, text-&gt;GetElementType());</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keyword">auto</span> elementNumber = AppendNode(doc, textProperties, <span class="stringliteral">&quot;ElementNumber&quot;</span>);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; SetNodeValue(doc, elementNumber, text-&gt;GetElementNumber());</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keyword">auto</span> dataType = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DataType&quot;</span>);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; SetNodeValue(doc, dataType, text-&gt;GetDataType());</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keyword">auto</span> dataUnit = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DataUnit&quot;</span>);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; SetNodeValue(doc, dataUnit, text-&gt;GetUnit());</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keyword">auto</span> direction = AppendNode(doc, textProperties, <span class="stringliteral">&quot;Direction&quot;</span>);</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; SetNodeValue(doc, direction, text-&gt;GetDirection());</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keyword">auto</span> decimalPlaces = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DecimalPlaces&quot;</span>);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; SetNodeValue(doc, decimalPlaces, text-&gt;GetDecimalPlaces());</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; }</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; std::ofstream writeXML(path.GetFullPath());</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; writeXML &lt;&lt; doc;</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; writeXML.close();</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160;}</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenProject(wxFileName path)</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160;{</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160;</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">auto</span> projectNode = doc.first_node(<span class="stringliteral">&quot;Project&quot;</span>);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">if</span>(!projectNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keyword">auto</span> nameNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">if</span>(!nameNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; m_workspace-&gt;SetName(nameNode-&gt;value());</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="comment">// Open elements</span></div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keyword">auto</span> elementsNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;Elements&quot;</span>);</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">if</span>(!elementsNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="comment">// Save lists individually to get parents</span></div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; std::vector&lt;Bus*&gt; busList;</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; std::vector&lt;Capacitor*&gt; capacitorList;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; std::vector&lt;IndMotor*&gt; indMotorList;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; std::vector&lt;Inductor*&gt; inductorList;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; std::vector&lt;Line*&gt; lineList;</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; std::vector&lt;Load*&gt; loadList;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; std::vector&lt;SyncGenerator*&gt; syncGeneratorList;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; std::vector&lt;SyncMotor*&gt; syncMotorList;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; std::vector&lt;Transformer*&gt; transformerList;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; std::vector&lt;Text*&gt; textList;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160;</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="comment">//{ Bus</span></div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keyword">auto</span> busListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;BusList&quot;</span>);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">if</span>(!busListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keyword">auto</span> busNode = busListNode-&gt;first_node(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">while</span>(busNode) {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keyword">auto</span> cadPropNode = busNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; bus-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; bus-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; bus-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>()); <span class="comment">// Update bus rectangle.</span></div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordtype">int</span> numRot = angle / bus-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; }</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) bus-&gt;<a class="code" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Rotate</a>(clockwise);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keyword">auto</span> electricalProp = busNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160;</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; data.isVoltageControlled = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsVoltageControlled&quot;</span>);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; data.controlledVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; data.controlledVoltageUnitChoice = GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>, <span class="stringliteral">&quot;Choice&quot;</span>);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; data.slackBus = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;SlackBus&quot;</span>);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; data.hasFault = GetNodeValueInt(fault, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; data.faultType = (<a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a>)GetNodeValueInt(fault, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; data.faultLocation = (<a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a>)GetNodeValueInt(fault, <span class="stringliteral">&quot;Location&quot;</span>);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; data.faultResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; data.faultReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;Reactance&quot;</span>);</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keyword">auto</span> stability = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; data.plotBus = GetNodeValueInt(stability, <span class="stringliteral">&quot;Plot&quot;</span>);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; data.stabHasFault = GetNodeValueInt(stability, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; data.stabFaultTime = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultTime&quot;</span>);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; data.stabFaultLength = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultLength&quot;</span>);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; data.stabFaultResistance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultResistance&quot;</span>);</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; data.stabFaultReactance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultReactance&quot;</span>);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) bus-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160;</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; elementList.push_back(bus);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; busList.push_back(bus);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; busNode = busNode-&gt;next_sibling(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="comment">//{ Capacitor</span></div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <span class="keyword">auto</span> capacitorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;CapacitorList&quot;</span>);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">if</span>(!capacitorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keyword">auto</span> capacitorNode = capacitorListNode-&gt;first_node(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">while</span>(capacitorNode) {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keyword">auto</span> cadPropNode = capacitorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; capacitor-&gt;<a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; capacitor-&gt;<a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordtype">int</span> numRot = angle / capacitor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; }</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) capacitor-&gt;<a class="code" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Rotate</a>(clockwise);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keyword">auto</span> electricalProp = capacitorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; }</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; capacitor-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; capacitor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) capacitor-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; elementList.push_back(capacitor);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; capacitorList.push_back(capacitor);</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; capacitorNode = capacitorNode-&gt;next_sibling(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="comment">//{ IndMotor</span></div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keyword">auto</span> indMotorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;IndMotorList&quot;</span>);</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span>(!indMotorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keyword">auto</span> indMotorNode = indMotorListNode-&gt;first_node(<span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">while</span>(indMotorNode) {</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="keyword">auto</span> cadPropNode = indMotorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordtype">int</span> numRot = angle / indMotor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; }</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) indMotor-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keyword">auto</span> electricalProp = indMotorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160;</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; indMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; elementList.push_back(indMotor);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; indMotorList.push_back(indMotor);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; indMotorNode = indMotorNode-&gt;next_sibling(<span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="comment">//{ Inductor</span></div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keyword">auto</span> inductorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;InductorList&quot;</span>);</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keywordflow">if</span>(!inductorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; <span class="keyword">auto</span> inductorNode = inductorListNode-&gt;first_node(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <span class="keywordflow">while</span>(inductorNode) {</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keyword">auto</span> cadPropNode = inductorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; inductor-&gt;<a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; inductor-&gt;<a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; }</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; inductor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; inductor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordtype">int</span> numRot = angle / inductor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; }</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) inductor-&gt;<a class="code" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Rotate</a>(clockwise);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keyword">auto</span> electricalProp = inductorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; }</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; inductor-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; inductor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) inductor-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; elementList.push_back(inductor);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; inductorList.push_back(inductor);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; inductorNode = inductorNode-&gt;next_sibling(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="comment">//{ Line</span></div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keyword">auto</span> lineListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LineList&quot;</span>);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">if</span>(!lineListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <span class="keyword">auto</span> lineNode = lineListNode-&gt;first_node(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">while</span>(lineNode) {</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <span class="keyword">auto</span> cadPropNode = lineNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="comment">// Get nodes points</span></div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; std::vector&lt;wxPoint2DDouble&gt; ptsList;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keyword">auto</span> nodePosList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">if</span>(!nodePosList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keyword">auto</span> nodePos = nodePosList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">while</span>(nodePos) {</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; ptsList.push_back(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; nodePos = nodePos-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; }</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="comment">// Get parents IDs</span></div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keyword">auto</span> parentIDList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keywordflow">if</span>(!parentIDList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keyword">auto</span> parentNode = parentIDList-&gt;first_node(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordtype">long</span> parentID[2] = {-1, -1};</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordtype">long</span> index = 0;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; wxString(parentNode-&gt;first_attribute(<span class="stringliteral">&quot;ID&quot;</span>)-&gt;value()).ToLong(&amp;index);</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; wxString(parentNode-&gt;value()).ToCLong(&amp;parentID[index]);</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; }</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="comment">// Set parents (if have)</span></div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; <a class="code" href="class_bus.html">Bus</a> *parent1, *parent2;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; parent1 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[0]);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; parent1 = busList[parentID[0]];</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; parent2 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; parent2 = busList[parentID[1]];</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="comment">// Add the others nodes (if have)</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; std::vector&lt;wxPoint2DDouble&gt; midPts;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)ptsList.size() - 1; i++) midPts.push_back(ptsList[i]);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edgesPts = line-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>();</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; edgesPts.insert(edgesPts.begin() + 2, midPts.begin(), midPts.end());</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; line-&gt;<a class="code" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">SetPointList</a>(edgesPts);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; line-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent1);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keyword">delete</span> parent1;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; line-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent2);</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keyword">delete</span> parent2;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; }</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; <span class="keyword">auto</span> electricalProp = lineNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; data.resistance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; data.resistanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; data.indReactance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; data.indReactanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; data.capSusceptance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>);</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; data.capSusceptanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; data.lineSize = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;LineSize&quot;</span>);</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; data.useLinePower = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseLinePower&quot;</span>);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; data.zeroIndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; data.zeroCapSusceptance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroCapSusceptance&quot;</span>);</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; }</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; line-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) line-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; elementList.push_back(line);</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; lineList.push_back(line);</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; lineNode = lineNode-&gt;next_sibling(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="comment">//{ Load</span></div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keyword">auto</span> loadListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LoadList&quot;</span>);</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">if</span>(!loadListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; <span class="keyword">auto</span> loadNode = loadListNode-&gt;first_node(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">while</span>(loadNode) {</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; <a class="code" href="class_load.html">Load</a>* load = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160;</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; <span class="keyword">auto</span> cadPropNode = loadNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; load-&gt;<a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; load-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; load-&gt;<a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; load-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; }</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; load-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; load-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keywordtype">int</span> numRot = angle / load-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) load-&gt;<a class="code" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Rotate</a>(clockwise);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keyword">auto</span> electricalProp = loadNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160;</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; data.loadType = (LoadType)GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;LoadType&quot;</span>);</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; }</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; load-&gt;SetElectricalData(data);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160;</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) load-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160;</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; elementList.push_back(load);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; loadList.push_back(load);</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; loadNode = loadNode-&gt;next_sibling(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="comment">//{ SyncGenerator</span></div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keyword">auto</span> syncGeneratorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SyncGeneratorList&quot;</span>);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; <span class="keywordflow">if</span>(!syncGeneratorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keyword">auto</span> syncGeneratorNode = syncGeneratorListNode-&gt;first_node(<span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keywordflow">while</span>(syncGeneratorNode) {</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160;</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keyword">auto</span> cadPropNode = syncGeneratorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; }</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordtype">int</span> numRot = angle / syncGenerator-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; }</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) syncGenerator-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keyword">auto</span> electricalProp = syncGeneratorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; data.haveMaxReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; data.maxReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; data.maxReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; data.haveMinReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; data.minReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; data.minReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; data.useMachineBase = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; <span class="keywordflow">if</span>(!fault) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; data.positiveResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; data.positiveReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; data.negativeResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; data.negativeReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; data.zeroReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; data.groundResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; data.groundReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; data.groundNeutral = GetNodeValueInt(fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; <span class="keyword">auto</span> stability = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">if</span>(!stability) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; data.plotSyncMachine = GetNodeValueInt(stability, <span class="stringliteral">&quot;PlotSyncMachine&quot;</span>);</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; data.inertia = GetNodeValueDouble(stability, <span class="stringliteral">&quot;Inertia&quot;</span>);</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; data.damping = GetNodeValueDouble(stability, <span class="stringliteral">&quot;Damping&quot;</span>);</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; data.useAVR = GetNodeValueInt(stability, <span class="stringliteral">&quot;UseAVR&quot;</span>);</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; data.useSpeedGovernor = GetNodeValueInt(stability, <span class="stringliteral">&quot;UseSpeedGovernor&quot;</span>);</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; data.armResistance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;ArmResistance&quot;</span>);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; data.potierReactance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;PotierReactance&quot;</span>);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; data.satFactor = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SatFactor&quot;</span>);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; data.syncXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SyncXd&quot;</span>);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; data.syncXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SyncXq&quot;</span>);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; data.transXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransXd&quot;</span>);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; data.transXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransXq&quot;</span>);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; data.transTd0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransTd0&quot;</span>);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; data.transTq0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransTq0&quot;</span>);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160; data.subXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubXd&quot;</span>);</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; data.subXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubXq&quot;</span>);</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; data.subTd0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubTd0&quot;</span>);</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; data.subTq0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubTq0&quot;</span>);</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keyword">auto</span> avr = stability-&gt;first_node(<span class="stringliteral">&quot;AVR&quot;</span>);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">if</span>(!avr) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, avr, data.avr)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keyword">auto</span> speedGov = stability-&gt;first_node(<span class="stringliteral">&quot;SpeedGovernor&quot;</span>);</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; <span class="keywordflow">if</span>(!speedGov) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, speedGov, data.speedGov)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; }</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; syncGenerator-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) syncGenerator-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; elementList.push_back(syncGenerator);</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; syncGeneratorList.push_back(syncGenerator);</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; syncGeneratorNode = syncGeneratorNode-&gt;next_sibling(<span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="comment">//{ SyncMotor</span></div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keyword">auto</span> syncMotorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SyncMotorList&quot;</span>);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; <span class="keywordflow">if</span>(!syncMotorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <span class="keyword">auto</span> syncMotorNode = syncMotorListNode-&gt;first_node(<span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keywordflow">while</span>(syncMotorNode) {</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160;</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; <span class="keyword">auto</span> cadPropNode = syncMotorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; }</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keywordtype">int</span> numRot = angle / syncMotor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; }</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) syncMotor-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160;</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; <span class="keyword">auto</span> electricalProp = syncMotorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160;</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <span class="comment">// data.nominalVoltage = GetNodeValueDouble(electricalProp, &quot;NominalVoltage&quot;);</span></div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <span class="comment">// data.nominalVoltageUnit = (ElectricalUnit)GetAttributeValueInt(electricalProp, &quot;NominalVoltage&quot;, &quot;UnitID&quot;);</span></div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; data.haveMaxReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; data.maxReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; data.maxReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; data.haveMinReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; data.minReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160; data.minReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; data.useMachineBase = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160;</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; <span class="keywordflow">if</span>(!fault) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; data.positiveResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; data.positiveReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; data.negativeResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; data.negativeReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; data.zeroReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; data.groundResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; data.groundReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; data.groundNeutral = GetNodeValueInt(fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="comment">/*SwitchingData swData;</span></div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;<span class="comment"> auto switchingList = electricalProp-&gt;first_node(&quot;SwitchingList&quot;);</span></div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;<span class="comment"> if(!switchingList) return false;</span></div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160;<span class="comment"> auto swNode = switchingList-&gt;first_node(&quot;Switching&quot;);</span></div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;<span class="comment"> while(swNode) {</span></div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160;<span class="comment"> swData.swType.push_back((SwitchingType)GetNodeValueInt(swNode, &quot;Type&quot;));</span></div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160;<span class="comment"> swData.swTime.push_back(GetNodeValueDouble(swNode, &quot;Time&quot;));</span></div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160;<span class="comment"> swNode = swNode-&gt;next_sibling(&quot;Switching&quot;);</span></div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160;<span class="comment"> }</span></div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160;<span class="comment"> syncMotor-&gt;SetSwitchingData(swData);*/</span></div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; elementList.push_back(syncMotor);</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; syncMotorList.push_back(syncMotor);</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; syncMotorNode = syncMotorNode-&gt;next_sibling(<span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="comment">//{ Transformer</span></div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160; <span class="keyword">auto</span> transformerListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TransformerList&quot;</span>);</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">if</span>(!transformerListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160; <span class="keyword">auto</span> transfomerNode = transformerListNode-&gt;first_node(<span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160; <span class="keywordflow">while</span>(transfomerNode) {</div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;</div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160; <span class="keyword">auto</span> cadPropNode = transfomerNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;</div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160;</div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="comment">// Get nodes points</span></div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; std::vector&lt;wxPoint2DDouble&gt; ptsList;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="keyword">auto</span> nodePosList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">if</span>(!nodePosList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; <span class="keyword">auto</span> nodePos = nodePosList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160; <span class="keywordflow">while</span>(nodePos) {</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160; ptsList.push_back(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; nodePos = nodePos-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; }</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160;</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <span class="comment">// Get parents IDs</span></div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <span class="keyword">auto</span> parentIDList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; <span class="keywordflow">if</span>(!parentIDList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; <span class="keyword">auto</span> parentNode = parentIDList-&gt;first_node(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160; <span class="keywordtype">long</span> parentID[2] = {-1, -1};</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; <span class="keywordtype">long</span> index = 0;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; wxString(parentNode-&gt;first_attribute(<span class="stringliteral">&quot;ID&quot;</span>)-&gt;value()).ToLong(&amp;index);</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; wxString(parentNode-&gt;value()).ToCLong(&amp;parentID[index]);</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; }</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160;</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="comment">// Set parents (if have)</span></div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; <a class="code" href="class_bus.html">Bus</a> *parent1, *parent2;</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; parent1 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[0]);</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; parent1 = busList[parentID[0]];</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; }</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; parent2 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; parent2 = busList[parentID[1]];</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; }</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">StartMove</a>(transformer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160;</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; transformer-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent1);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; <span class="keyword">delete</span> parent1;</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; }</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; transformer-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent2);</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="keyword">delete</span> parent2;</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; }</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160;</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160;</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; <span class="keywordtype">int</span> numRot = angle / transformer-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; }</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) transformer-&gt;<a class="code" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Rotate</a>(clockwise);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160;</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; <span class="keyword">auto</span> electricalProp = transfomerNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160;</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; data.primaryNominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; data.primaryNominalVoltageUnit =</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160; (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; data.secondaryNominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; data.secondaryNominalVoltageUnit =</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; data.resistance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; data.resistanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160; data.indReactance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; data.indReactanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; data.connection = (TransformerConnection)GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160; data.turnsRatio = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;TurnsRatio&quot;</span>);</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; data.phaseShift = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;PhaseShift&quot;</span>);</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; data.useTransformerPower = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseTransfomerPower&quot;</span>);</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160;</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; data.zeroIndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; data.primaryGrndResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PrimaryGrndResistance&quot;</span>);</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; data.primaryGrndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PrimaryGrndReactance&quot;</span>);</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; data.secondaryGrndResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;SecondaryGrndResistance&quot;</span>);</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; data.secondaryGrndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;SecondaryGrndReactance&quot;</span>);</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160;</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160; }</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; transformer-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160;</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160;</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) transformer-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160;</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; elementList.push_back(transformer);</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160; transformerList.push_back(transformer);</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; transfomerNode = transfomerNode-&gt;next_sibling(<span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; m_workspace-&gt;SetElementList(elementList);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160;</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; <span class="comment">//{ Text</span></div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; <span class="keyword">auto</span> textListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TextList&quot;</span>);</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; <span class="keywordflow">if</span>(!textListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; <span class="keyword">auto</span> textNode = textListNode-&gt;first_node(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; <span class="keywordflow">while</span>(textNode) {</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160; <span class="keyword">auto</span> cadPropNode = textNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160;</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160; <a class="code" href="class_text.html">Text</a>* text = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160;</div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; text-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; text-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160;</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keyword">auto</span> textProperties = textNode-&gt;first_node(<span class="stringliteral">&quot;TextProperties&quot;</span>);</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <span class="keywordflow">if</span>(!textProperties) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160; text-&gt;SetElementType((ElementType)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;ElementType&quot;</span>));</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; text-&gt;SetDataType((DataType)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DataType&quot;</span>));</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; text-&gt;SetUnit((<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DataUnit&quot;</span>));</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; text-&gt;SetDirection(GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;Direction&quot;</span>));</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; text-&gt;SetDecimalPlaces(GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DecimalPlaces&quot;</span>));</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160;</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; text-&gt;SetElementNumber(GetNodeValueInt(textProperties, <span class="stringliteral">&quot;ElementNumber&quot;</span>));</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keywordflow">switch</span>(text-&gt;GetElementType()) {</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160; <span class="keywordflow">case</span> TYPE_NONE:</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = busList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; text-&gt;SetElement(bus);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = capacitorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160; text-&gt;SetElement(capacitor);</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = indMotorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; text-&gt;SetElement(indMotor);</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = inductorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; text-&gt;SetElement(inductor);</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <a class="code" href="class_line.html">Line</a>* line = lineList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; text-&gt;SetElement(line);</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <a class="code" href="class_load.html">Load</a>* load = loadList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; text-&gt;SetElement(load);</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = syncGeneratorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; text-&gt;SetElement(syncGenerator);</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = syncMotorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; text-&gt;SetElement(syncMotor);</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = transformerList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; text-&gt;SetElement(transformer);</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; }</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160;</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; <span class="keywordtype">int</span> numRot = angle / text-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; }</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) text-&gt;<a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(clockwise);</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160;</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; textList.push_back(text);</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; textNode = textNode-&gt;next_sibling(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160;</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; m_workspace-&gt;SetTextList(textList);</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160;}</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160;</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControl(wxFileName path)</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160;{</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="comment">// Same process present in SaveProject():</span></div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; std::ofstream writeProjectsFile(path.GetFullPath());</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; writeProjectsFile.close();</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160;</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160;</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; rapidxml::xml_node&lt;&gt;* decl = doc.allocate_node(rapidxml::node_declaration);</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; rapidxml::xml_attribute&lt;&gt;* ver = doc.allocate_attribute(<span class="stringliteral">&quot;version&quot;</span>, <span class="stringliteral">&quot;1.0&quot;</span>);</div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160; rapidxml::xml_attribute&lt;&gt;* encoding = doc.allocate_attribute(<span class="stringliteral">&quot;encoding&quot;</span>, <span class="stringliteral">&quot;utf-8&quot;</span>);</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; decl-&gt;append_attribute(ver);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; decl-&gt;append_attribute(encoding);</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160; doc.append_node(decl);</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160; rapidxml::xml_node&lt;&gt;* rootNode = doc.allocate_node(rapidxml::node_element, <span class="stringliteral">&quot;Control&quot;</span>);</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160; doc.append_node(rootNode);</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160;</div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; rapidxml::xml_node&lt;&gt;* projectNameNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; SetNodeValue(doc, projectNameNode, path.GetName());</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; <span class="keyword">auto</span> elementsNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;ControlElements&quot;</span>);</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; SaveControlElements(doc, elementsNode);</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; std::ofstream writeXML(path.GetFullPath());</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160; writeXML &lt;&lt; doc;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; writeXML.close();</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160;}</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160;</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControl(wxFileName path,</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; std::vector&lt;ControlElement*&gt;&amp; ctrlElementList,</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; ctrlConnectionList)</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;{</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160;</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160; <span class="keyword">auto</span> projectNode = doc.first_node(<span class="stringliteral">&quot;Control&quot;</span>);</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; <span class="keywordflow">if</span>(!projectNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; <span class="comment">// auto nameNode = projectNode-&gt;first_node(&quot;Name&quot;);</span></div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; <span class="comment">// if(!nameNode) return false;</span></div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; <span class="comment">// m_controlEditor-&gt;SetName(nameNode-&gt;value());</span></div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160;</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160; <span class="comment">// Open elements</span></div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160; <span class="keyword">auto</span> elementsNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;ControlElements&quot;</span>);</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160; <span class="keywordflow">if</span>(!elementsNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160;</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; <span class="comment">// auto elementsNode = AppendNode(doc, rootNode, &quot;ControlElements&quot;);</span></div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlElementContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, elementsNode, ctrlElementContainer)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; ctrlElementList = ctrlElementContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160; ctrlConnectionList = ctrlElementContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;}</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160;</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControlElements(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; rapidxml::xml_node&lt;&gt;* elementsNode,</div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer)</div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160;{</div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160; <span class="keywordflow">if</span>(!ctrlContainer) {</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; ctrlContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; ctrlContainer-&gt;FillContainer(m_controlEditor);</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; }</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="comment">//{ Constant</span></div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; <span class="keyword">auto</span> constsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ConstantList&quot;</span>);</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keyword">auto</span> constList = ctrlContainer-&gt;GetConstantList();</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = constList.begin(), itEnd = constList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = *it;</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <span class="keyword">auto</span> constNode = AppendNode(doc, constsNode, <span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160; SetNodeAttribute(doc, constNode, <span class="stringliteral">&quot;ID&quot;</span>, constant-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, constNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; SetNodeValue(doc, posX, constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; SetNodeValue(doc, posY, constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; SetNodeValue(doc, width, constant-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; SetNodeValue(doc, height, constant-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; SetNodeValue(doc, angle, constant-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160;</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, constNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; SaveControlNodes(doc, nodeList, constant-&gt;GetNodeList());</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160;</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, constNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; SetNodeValue(doc, value, constant-&gt;GetValue());</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160;</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; <span class="comment">//{ Exponential</span></div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; <span class="keyword">auto</span> expsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ExponentialList&quot;</span>);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; <span class="keyword">auto</span> expList = ctrlContainer-&gt;GetExponentialList();</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = expList.begin(), itEnd = expList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exponential = *it;</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; <span class="keyword">auto</span> expNode = AppendNode(doc, expsNode, <span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; SetNodeAttribute(doc, expNode, <span class="stringliteral">&quot;ID&quot;</span>, exponential-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, expNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; SetNodeValue(doc, posX, exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; SetNodeValue(doc, posY, exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; SetNodeValue(doc, width, exponential-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; SetNodeValue(doc, height, exponential-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; SetNodeValue(doc, angle, exponential-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160;</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, expNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; SaveControlNodes(doc, nodeList, exponential-&gt;GetNodeList());</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160;</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; exponential-&gt;GetValues(a, b);</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, expNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; <span class="keyword">auto</span> aValue = AppendNode(doc, value, <span class="stringliteral">&quot;A&quot;</span>);</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; SetNodeValue(doc, aValue, a);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="keyword">auto</span> bValue = AppendNode(doc, value, <span class="stringliteral">&quot;B&quot;</span>);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; SetNodeValue(doc, bValue, b);</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160;</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; <span class="comment">//{ Gain</span></div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; <span class="keyword">auto</span> gainsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;GainList&quot;</span>);</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160; <span class="keyword">auto</span> gainList = ctrlContainer-&gt;GetGainList();</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = gainList.begin(), itEnd = gainList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = *it;</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; <span class="keyword">auto</span> gainNode = AppendNode(doc, gainsNode, <span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160; SetNodeAttribute(doc, gainNode, <span class="stringliteral">&quot;ID&quot;</span>, gain-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, gainNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; SetNodeValue(doc, posX, gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; SetNodeValue(doc, posY, gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; SetNodeValue(doc, width, gain-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; SetNodeValue(doc, height, gain-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; SetNodeValue(doc, angle, gain-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160;</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, gainNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; SaveControlNodes(doc, nodeList, gain-&gt;GetNodeList());</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160;</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, gainNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; SetNodeValue(doc, value, gain-&gt;GetValue());</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160;</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; <span class="comment">//{ IO</span></div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <span class="keyword">auto</span> iosNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;IOList&quot;</span>);</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; <span class="keyword">auto</span> ioList = ctrlContainer-&gt;GetIOControlList();</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = ioList.begin(), itEnd = ioList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = *it;</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; <span class="keyword">auto</span> ioNode = AppendNode(doc, iosNode, <span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; SetNodeAttribute(doc, ioNode, <span class="stringliteral">&quot;ID&quot;</span>, io-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, ioNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; SetNodeValue(doc, posX, io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; SetNodeValue(doc, posY, io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; SetNodeValue(doc, width, io-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; SetNodeValue(doc, height, io-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; SetNodeValue(doc, angle, io-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160;</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, ioNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; SaveControlNodes(doc, nodeList, io-&gt;GetNodeList());</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160;</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, ioNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; SetNodeValue(doc, value, io-&gt;GetValue());</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keyword">auto</span> ioFlags = AppendNode(doc, ioNode, <span class="stringliteral">&quot;IOFlags&quot;</span>);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; SetNodeValue(doc, ioFlags, io-&gt;GetIOFlags());</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160;</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; <span class="comment">//{ Limiter</span></div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; <span class="keyword">auto</span> limitersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LimiterList&quot;</span>);</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; <span class="keyword">auto</span> limiterList = ctrlContainer-&gt;GetLimiterList();</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = limiterList.begin(), itEnd = limiterList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = *it;</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160; <span class="keyword">auto</span> limiterNode = AppendNode(doc, limitersNode, <span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; SetNodeAttribute(doc, limiterNode, <span class="stringliteral">&quot;ID&quot;</span>, limiter-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; SetNodeValue(doc, posX, limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; SetNodeValue(doc, posY, limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; SetNodeValue(doc, width, limiter-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; SetNodeValue(doc, height, limiter-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; SetNodeValue(doc, angle, limiter-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160;</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; SaveControlNodes(doc, nodeList, limiter-&gt;GetNodeList());</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160;</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="keyword">auto</span> upLimit = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; SetNodeValue(doc, upLimit, limiter-&gt;GetUpLimit());</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; <span class="keyword">auto</span> lowLimit = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; SetNodeValue(doc, lowLimit, limiter-&gt;GetLowLimit());</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160;</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; <span class="comment">//{ Multiplier</span></div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keyword">auto</span> multipliersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;MultiplierList&quot;</span>);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; <span class="keyword">auto</span> multiplierList = ctrlContainer-&gt;GetMultiplierList();</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = multiplierList.begin(), itEnd = multiplierList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = *it;</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160; <span class="keyword">auto</span> multiplierNode = AppendNode(doc, multipliersNode, <span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; SetNodeAttribute(doc, multiplierNode, <span class="stringliteral">&quot;ID&quot;</span>, multiplier-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, multiplierNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; SetNodeValue(doc, posX, multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; SetNodeValue(doc, posY, multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; SetNodeValue(doc, width, multiplier-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; SetNodeValue(doc, height, multiplier-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; SetNodeValue(doc, angle, multiplier-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160;</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, multiplierNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; SaveControlNodes(doc, nodeList, multiplier-&gt;GetNodeList());</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160;</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="comment">//{ Rate limiter</span></div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; <span class="keyword">auto</span> rateLimitersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;RateLimiterList&quot;</span>);</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; <span class="keyword">auto</span> rateLimiterList = ctrlContainer-&gt;GetRateLimiterList();</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = rateLimiterList.begin(), itEnd = rateLimiterList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = *it;</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keyword">auto</span> rateLimiterNode = AppendNode(doc, rateLimitersNode, <span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; SetNodeAttribute(doc, rateLimiterNode, <span class="stringliteral">&quot;ID&quot;</span>, rateLimiter-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; SetNodeValue(doc, posX, rateLimiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; SetNodeValue(doc, posY, rateLimiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; SetNodeValue(doc, width, rateLimiter-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; SetNodeValue(doc, height, rateLimiter-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; SetNodeValue(doc, angle, rateLimiter-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160;</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; SaveControlNodes(doc, nodeList, rateLimiter-&gt;GetNodeList());</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160;</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <span class="keyword">auto</span> upLimit = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; SetNodeValue(doc, upLimit, rateLimiter-&gt;GetUpLimit());</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; <span class="keyword">auto</span> lowLimit = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; SetNodeValue(doc, lowLimit, rateLimiter-&gt;GetLowLimit());</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160;</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; <span class="comment">//{ Sum</span></div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; <span class="keyword">auto</span> sumsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SumList&quot;</span>);</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; <span class="keyword">auto</span> sumList = ctrlContainer-&gt;GetSumList();</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = sumList.begin(), itEnd = sumList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = *it;</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160; <span class="keyword">auto</span> sumNode = AppendNode(doc, sumsNode, <span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; SetNodeAttribute(doc, sumNode, <span class="stringliteral">&quot;ID&quot;</span>, sum-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, sumNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; SetNodeValue(doc, posX, sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; SetNodeValue(doc, posY, sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; SetNodeValue(doc, width, sum-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; SetNodeValue(doc, height, sum-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; SetNodeValue(doc, angle, sum-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160;</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, sumNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; SaveControlNodes(doc, nodeList, sum-&gt;GetNodeList());</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160;</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keyword">auto</span> signsNode = AppendNode(doc, sumNode, <span class="stringliteral">&quot;Signs&quot;</span>);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; <span class="keyword">auto</span> signs = sum-&gt;GetSignalList();</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)signs.size(); ++i) {</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, signsNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; SetNodeValue(doc, value, static_cast&lt;int&gt;(signs[i]));</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; }</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160;</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160;</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; <span class="comment">//{ Transfer function</span></div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; <span class="keyword">auto</span> tfsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TransferFunctionList&quot;</span>);</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160; <span class="keyword">auto</span> tfList = ctrlContainer-&gt;GetTFList();</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = tfList.begin(), itEnd = tfList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = *it;</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; <span class="keyword">auto</span> tfNode = AppendNode(doc, tfsNode, <span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160; SetNodeAttribute(doc, tfNode, <span class="stringliteral">&quot;ID&quot;</span>, tf-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, tfNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; SetNodeValue(doc, posX, tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; SetNodeValue(doc, posY, tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; SetNodeValue(doc, width, tf-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; SetNodeValue(doc, height, tf-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; SetNodeValue(doc, angle, tf-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160;</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, tfNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; SaveControlNodes(doc, nodeList, tf-&gt;GetNodeList());</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160;</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keyword">auto</span> numeratorNode = AppendNode(doc, tfNode, <span class="stringliteral">&quot;Numerator&quot;</span>);</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; <span class="keyword">auto</span> numerator = tf-&gt;GetNumerator();</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)numerator.size(); ++i) {</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, numeratorNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; SetNodeValue(doc, value, numerator[i]);</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; }</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; <span class="keyword">auto</span> denominatorNode = AppendNode(doc, tfNode, <span class="stringliteral">&quot;Denominator&quot;</span>);</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">auto</span> denominator = tf-&gt;GetDenominator();</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)denominator.size(); ++i) {</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, denominatorNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; SetNodeValue(doc, value, denominator[i]);</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160; }</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160;</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; <span class="comment">//{ Connection line</span></div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160; <span class="keyword">auto</span> cLinesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ConnectionList&quot;</span>);</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; <span class="keyword">auto</span> connLineList = ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connLineList.begin(), itEnd = connLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keyword">auto</span> cLineNode = AppendNode(doc, cLinesNode, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; SetNodeAttribute(doc, cLineNode, <span class="stringliteral">&quot;ID&quot;</span>, cLine-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160;</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; <span class="comment">// CAD properties</span></div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keyword">auto</span> offset = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Offset&quot;</span>);</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; SetNodeValue(doc, offset, cLine-&gt;GetOffset());</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160;</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; <span class="comment">// Parent list</span></div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; <span class="keyword">auto</span> parentsNode = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;ParentList&quot;</span>);</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160; <span class="keywordtype">int</span> nodeIndex = 0;</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itPEnd = parentList.end(); itP != itPEnd; ++itP) {</div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itP;</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keyword">auto</span> parentNode = AppendNode(doc, parentsNode, <span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keyword">auto</span> elementID = AppendNode(doc, parentNode, <span class="stringliteral">&quot;ElementID&quot;</span>);</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; SetNodeValue(doc, elementID, parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; <span class="keyword">auto</span> nodeID = AppendNode(doc, parentNode, <span class="stringliteral">&quot;NodeID&quot;</span>);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; SetNodeValue(doc, nodeID, cLine-&gt;GetNodeList()[nodeIndex]-&gt;GetID());</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160; nodeIndex++;</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; }</div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160;</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; <span class="keyword">auto</span> parentLine = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;ParentLine&quot;</span>);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetParentLine()) {</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* parent = cLine-&gt;GetParentLine();</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; SetNodeAttribute(doc, parentLine, <span class="stringliteral">&quot;ID&quot;</span>, parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; SetNodeAttribute(doc, parentLine, <span class="stringliteral">&quot;ID&quot;</span>, -1);</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; }</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160;}</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160;</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControlElements(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; rapidxml::xml_node&lt;&gt;* elementsNode,</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer)</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160;{</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; std::vector&lt;ControlElement*&gt; elementList;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionList;</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; <span class="comment">//{ Constant</span></div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; <span class="keyword">auto</span> constListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ConstantList&quot;</span>);</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <span class="keywordflow">if</span>(!constListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; <span class="keyword">auto</span> constNode = constListNode-&gt;first_node(<span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; <span class="keywordflow">while</span>(constNode) {</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(constNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160;</div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160; <span class="keyword">auto</span> cadPropNode = constNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160;</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; <span class="keywordtype">double</span> value = GetNodeValueDouble(constNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160;</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; constant-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; constant-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; constant-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160; constant-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; constant-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160; constant-&gt;SetValue(value);</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160;</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(constNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160;</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; constant-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; constant-&gt;UpdatePoints();</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; elementList.push_back(constant);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; constNode = constNode-&gt;next_sibling(<span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160;</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; <span class="comment">//{ Exponential</span></div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; <span class="keyword">auto</span> expListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ExponentialList&quot;</span>);</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; <span class="keywordflow">if</span>(!expListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; <span class="keyword">auto</span> expNode = expListNode-&gt;first_node(<span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160; <span class="keywordflow">while</span>(expNode) {</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(expNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exponential = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160;</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="keyword">auto</span> cadPropNode = expNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160;</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160;</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; <span class="keyword">auto</span> value = expNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="keywordtype">double</span> a = GetNodeValueDouble(value, <span class="stringliteral">&quot;A&quot;</span>);</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="keywordtype">double</span> b = GetNodeValueDouble(value, <span class="stringliteral">&quot;B&quot;</span>);</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160;</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; exponential-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160; exponential-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160;</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; exponential-&gt;SetValues(a, b);</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160;</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(expNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160;</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; exponential-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160; exponential-&gt;UpdatePoints();</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; elementList.push_back(exponential);</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160;</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; expNode = expNode-&gt;next_sibling(<span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160;</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160; <span class="comment">//{ Gain</span></div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160; <span class="keyword">auto</span> gainListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;GainList&quot;</span>);</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; <span class="keywordflow">if</span>(!gainListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; <span class="keyword">auto</span> gainNode = gainListNode-&gt;first_node(<span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160; <span class="keywordflow">while</span>(gainNode) {</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(gainNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160;</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; <span class="keyword">auto</span> cadPropNode = gainNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160;</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160;</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; <span class="keywordtype">double</span> value = GetNodeValueDouble(gainNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160;</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; gain-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160; gain-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160; gain-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160; gain-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160; gain-&gt;SetValue(value);</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; gain-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(gainNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160;</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; gain-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; gain-&gt;UpdatePoints();</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; elementList.push_back(gain);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160;</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160; gainNode = gainNode-&gt;next_sibling(<span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; }</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160;</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; <span class="comment">//{ IO</span></div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; <span class="keyword">auto</span> ioListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;IOList&quot;</span>);</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; <span class="keywordflow">if</span>(!ioListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; <span class="keyword">auto</span> ioNode = ioListNode-&gt;first_node(<span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; <span class="keywordflow">while</span>(ioNode) {</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(ioNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="keyword">auto</span> cadPropNode = ioNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160;</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160;</div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(ioNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160;</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; IOControl::IOFlags value = <span class="keyword">static_cast&lt;</span>IOControl::IOFlags<span class="keyword">&gt;</span>(GetNodeValueInt(ioNode, <span class="stringliteral">&quot;Value&quot;</span>));</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; <span class="keywordtype">int</span> ioFlags = GetNodeValueInt(ioNode, <span class="stringliteral">&quot;IOFlags&quot;</span>);</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(ioFlags, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160;</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160; io-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; io-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; io-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; io-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; io-&gt;SetValue(value);</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; io-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; io-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; io-&gt;UpdatePoints();</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160; elementList.push_back(io);</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160;</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; ioNode = ioNode-&gt;next_sibling(<span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160; }</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160;</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160; <span class="comment">//{ Limiter</span></div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <span class="keyword">auto</span> limiterListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LimiterList&quot;</span>);</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160; <span class="keywordflow">if</span>(!limiterListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; <span class="keyword">auto</span> limiterNode = limiterListNode-&gt;first_node(<span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; <span class="keywordflow">while</span>(limiterNode) {</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(limiterNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160;</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; <span class="keyword">auto</span> cadPropNode = limiterNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160;</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160;</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="keywordtype">double</span> upLimit = GetNodeValueDouble(limiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keywordtype">double</span> lowLimit = GetNodeValueDouble(limiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160;</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(limiterNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160; limiter-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160;</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; limiter-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; limiter-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; limiter-&gt;UpdatePoints();</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160; elementList.push_back(limiter);</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160;</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; limiterNode = limiterNode-&gt;next_sibling(<span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160; }</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160;</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160; <span class="comment">//{ Multiplier</span></div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; <span class="keyword">auto</span> multiplierListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;MultiplierList&quot;</span>);</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; <span class="keywordflow">if</span>(!multiplierListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160; <span class="keyword">auto</span> multiplierNode = multiplierListNode-&gt;first_node(<span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; <span class="keywordflow">while</span>(multiplierNode) {</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(multiplierNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; <span class="keyword">auto</span> cadPropNode = multiplierNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160;</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160;</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(multiplierNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160;</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160;</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160; multiplier-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; multiplier-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; multiplier-&gt;UpdatePoints();</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; elementList.push_back(multiplier);</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160;</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160; multiplierNode = multiplierNode-&gt;next_sibling(<span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160; }</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; <span class="comment">//{ Rate limiter</span></div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160; <span class="keyword">auto</span> rateLimiterListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;RateLimiterList&quot;</span>);</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160; <span class="keywordflow">if</span>(!rateLimiterListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; <span class="keyword">auto</span> rateLimiterNode = rateLimiterListNode-&gt;first_node(<span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; <span class="keywordflow">while</span>(rateLimiterNode) {</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(rateLimiterNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; <span class="keyword">auto</span> cadPropNode = rateLimiterNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160;</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160;</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160; <span class="keywordtype">double</span> upLimit = GetNodeValueDouble(rateLimiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160; <span class="keywordtype">double</span> lowLimit = GetNodeValueDouble(rateLimiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160;</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(rateLimiterNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160; limiter-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160; limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160;</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; limiter-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; limiter-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160; limiter-&gt;UpdatePoints();</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160; elementList.push_back(limiter);</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160;</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; rateLimiterNode = rateLimiterNode-&gt;next_sibling(<span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160; }</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160;</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160; <span class="comment">//{ Sum</span></div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; <span class="keyword">auto</span> sumListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SumList&quot;</span>);</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; <span class="keywordflow">if</span>(!sumListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; <span class="keyword">auto</span> sumNode = sumListNode-&gt;first_node(<span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; <span class="keywordflow">while</span>(sumNode) {</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(sumNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160; <span class="keyword">auto</span> cadPropNode = sumNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160;</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160;</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160; std::vector&lt;Sum::Signal&gt; signs;</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160; <span class="keyword">auto</span> signsNode = sumNode-&gt;first_node(<span class="stringliteral">&quot;Signs&quot;</span>);</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; <span class="keyword">auto</span> sign = signsNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; <span class="keywordflow">while</span>(sign) {</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; <span class="keywordtype">long</span> value;</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160; wxString(sign-&gt;value()).ToCLong(&amp;value);</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; signs.push_back(static_cast&lt;Sum::Signal&gt;(value));</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; sign = sign-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160; }</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; sum-&gt;SetSignalList(signs);</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160;</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(sumNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160;</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; sum-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; sum-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160; sum-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160; sum-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160;</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160; sum-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; sum-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; sum-&gt;UpdatePoints();</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; elementList.push_back(sum);</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160;</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; sumNode = sumNode-&gt;next_sibling(<span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160; }</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160; <span class="comment">//{ Transfer function</span></div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; <span class="keyword">auto</span> tfListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TransferFunctionList&quot;</span>);</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160; <span class="keywordflow">if</span>(!tfListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160; <span class="keyword">auto</span> tfNode = tfListNode-&gt;first_node(<span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160; <span class="keywordflow">while</span>(tfNode) {</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(tfNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; <span class="keyword">auto</span> cadPropNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160;</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160;</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; std::vector&lt;double&gt; numerator, denominator;</div><div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160; <span class="keyword">auto</span> numeratorNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;Numerator&quot;</span>);</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160; <span class="keyword">auto</span> nValue = numeratorNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; <span class="keywordflow">while</span>(nValue) {</div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160; wxString(nValue-&gt;value()).ToCDouble(&amp;value);</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160; numerator.push_back(value);</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; nValue = nValue-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160; }</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="keyword">auto</span> denominatorNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;Denominator&quot;</span>);</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keyword">auto</span> dValue = denominatorNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; <span class="keywordflow">while</span>(dValue) {</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; wxString(dValue-&gt;value()).ToCDouble(&amp;value);</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; denominator.push_back(value);</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; dValue = dValue-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160; }</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160;</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(tfNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160;</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; tf-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; tf-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; tf-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; tf-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160;</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; tf-&gt;SetNumerator(numerator);</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160; tf-&gt;SetDenominator(denominator);</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160;</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; tf-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160; tf-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160;</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160; tf-&gt;UpdateTFText();</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160;</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160; elementList.push_back(tf);</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160;</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; tfNode = tfNode-&gt;next_sibling(<span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160; }</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160;</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; <span class="comment">// Connection line</span></div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160; <span class="keyword">auto</span> connectionListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ConnectionList&quot;</span>);</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160; <span class="keywordflow">if</span>(!connectionListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; <span class="keyword">auto</span> connNode = connectionListNode-&gt;first_node(<span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160; <span class="keywordflow">while</span>(connNode) {</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = NULL;</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(connNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160;</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160; <span class="keyword">auto</span> cadPropNode = connNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160; <span class="keywordtype">double</span> offset = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Offset&quot;</span>);</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160;</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160; <span class="keyword">auto</span> parentList = connNode-&gt;first_node(<span class="stringliteral">&quot;ParentList&quot;</span>);</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160; <span class="keywordflow">if</span>(!parentList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160;</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; <span class="keyword">auto</span> parentNode = parentList-&gt;first_node(<span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160; <span class="keywordtype">bool</span> firstNode = <span class="keyword">true</span>;</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160; <span class="keywordtype">int</span> elementID = GetNodeValueInt(parentNode, <span class="stringliteral">&quot;ElementID&quot;</span>);</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; <span class="keywordtype">int</span> nodeID = GetNodeValueInt(parentNode, <span class="stringliteral">&quot;NodeID&quot;</span>);</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160;</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = GetControlElementFromID(elementList, elementID);</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160; <a class="code" href="class_node.html">Node</a>* node = element-&gt;GetNodeList()[nodeID];</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160;</div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160; <span class="keywordflow">if</span>(firstNode) cLine = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>(node, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(cLine);</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160; <span class="keywordflow">if</span>(!firstNode) cLine-&gt;AppendNode(node, element);</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;</div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; <span class="keywordflow">if</span>(firstNode) firstNode = <span class="keyword">false</span>;</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160; }</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160;</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160; <span class="keyword">auto</span> parentLine = connNode-&gt;first_node(<span class="stringliteral">&quot;ParentLine&quot;</span>);</div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160; <span class="keywordflow">if</span>(!parentLine) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160; <span class="keywordtype">int</span> parentLineID = GetAttributeValueInt(parentLine, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; <span class="keywordflow">if</span>(parentLineID != -1) {</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionList.begin(), itEnd = connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* parent = *it;</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == parentLineID) {</div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160; cLine-&gt;SetParentLine(parent);</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(cLine);</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160; }</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160; }</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160; }</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160; cLine-&gt;SetOffset(offset);</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; cLine-&gt;UpdatePoints();</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; connectionList.push_back(cLine);</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160; connNode = connNode-&gt;next_sibling(<span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; }</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; ctrlContainer-&gt;FillContainer(elementList, connectionList);</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160;}</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160;</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControlNodes(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; rapidxml::xml_node&lt;&gt;* nodesN,</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; std::vector&lt;Node*&gt; nodeList)</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160;{</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = nodeList.begin(), itEnd = nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160; node-&gt;SetID(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; <span class="keyword">auto</span> nodeN = AppendNode(doc, nodesN, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160; SetNodeAttribute(doc, nodeN, <span class="stringliteral">&quot;ID&quot;</span>, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; <span class="keyword">auto</span> nodePosition = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; <span class="keyword">auto</span> posNodeX = AppendNode(doc, nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; SetNodeValue(doc, posNodeX, node-&gt;GetPosition().m_x);</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; <span class="keyword">auto</span> posNodeY = AppendNode(doc, nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; SetNodeValue(doc, posNodeY, node-&gt;GetPosition().m_y);</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160; SetNodeValue(doc, angle, node-&gt;GetAngle());</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160; <span class="keyword">auto</span> nodeType = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160; SetNodeValue(doc, nodeType, node-&gt;GetNodeType());</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160; }</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160;}</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160;</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160;<a class="code" href="class_control_element.html">ControlElement</a>* FileHanding::GetControlElementFromID(std::vector&lt;ControlElement*&gt; elementList, <span class="keywordtype">int</span> <span class="keywordtype">id</span>)</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160;{</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == id) <span class="keywordflow">return</span> element;</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160; }</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160;}</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160;</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControlNodeList(rapidxml::xml_node&lt;&gt;* elementNode, std::vector&lt;Node*&gt;&amp; nodeVector)</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160;{</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160; <span class="keyword">auto</span> nodeList = elementNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; <span class="keywordflow">if</span>(!nodeList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160; <span class="keyword">auto</span> nodeN = nodeList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160; <span class="keywordflow">while</span>(nodeN) {</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160; <span class="keyword">auto</span> nodePosition = nodeN-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160; <span class="keywordtype">double</span> nodeAngle = GetNodeValueDouble(nodeN, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; Node::NodeType nodeType = (Node::NodeType)GetNodeValueInt(nodeN, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; <a class="code" href="class_node.html">Node</a>* node = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble(nodePosX, nodePosY), nodeType, 2.0);</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; node-&gt;SetAngle(nodeAngle);</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160; nodeVector.push_back(node);</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; nodeN = nodeN-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160; }</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;}</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160;rapidxml::xml_node&lt;&gt;* FileHanding::AppendNode(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160; rapidxml::xml_node&lt;&gt;* parentNode,</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160; rapidxml::node_type nodeType)</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160;{</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; rapidxml::xml_node&lt;&gt;* node = doc.allocate_node(nodeType, name);</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160; parentNode-&gt;append_node(node);</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160;}</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160;</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, wxString value)</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160;{</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; node-&gt;value(doc.allocate_string(value.mb_str()));</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160;}</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">int</span> value)</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;{</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160; node-&gt;value(doc.allocate_string(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, value).mb_str()));</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160;}</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160;</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">double</span> value)</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;{</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; node-&gt;value(doc.allocate_string(wxString::FromCDouble(value, 13).mb_str()));</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160;}</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160;</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160; wxString value)</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160;{</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160; node-&gt;append_attribute(doc.allocate_attribute(atrName, doc.allocate_string(value.mb_str())));</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;}</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160; <span class="keywordtype">int</span> value)</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;{</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160; node-&gt;append_attribute(</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160; doc.allocate_attribute(atrName, doc.allocate_string(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, value).mb_str())));</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;}</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; <span class="keywordtype">double</span> value)</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;{</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; node-&gt;append_attribute(</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160; doc.allocate_attribute(atrName, doc.allocate_string(wxString::FromCDouble(value, 13).mb_str())));</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;}</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160;<span class="keywordtype">double</span> FileHanding::GetNodeValueDouble(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName)</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160;{</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; <span class="keywordtype">double</span> dValue = 0.0;</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; <span class="keywordflow">if</span>(node) wxString(node-&gt;value()).ToCDouble(&amp;dValue);</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160; }</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160; <span class="keywordflow">return</span> dValue;</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;}</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160;</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160;<span class="keywordtype">int</span> FileHanding::GetNodeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName)</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160;{</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160; <span class="keywordtype">long</span> iValue = -1;</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160; <span class="keywordflow">if</span>(node) wxString(node-&gt;value()).ToCLong(&amp;iValue);</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160; }</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)iValue;</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;}</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160;</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160;<span class="keywordtype">int</span> FileHanding::GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName)</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160;{</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; <span class="keywordtype">long</span> iValue = -1;</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160; <span class="keywordflow">if</span>(node) {</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160; <span class="keyword">auto</span> atr = node-&gt;first_attribute(atrName);</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160; <span class="keywordflow">if</span>(atr) wxString(atr-&gt;value()).ToCLong(&amp;iValue);</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160; }</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; }</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)iValue;</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160;}</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160;</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160;<span class="keywordtype">int</span> FileHanding::GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName)</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160;{</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160; <span class="keywordtype">long</span> intValue;</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160; <span class="keyword">auto</span> atr = node-&gt;first_attribute(atrName);</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160; <span class="keywordflow">if</span>(!atr) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160; wxString(atr-&gt;value()).ToCLong(&amp;intValue);</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)intValue;</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
-<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00129">Machines.cpp:129</a></div></div>
-<div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00090">Branch.cpp:90</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00168">ElectricCalculation.h:168</a></div></div>
-<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00145">Text.cpp:145</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_element_html_a5da121470a0c26c6b5c57a7c4eeac48b"><div class="ttname"><a href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">Element::SetWidth</a></div><div class="ttdeci">void SetWidth(double width)</div><div class="ttdoc">Set element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00129">Element.h:129</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
-<div class="ttc" id="class_capacitor_html_a2c3f0949c2b791c6a0b69866e9aaff7a"><div class="ttname"><a href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00098">Capacitor.cpp:98</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a906ce639a5d6c5d7946fe8824f1b4f1b"><div class="ttname"><a href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">ElectricCalculation::GetIndMotorList</a></div><div class="ttdeci">const std::vector&lt; IndMotor * &gt; GetIndMotorList() const</div><div class="ttdoc">Get the induction motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00138">ElectricCalculation.h:138</a></div></div>
-<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00218">Element.cpp:218</a></div></div>
-<div class="ttc" id="class_transformer_html_aaa6cc999eb77a94dafaec5debb4db3de"><div class="ttname"><a href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00179">Transformer.cpp:179</a></div></div>
-<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00057">Shunt.cpp:57</a></div></div>
-<div class="ttc" id="class_load_html_a46e9f2e0935ecca77b3a46568404d8e3"><div class="ttname"><a href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00104">Load.cpp:104</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_inductor_html_a801bb445c01059558902c0eca4d38cdd"><div class="ttname"><a href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00096">Inductor.cpp:96</a></div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00100">ControlElement.cpp:100</a></div></div>
-<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00094">Machines.cpp:94</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00128">ElectricCalculation.h:128</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00077">PowerElement.h:77</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_power_element_html_a4dbd26d0a7987c30729efffa860debc4"><div class="ttname"><a href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">PowerElement::SetDynamicEvent</a></div><div class="ttdeci">virtual void SetDynamicEvent(bool dynEvent=true)</div><div class="ttdoc">Set if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00191">PowerElement.h:191</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00158">ElectricCalculation.h:158</a></div></div>
-<div class="ttc" id="class_transformer_html_a67f1e2686932700fe8a83fdc232ea1e8"><div class="ttname"><a href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00195">Transformer.cpp:195</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a8709a452d684d4224d32591c281ae0ed"><div class="ttname"><a href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">ElectricCalculation::GetInductorList</a></div><div class="ttdeci">const std::vector&lt; Inductor * &gt; GetInductorList() const</div><div class="ttdoc">Get the inductors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00143">ElectricCalculation.h:143</a></div></div>
-<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00234">Element.h:234</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_inductor_html_a4e404c6e15f206fe0f5de06fc19dedf5"><div class="ttname"><a href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00007">Inductor.cpp:7</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00076">PowerElement.h:76</a></div></div>
-<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00015">Shunt.cpp:15</a></div></div>
-<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00008">Exponential.h:8</a></div></div>
-<div class="ttc" id="class_element_html_aa5d8558082ce38832af3b8c8ac1cf36f"><div class="ttname"><a href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">Element::SetAngle</a></div><div class="ttdeci">void SetAngle(double angle)</div><div class="ttdoc">Set element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00135">Element.h:135</a></div></div>
-<div class="ttc" id="class_element_html_a23e1fe2745c70cfb43725f608c4bce00"><div class="ttname"><a href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">Element::GetWidth</a></div><div class="ttdeci">double GetWidth() const</div><div class="ttdoc">Get the element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00195">Element.h:195</a></div></div>
-<div class="ttc" id="class_line_html_a26c69f7f703dca718edc28d5093934a3"><div class="ttname"><a href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00119">Line.cpp:119</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_a4ddabc6210146ae1ccae5f6911095bfd"><div class="ttname"><a href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">ElectricCalculation::GetCapacitorList</a></div><div class="ttdeci">const std::vector&lt; Capacitor * &gt; GetCapacitorList() const</div><div class="ttdoc">Get the capacitors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00133">ElectricCalculation.h:133</a></div></div>
-<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00008">Machines.cpp:8</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="class_element_html_a616c73ff20402109ede68579094acc3d"><div class="ttname"><a href="class_element.html#a616c73ff20402109ede68579094acc3d">Element::GetHeight</a></div><div class="ttdeci">double GetHeight() const</div><div class="ttdoc">Get the element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00183">Element.h:183</a></div></div>
-<div class="ttc" id="class_element_html_aff2870f5979a84a30c27917cb33271f9"><div class="ttname"><a href="class_element.html#aff2870f5979a84a30c27917cb33271f9">Element::GetPointList</a></div><div class="ttdeci">virtual std::vector&lt; wxPoint2DDouble &gt; GetPointList() const</div><div class="ttdoc">Get the list of points that connect the element to bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00225">Element.h:225</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aa5e278a1c5ba1b6159c21ae2ff2b23b4"><div class="ttname"><a href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">ElectricCalculation::GetLoadList</a></div><div class="ttdeci">const std::vector&lt; Load * &gt; GetLoadList() const</div><div class="ttdoc">Get the loads of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00153">ElectricCalculation.h:153</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00215">Machines.cpp:215</a></div></div>
-<div class="ttc" id="class_line_html_af9a931bdb7e0693cacae010a19b744e6"><div class="ttname"><a href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00472">Line.cpp:472</a></div></div>
-<div class="ttc" id="class_bus_html_ace039d00c23d36a7c14d7e4155c94791"><div class="ttname"><a href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00167">Bus.cpp:167</a></div></div>
-<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00165">PowerElement.h:165</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00050">Shunt.cpp:50</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1b"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a></div><div class="ttdeci">SwitchingType</div><div class="ttdoc">Type of switching. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00052">PowerElement.h:52</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_transformer_html_aea52a4562ec5b4a79bf82b8ede32ecc6"><div class="ttname"><a href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00022">Transformer.cpp:22</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_ae9b5e9b51615141e88de0a0f99a7741e"><div class="ttname"><a href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">ElectricCalculation::GetSyncMotorList</a></div><div class="ttdeci">const std::vector&lt; SyncMotor * &gt; GetSyncMotorList() const</div><div class="ttdoc">Get the synchronous motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00163">ElectricCalculation.h:163</a></div></div>
-<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00270">Element.h:270</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_transformer_html_a0395a11dc8173e511a0596ac96bf05e5"><div class="ttname"><a href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00249">Transformer.cpp:249</a></div></div>
-<div class="ttc" id="class_load_html_ac9f449be9b919b36924a844324bf37ee"><div class="ttname"><a href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00006">Load.cpp:6</a></div></div>
-<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00148">Machines.cpp:148</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00008">ElectricCalculation.cpp:8</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00011">Constant.h:11</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
-<div class="ttc" id="class_power_element_html_a08d2e84b91ab7443b20a9d7eb6ab441f"><div class="ttname"><a href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">PowerElement::SetSwitchingData</a></div><div class="ttdeci">virtual void SetSwitchingData(SwitchingData data)</div><div class="ttdoc">Set the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00160">PowerElement.h:160</a></div></div>
-<div class="ttc" id="class_element_html_a3687fe2558f6a27ee068fa7244f855eb"><div class="ttname"><a href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">Element::GetRotationAngle</a></div><div class="ttdeci">double GetRotationAngle() const</div><div class="ttdoc">Get the angle of rotation. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00207">Element.h:207</a></div></div>
-<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00148">ElectricCalculation.h:148</a></div></div>
-<div class="ttc" id="class_capacitor_html_ace755e5bc3cc72b491ce31c24c54a5cf"><div class="ttname"><a href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00007">Capacitor.cpp:7</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="class_element_html_a88171a7f1d0d9273f6fd43a4945341ec"><div class="ttname"><a href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">Element::SetHeight</a></div><div class="ttdeci">void SetHeight(double height)</div><div class="ttdoc">Set element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00111">Element.h:111</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_file_handing_8h.html">FileHanding.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;FileHanding::~FileHanding() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;FileHanding::FileHanding(<a class="code" href="class_workspace.html">Workspace</a>* workspace) { m_workspace = workspace; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;FileHanding::FileHanding(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor) { m_controlEditor = controlEditor; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;FileHanding::FileHanding() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveProject(wxFileName path)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// Erase the file (if exists or not) and write the initial data</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; std::ofstream writeProjectsFile(path.GetFullPath());</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; writeProjectsFile.close();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; rapidxml::xml_node&lt;&gt;* decl = doc.allocate_node(rapidxml::node_declaration);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; rapidxml::xml_attribute&lt;&gt;* ver = doc.allocate_attribute(<span class="stringliteral">&quot;version&quot;</span>, <span class="stringliteral">&quot;1.0&quot;</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; rapidxml::xml_attribute&lt;&gt;* encoding = doc.allocate_attribute(<span class="stringliteral">&quot;encoding&quot;</span>, <span class="stringliteral">&quot;utf-8&quot;</span>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; decl-&gt;append_attribute(ver);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; decl-&gt;append_attribute(encoding);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; doc.append_node(decl);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; rapidxml::xml_node&lt;&gt;* rootNode = doc.allocate_node(rapidxml::node_element, <span class="stringliteral">&quot;Project&quot;</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; doc.append_node(rootNode);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; rapidxml::xml_node&lt;&gt;* projectNameNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; SetNodeValue(doc, projectNameNode, path.GetName());</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">auto</span> elementsNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Elements&quot;</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Save all the data</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> allElements;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; allElements.<a class="code" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(m_workspace-&gt;GetElementList());</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">//{ Buses</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">auto</span> busesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;BusList&quot;</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">auto</span> busList = allElements.<a class="code" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)busList.size(); i++) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = busList[i];</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">auto</span> busNode = AppendNode(doc, busesNode, <span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; SetNodeAttribute(doc, busNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, busNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; SetNodeValue(doc, posX, bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; SetNodeValue(doc, posY, bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; SetNodeValue(doc, width, bus-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; SetNodeValue(doc, height, bus-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; SetNodeValue(doc, angle, bus-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, busNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">auto</span> isVoltageControlled = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsVoltageControlled&quot;</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; SetNodeValue(doc, isVoltageControlled, data.isVoltageControlled);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">auto</span> controlledVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; SetNodeValue(doc, controlledVoltage, data.controlledVoltage);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; SetNodeAttribute(doc, controlledVoltage, <span class="stringliteral">&quot;Choice&quot;</span>, data.controlledVoltageUnitChoice);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">auto</span> slackBus = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SlackBus&quot;</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; SetNodeValue(doc, slackBus, data.slackBus);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">auto</span> hasFault = AppendNode(doc, fault, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; SetNodeValue(doc, hasFault, data.hasFault);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">auto</span> faultType = AppendNode(doc, fault, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; SetNodeValue(doc, faultType, data.faultType);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">auto</span> faultLocation = AppendNode(doc, fault, <span class="stringliteral">&quot;Location&quot;</span>);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; SetNodeValue(doc, faultLocation, data.faultLocation);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">auto</span> faultResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; SetNodeValue(doc, faultResistance, data.faultResistance);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">auto</span> faultReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;Reactance&quot;</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; SetNodeValue(doc, faultReactance, data.faultReactance);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">auto</span> stability = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">auto</span> plotBus = AppendNode(doc, stability, <span class="stringliteral">&quot;Plot&quot;</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; SetNodeValue(doc, plotBus, data.plotBus);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">auto</span> stabHasFault = AppendNode(doc, stability, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; SetNodeValue(doc, stabHasFault, data.stabHasFault);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">auto</span> stabFaultTime = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultTime&quot;</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; SetNodeValue(doc, stabFaultTime, data.stabFaultTime);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">auto</span> stabFaultLength = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultLength&quot;</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; SetNodeValue(doc, stabFaultLength, data.stabFaultLength);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">auto</span> stabFaultResistance = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultResistance&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; SetNodeValue(doc, stabFaultResistance, data.stabFaultResistance);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">auto</span> stabFaultReactance = AppendNode(doc, stability, <span class="stringliteral">&quot;FaultReactance&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; SetNodeValue(doc, stabFaultReactance, data.stabFaultReactance);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; data.number = i;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="comment">//{ Capacitor</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">auto</span> capacitorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;CapacitorList&quot;</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">auto</span> capacitorList = allElements.<a class="code" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)capacitorList.size(); i++) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = capacitorList[i];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">auto</span> capacitorNode = AppendNode(doc, capacitorsNode, <span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; SetNodeAttribute(doc, capacitorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, capacitorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; SetNodeValue(doc, posX, capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; SetNodeValue(doc, posY, capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; SetNodeValue(doc, width, capacitor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; SetNodeValue(doc, height, capacitor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; SetNodeValue(doc, angle, capacitor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; SetNodeValue(doc, nodePosX, capacitor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; SetNodeValue(doc, nodePosY, capacitor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, capacitorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; SetNodeValue(doc, isOnline, capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = capacitor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">//{ IndMotor</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">auto</span> indMotorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;IndMotorList&quot;</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keyword">auto</span> indMotorList = allElements.<a class="code" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)indMotorList.size(); i++) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = indMotorList[i];</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keyword">auto</span> indMotorNode = AppendNode(doc, indMotorsNode, <span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; SetNodeAttribute(doc, indMotorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, indMotorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; SetNodeValue(doc, posX, indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; SetNodeValue(doc, posY, indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; SetNodeValue(doc, width, indMotor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; SetNodeValue(doc, height, indMotor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; SetNodeValue(doc, angle, indMotor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; SetNodeValue(doc, nodePosX, indMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; SetNodeValue(doc, nodePosY, indMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, indMotorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; SetNodeValue(doc, isOnline, indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">//{ Inductor</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keyword">auto</span> inductorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;InductorList&quot;</span>);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keyword">auto</span> inductorList = allElements.<a class="code" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)inductorList.size(); i++) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = inductorList[i];</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keyword">auto</span> inductorNode = AppendNode(doc, inductorsNode, <span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; SetNodeAttribute(doc, inductorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, inductorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; SetNodeValue(doc, posX, inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; SetNodeValue(doc, posY, inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; SetNodeValue(doc, width, inductor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; SetNodeValue(doc, height, inductor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; SetNodeValue(doc, angle, inductor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; SetNodeValue(doc, nodePosX, inductor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; SetNodeValue(doc, nodePosY, inductor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, inductorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; SetNodeValue(doc, isOnline, inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = inductor-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; }</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="comment">//{ Line</span></div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keyword">auto</span> linesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LineList&quot;</span>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keyword">auto</span> lineList = allElements.<a class="code" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)lineList.size(); i++) {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <a class="code" href="class_line.html">Line</a>* line = lineList[i];</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keyword">auto</span> lineNode = AppendNode(doc, linesNode, <span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; SetNodeAttribute(doc, lineNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, lineNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keyword">auto</span> ptList = line-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>();</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordtype">int</span> nodeID = 0;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)ptList.size(); j++) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>((j != 1) &amp;&amp; (j != (int)ptList.size() - 2)) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; SetNodeAttribute(doc, nodePos, <span class="stringliteral">&quot;ID&quot;</span>, nodeID);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; SetNodeValue(doc, nodePosX, ptList[j].m_x);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; SetNodeValue(doc, nodePosY, ptList[j].m_y);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; nodeID++;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; }</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keyword">auto</span> parentIDList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, parentIDList, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; SetNodeAttribute(doc, parentID, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, lineNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; SetNodeValue(doc, isOnline, line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keyword">auto</span> resistance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; SetNodeValue(doc, resistance, data.resistance);</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; SetNodeAttribute(doc, resistance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.resistanceUnit);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keyword">auto</span> indReactance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; SetNodeValue(doc, indReactance, data.indReactance);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; SetNodeAttribute(doc, indReactance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.indReactanceUnit);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keyword">auto</span> capSusceptance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; SetNodeValue(doc, capSusceptance, data.capSusceptance);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; SetNodeAttribute(doc, capSusceptance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.capSusceptanceUnit);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keyword">auto</span> lineSize = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;LineSize&quot;</span>);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; SetNodeValue(doc, lineSize, data.lineSize);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keyword">auto</span> useLinePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseLinePower&quot;</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; SetNodeValue(doc, useLinePower, data.useLinePower);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keyword">auto</span> zeroIndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; SetNodeValue(doc, zeroIndReactance, data.zeroIndReactance);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keyword">auto</span> zeroCapSusceptance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroCapSusceptance&quot;</span>);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; SetNodeValue(doc, zeroCapSusceptance, data.zeroCapSusceptance);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = line-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">//{ Load</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keyword">auto</span> loadsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LoadList&quot;</span>);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keyword">auto</span> loadList = allElements.<a class="code" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>();</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)loadList.size(); i++) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="class_load.html">Load</a>* load = loadList[i];</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keyword">auto</span> loadNode = AppendNode(doc, loadsNode, <span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; SetNodeAttribute(doc, loadNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, loadNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; SetNodeValue(doc, posX, load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; SetNodeValue(doc, posY, load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; SetNodeValue(doc, width, load-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; SetNodeValue(doc, height, load-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; SetNodeValue(doc, angle, load-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; SetNodeValue(doc, nodePosX, load-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; SetNodeValue(doc, nodePosY, load-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, loadNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; SetNodeValue(doc, isOnline, load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keyword">auto</span> loadType = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;LoadType&quot;</span>);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; SetNodeValue(doc, loadType, data.loadType);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = load-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="comment">//{ SyncGenerator</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keyword">auto</span> syncGeneratorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SyncGeneratorList&quot;</span>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keyword">auto</span> syncGeneratorList = allElements.<a class="code" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>();</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)syncGeneratorList.size(); i++) {</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = syncGeneratorList[i];</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keyword">auto</span> syncGeneratorNode = AppendNode(doc, syncGeneratorsNode, <span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; SetNodeAttribute(doc, syncGeneratorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, syncGeneratorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; SetNodeValue(doc, posX, syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; SetNodeValue(doc, posY, syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; SetNodeValue(doc, width, syncGenerator-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; SetNodeValue(doc, height, syncGenerator-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; SetNodeValue(doc, angle, syncGenerator-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; SetNodeValue(doc, nodePosX, syncGenerator-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; SetNodeValue(doc, nodePosY, syncGenerator-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, syncGeneratorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; SetNodeValue(doc, isOnline, syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keyword">auto</span> nominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; SetNodeAttribute(doc, nominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalVoltageUnit);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keyword">auto</span> haveMaxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; SetNodeValue(doc, haveMaxReactive, data.haveMaxReactive);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keyword">auto</span> maxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; SetNodeValue(doc, maxReactive, data.maxReactive);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; SetNodeAttribute(doc, maxReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.maxReactiveUnit);</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keyword">auto</span> haveMinReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; SetNodeValue(doc, haveMinReactive, data.haveMinReactive);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keyword">auto</span> minReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; SetNodeValue(doc, minReactive, data.minReactive);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; SetNodeAttribute(doc, minReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.minReactiveUnit);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keyword">auto</span> useMachineBase = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; SetNodeValue(doc, useMachineBase, data.useMachineBase);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keyword">auto</span> positiveResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; SetNodeValue(doc, positiveResistance, data.positiveResistance);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keyword">auto</span> positiveReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; SetNodeValue(doc, positiveReactance, data.positiveReactance);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keyword">auto</span> negativeResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; SetNodeValue(doc, negativeResistance, data.negativeResistance);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keyword">auto</span> negativeReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; SetNodeValue(doc, negativeReactance, data.negativeReactance);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keyword">auto</span> zeroReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; SetNodeValue(doc, zeroReactance, data.zeroReactance);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keyword">auto</span> groundResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; SetNodeValue(doc, groundResistance, data.groundResistance);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keyword">auto</span> groundReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; SetNodeValue(doc, groundReactance, data.groundReactance);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keyword">auto</span> groundNeutral = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; SetNodeValue(doc, groundNeutral, data.groundNeutral);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keyword">auto</span> stability = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keyword">auto</span> plotSyncMachine = AppendNode(doc, stability, <span class="stringliteral">&quot;PlotSyncMachine&quot;</span>);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; SetNodeValue(doc, plotSyncMachine, data.plotSyncMachine);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keyword">auto</span> inertia = AppendNode(doc, stability, <span class="stringliteral">&quot;Inertia&quot;</span>);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; SetNodeValue(doc, inertia, data.inertia);</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keyword">auto</span> damping = AppendNode(doc, stability, <span class="stringliteral">&quot;Damping&quot;</span>);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; SetNodeValue(doc, damping, data.damping);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keyword">auto</span> useAVR = AppendNode(doc, stability, <span class="stringliteral">&quot;UseAVR&quot;</span>);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; SetNodeValue(doc, useAVR, data.useAVR);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keyword">auto</span> useSpeedGovernor = AppendNode(doc, stability, <span class="stringliteral">&quot;UseSpeedGovernor&quot;</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; SetNodeValue(doc, useSpeedGovernor, data.useSpeedGovernor);</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keyword">auto</span> armResistance = AppendNode(doc, stability, <span class="stringliteral">&quot;ArmResistance&quot;</span>);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; SetNodeValue(doc, armResistance, data.armResistance);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keyword">auto</span> potierReactance = AppendNode(doc, stability, <span class="stringliteral">&quot;PotierReactance&quot;</span>);</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; SetNodeValue(doc, potierReactance, data.potierReactance);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keyword">auto</span> satFactor = AppendNode(doc, stability, <span class="stringliteral">&quot;SatFactor&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; SetNodeValue(doc, satFactor, data.satFactor);</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keyword">auto</span> syncXd = AppendNode(doc, stability, <span class="stringliteral">&quot;SyncXd&quot;</span>);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; SetNodeValue(doc, syncXd, data.syncXd);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keyword">auto</span> syncXq = AppendNode(doc, stability, <span class="stringliteral">&quot;SyncXq&quot;</span>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; SetNodeValue(doc, syncXq, data.syncXq);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keyword">auto</span> transXd = AppendNode(doc, stability, <span class="stringliteral">&quot;TransXd&quot;</span>);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; SetNodeValue(doc, transXd, data.transXd);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keyword">auto</span> transXq = AppendNode(doc, stability, <span class="stringliteral">&quot;TransXq&quot;</span>);</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; SetNodeValue(doc, transXq, data.transXq);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keyword">auto</span> transTd0 = AppendNode(doc, stability, <span class="stringliteral">&quot;TransTd0&quot;</span>);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; SetNodeValue(doc, transTd0, data.transTd0);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keyword">auto</span> transTq0 = AppendNode(doc, stability, <span class="stringliteral">&quot;TransTq0&quot;</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; SetNodeValue(doc, transTq0, data.transTq0);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keyword">auto</span> subXd = AppendNode(doc, stability, <span class="stringliteral">&quot;SubXd&quot;</span>);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; SetNodeValue(doc, subXd, data.subXd);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keyword">auto</span> subXq = AppendNode(doc, stability, <span class="stringliteral">&quot;SubXq&quot;</span>);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; SetNodeValue(doc, subXq, data.subXq);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keyword">auto</span> subTd0 = AppendNode(doc, stability, <span class="stringliteral">&quot;SubTd0&quot;</span>);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; SetNodeValue(doc, subTd0, data.subTd0);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keyword">auto</span> subTq0 = AppendNode(doc, stability, <span class="stringliteral">&quot;SubTq0&quot;</span>);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; SetNodeValue(doc, subTq0, data.subTq0);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keyword">auto</span> avr = AppendNode(doc, stability, <span class="stringliteral">&quot;AVR&quot;</span>);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">if</span>(data.avr) SaveControlElements(doc, avr, data.avr);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keyword">auto</span> speedGov = AppendNode(doc, stability, <span class="stringliteral">&quot;SpeedGovernor&quot;</span>);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>(data.speedGov) SaveControlElements(doc, speedGov, data.speedGov);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = syncGenerator-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="comment">//{ SyncMotor</span></div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keyword">auto</span> syncMotorsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SyncMotorList&quot;</span>);</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keyword">auto</span> syncMotorList = allElements.<a class="code" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>();</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)syncMotorList.size(); i++) {</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = syncMotorList[i];</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keyword">auto</span> syncMotorNode = AppendNode(doc, syncMotorsNode, <span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; SetNodeAttribute(doc, syncMotorNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, syncMotorNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; SetNodeValue(doc, posX, syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; SetNodeValue(doc, posY, syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; SetNodeValue(doc, width, syncMotor-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; SetNodeValue(doc, height, syncMotor-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; SetNodeValue(doc, angle, syncMotor-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keyword">auto</span> nodePos = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keyword">auto</span> nodePosX = AppendNode(doc, nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; SetNodeValue(doc, nodePosX, syncMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keyword">auto</span> nodePosY = AppendNode(doc, nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; SetNodeValue(doc, nodePosY, syncMotor-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">if</span>(parent) SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, syncMotorNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; SetNodeValue(doc, isOnline, syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="comment">// auto nominalVoltage = AppendNode(doc, electricalProp, &quot;NominalVoltage&quot;);</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// SetNodeValue(doc, nominalVoltage, data.nominalVoltage);</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="comment">// SetNodeAttribute(doc, nominalVoltage, &quot;UnitID&quot;, data.nominalVoltageUnit);</span></div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keyword">auto</span> activePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; SetNodeValue(doc, activePower, data.activePower);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; SetNodeAttribute(doc, activePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.activePowerUnit);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keyword">auto</span> reactivePower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; SetNodeValue(doc, reactivePower, data.reactivePower);</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; SetNodeAttribute(doc, reactivePower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.reactivePowerUnit);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keyword">auto</span> haveMaxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; SetNodeValue(doc, haveMaxReactive, data.haveMaxReactive);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keyword">auto</span> maxReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; SetNodeValue(doc, maxReactive, data.maxReactive);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; SetNodeAttribute(doc, maxReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.maxReactiveUnit);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keyword">auto</span> haveMinReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; SetNodeValue(doc, haveMinReactive, data.haveMinReactive);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keyword">auto</span> minReactive = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; SetNodeValue(doc, minReactive, data.minReactive);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; SetNodeAttribute(doc, minReactive, <span class="stringliteral">&quot;UnitID&quot;</span>, data.minReactiveUnit);</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keyword">auto</span> useMachineBase = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; SetNodeValue(doc, useMachineBase, data.useMachineBase);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; <span class="keyword">auto</span> positiveResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; SetNodeValue(doc, positiveResistance, data.positiveResistance);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keyword">auto</span> positiveReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; SetNodeValue(doc, positiveReactance, data.positiveReactance);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keyword">auto</span> negativeResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; SetNodeValue(doc, negativeResistance, data.negativeResistance);</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keyword">auto</span> negativeReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; SetNodeValue(doc, negativeReactance, data.negativeReactance);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keyword">auto</span> zeroReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; SetNodeValue(doc, zeroReactance, data.zeroReactance);</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keyword">auto</span> groundResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; SetNodeValue(doc, groundResistance, data.groundResistance);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keyword">auto</span> groundReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; SetNodeValue(doc, groundReactance, data.groundReactance);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keyword">auto</span> groundNeutral = AppendNode(doc, fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; SetNodeValue(doc, groundNeutral, data.groundNeutral);</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; <span class="comment">// To future use...</span></div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="comment">/*auto stability = AppendNode(doc, electricalProp, &quot;Stability&quot;);</span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;<span class="comment"> auto plotSyncMachine = AppendNode(doc, stability, &quot;PlotSyncMotor&quot;);</span></div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;<span class="comment"> SetNodeValue(doc, plotSyncMachine, data.plotSyncMachine);</span></div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="comment"> auto inertia = AppendNode(doc, stability, &quot;Inertia&quot;);</span></div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;<span class="comment"> SetNodeValue(doc, inertia, data.inertia);</span></div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160;<span class="comment"> auto damping = AppendNode(doc, stability, &quot;Damping&quot;);</span></div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160;<span class="comment"> SetNodeValue(doc, damping, data.damping);</span></div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160;<span class="comment"> auto useAVR = AppendNode(doc, stability, &quot;UseAVR&quot;);</span></div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160;<span class="comment"> SetNodeValue(doc, useAVR, data.useAVR);</span></div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160;<span class="comment"> auto armResistance = AppendNode(doc, stability, &quot;ArmResistance&quot;);</span></div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160;<span class="comment"> SetNodeValue(doc, armResistance, data.armResistance);</span></div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160;<span class="comment"> auto potierReactance = AppendNode(doc, stability, &quot;PotierReactance&quot;);</span></div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160;<span class="comment"> SetNodeValue(doc, potierReactance, data.potierReactance);</span></div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160;<span class="comment"> auto satFactor = AppendNode(doc, stability, &quot;SatFactor&quot;);</span></div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160;<span class="comment"> SetNodeValue(doc, satFactor, data.satFactor);</span></div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160;<span class="comment"> auto syncXd = AppendNode(doc, stability, &quot;SyncXd&quot;);</span></div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160;<span class="comment"> SetNodeValue(doc, syncXd, data.syncXd);</span></div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;<span class="comment"> auto syncXq = AppendNode(doc, stability, &quot;SyncXq&quot;);</span></div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;<span class="comment"> SetNodeValue(doc, syncXq, data.syncXq);</span></div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;<span class="comment"> auto transXd = AppendNode(doc, stability, &quot;TransXd&quot;);</span></div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="comment"> SetNodeValue(doc, transXd, data.transXd);</span></div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;<span class="comment"> auto transXq = AppendNode(doc, stability, &quot;TransXq&quot;);</span></div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160;<span class="comment"> SetNodeValue(doc, transXq, data.transXq);</span></div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160;<span class="comment"> auto transTd0 = AppendNode(doc, stability, &quot;TransTd0&quot;);</span></div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160;<span class="comment"> SetNodeValue(doc, transTd0, data.transTd0);</span></div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160;<span class="comment"> auto transTq0 = AppendNode(doc, stability, &quot;TransTq0&quot;);</span></div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;<span class="comment"> SetNodeValue(doc, transTq0, data.transTq0);</span></div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;<span class="comment"> auto subXd = AppendNode(doc, stability, &quot;SubXd&quot;);</span></div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="comment"> SetNodeValue(doc, subXd, data.subXd);</span></div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;<span class="comment"> auto subXq = AppendNode(doc, stability, &quot;SubXq&quot;);</span></div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160;<span class="comment"> SetNodeValue(doc, subXq, data.subXq);</span></div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160;<span class="comment"> auto subTd0 = AppendNode(doc, stability, &quot;SubTd0&quot;);</span></div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160;<span class="comment"> SetNodeValue(doc, subTd0, data.subTd0);</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160;<span class="comment"> auto subTq0 = AppendNode(doc, stability, &quot;SubTq0&quot;);</span></div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;<span class="comment"> SetNodeValue(doc, subTq0, data.subTq0);</span></div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160;<span class="comment"> auto switchingList = AppendNode(doc, electricalProp, &quot;SwitchingList&quot;);</span></div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;<span class="comment"> SwitchingData swData = syncGenerator-&gt;GetSwitchingData();</span></div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;<span class="comment"> for(int j = 0; j &lt; (int)swData.swType.size(); j++) {</span></div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="comment"> auto switching = AppendNode(doc, switchingList, &quot;Switching&quot;);</span></div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;<span class="comment"> SetNodeAttribute(doc, switching, &quot;ID&quot;, j);</span></div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160;<span class="comment"> auto swType = AppendNode(doc, switching, &quot;Type&quot;);</span></div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160;<span class="comment"> SetNodeValue(doc, swType, swData.swType[j]);</span></div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;<span class="comment"> auto swTime = AppendNode(doc, switching, &quot;Time&quot;);</span></div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;<span class="comment"> SetNodeValue(doc, swTime, swData.swTime[j]);</span></div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="comment"> }*/</span></div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="comment">//{ Transfomer</span></div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keyword">auto</span> transformersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TransformerList&quot;</span>);</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keyword">auto</span> transformerList = allElements.<a class="code" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>();</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)transformerList.size(); i++) {</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transfomer = transformerList[i];</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keyword">auto</span> transformerNode = AppendNode(doc, transformersNode, <span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; SetNodeAttribute(doc, transformerNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, transformerNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; SetNodeValue(doc, posX, transfomer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; SetNodeValue(doc, posY, transfomer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; SetNodeValue(doc, width, transfomer-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; SetNodeValue(doc, height, transfomer-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; SetNodeValue(doc, angle, transfomer-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keyword">auto</span> nodePos1 = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; SetNodeAttribute(doc, nodePos1, <span class="stringliteral">&quot;ID&quot;</span>, 0);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; <span class="keyword">auto</span> nodePosX1 = AppendNode(doc, nodePos1, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; SetNodeValue(doc, nodePosX1, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_x);</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keyword">auto</span> nodePosY1 = AppendNode(doc, nodePos1, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; SetNodeValue(doc, nodePosY1, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[0].m_y);</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keyword">auto</span> nodePos2 = AppendNode(doc, nodeList, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; SetNodeAttribute(doc, nodePos2, <span class="stringliteral">&quot;ID&quot;</span>, 1);</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keyword">auto</span> nodePosX2 = AppendNode(doc, nodePos2, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; SetNodeValue(doc, nodePosX2, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>().size() - 1].m_x);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keyword">auto</span> nodePosY2 = AppendNode(doc, nodePos2, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; SetNodeValue(doc, nodePosY2, transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>()[transfomer-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>().size() - 1].m_y);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160;</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keyword">auto</span> parentIDList = AppendNode(doc, cadProp, <span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)transfomer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transfomer-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keyword">auto</span> parentID = AppendNode(doc, parentIDList, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; SetNodeAttribute(doc, parentID, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; SetNodeValue(doc, parentID, parent-&gt;GetElectricalData().number);</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; }</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; }</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transfomer-&gt;GetElectricalData();</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keyword">auto</span> electricalProp = AppendNode(doc, transformerNode, <span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keyword">auto</span> isOnline = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; SetNodeValue(doc, isOnline, transfomer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>());</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keyword">auto</span> name = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; SetNodeValue(doc, name, data.name);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keyword">auto</span> primaryNominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; SetNodeValue(doc, primaryNominalVoltage, data.primaryNominalVoltage);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; SetNodeAttribute(doc, primaryNominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keyword">auto</span> secondaryNominalVoltage = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; SetNodeValue(doc, secondaryNominalVoltage, data.secondaryNominalVoltage);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; SetNodeAttribute(doc, secondaryNominalVoltage, <span class="stringliteral">&quot;UnitID&quot;</span>, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keyword">auto</span> nominalPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; SetNodeValue(doc, nominalPower, data.nominalPower);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; SetNodeAttribute(doc, nominalPower, <span class="stringliteral">&quot;UnitID&quot;</span>, data.nominalPowerUnit);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keyword">auto</span> resistance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; SetNodeValue(doc, resistance, data.resistance);</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; SetNodeAttribute(doc, resistance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.resistanceUnit);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keyword">auto</span> indReactance = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; SetNodeValue(doc, indReactance, data.indReactance);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; SetNodeAttribute(doc, indReactance, <span class="stringliteral">&quot;UnitID&quot;</span>, data.indReactanceUnit);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keyword">auto</span> connection = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; SetNodeValue(doc, connection, data.connection);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keyword">auto</span> turnsRatio = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;TurnsRatio&quot;</span>);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; SetNodeValue(doc, turnsRatio, data.turnsRatio);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keyword">auto</span> phaseShift = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;PhaseShift&quot;</span>);</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; SetNodeValue(doc, phaseShift, data.phaseShift);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">auto</span> useTransformerPower = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;UseTransfomerPower&quot;</span>);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; SetNodeValue(doc, useTransformerPower, data.useTransformerPower);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160;</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keyword">auto</span> fault = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keyword">auto</span> zeroResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; SetNodeValue(doc, zeroResistance, data.zeroResistance);</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keyword">auto</span> zeroIndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; SetNodeValue(doc, zeroIndReactance, data.zeroIndReactance);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keyword">auto</span> primaryGrndResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;PrimaryGrndResistance&quot;</span>);</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; SetNodeValue(doc, primaryGrndResistance, data.primaryGrndResistance);</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keyword">auto</span> primaryGrndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;PrimaryGrndReactance&quot;</span>);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; SetNodeValue(doc, primaryGrndReactance, data.primaryGrndReactance);</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">auto</span> secondaryGrndResistance = AppendNode(doc, fault, <span class="stringliteral">&quot;SecondaryGrndResistance&quot;</span>);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; SetNodeValue(doc, secondaryGrndResistance, data.secondaryGrndResistance);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keyword">auto</span> secondaryGrndReactance = AppendNode(doc, fault, <span class="stringliteral">&quot;SecondaryGrndReactance&quot;</span>);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; SetNodeValue(doc, secondaryGrndReactance, data.secondaryGrndReactance);</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160;</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keyword">auto</span> switchingList = AppendNode(doc, electricalProp, <span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData = transfomer-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); j++) {</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keyword">auto</span> switching = AppendNode(doc, switchingList, <span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; SetNodeAttribute(doc, switching, <span class="stringliteral">&quot;ID&quot;</span>, j);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keyword">auto</span> swType = AppendNode(doc, switching, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; SetNodeValue(doc, swType, swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[j]);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keyword">auto</span> swTime = AppendNode(doc, switching, <span class="stringliteral">&quot;Time&quot;</span>);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; SetNodeValue(doc, swTime, swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[j]);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; }</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="comment">//{ Text</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keyword">auto</span> textsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TextList&quot;</span>);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keyword">auto</span> textList = m_workspace-&gt;GetTextList();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)textList.size(); i++) {</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <a class="code" href="class_text.html">Text</a>* text = textList[i];</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keyword">auto</span> textNode = AppendNode(doc, textsNode, <span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; SetNodeAttribute(doc, textNode, <span class="stringliteral">&quot;ID&quot;</span>, i);</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, textNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; SetNodeValue(doc, posX, text-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; SetNodeValue(doc, posY, text-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; SetNodeValue(doc, width, text-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; SetNodeValue(doc, height, text-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; SetNodeValue(doc, angle, text-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keyword">auto</span> textProperties = AppendNode(doc, textNode, <span class="stringliteral">&quot;TextProperties&quot;</span>);</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keyword">auto</span> elementType = AppendNode(doc, textProperties, <span class="stringliteral">&quot;ElementType&quot;</span>);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; SetNodeValue(doc, elementType, text-&gt;GetElementType());</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keyword">auto</span> elementNumber = AppendNode(doc, textProperties, <span class="stringliteral">&quot;ElementNumber&quot;</span>);</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; SetNodeValue(doc, elementNumber, text-&gt;GetElementNumber());</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keyword">auto</span> dataType = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DataType&quot;</span>);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; SetNodeValue(doc, dataType, text-&gt;GetDataType());</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keyword">auto</span> dataUnit = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DataUnit&quot;</span>);</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; SetNodeValue(doc, dataUnit, text-&gt;GetUnit());</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keyword">auto</span> direction = AppendNode(doc, textProperties, <span class="stringliteral">&quot;Direction&quot;</span>);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; SetNodeValue(doc, direction, text-&gt;GetDirection());</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keyword">auto</span> decimalPlaces = AppendNode(doc, textProperties, <span class="stringliteral">&quot;DecimalPlaces&quot;</span>);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; SetNodeValue(doc, decimalPlaces, text-&gt;GetDecimalPlaces());</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; }</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; std::ofstream writeXML(path.GetFullPath());</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; writeXML &lt;&lt; doc;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; writeXML.close();</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160;}</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenProject(wxFileName path)</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160;{</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <span class="keyword">auto</span> projectNode = doc.first_node(<span class="stringliteral">&quot;Project&quot;</span>);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">if</span>(!projectNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keyword">auto</span> nameNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">if</span>(!nameNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; m_workspace-&gt;SetName(nameNode-&gt;value());</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="comment">// Open elements</span></div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keyword">auto</span> elementsNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;Elements&quot;</span>);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">if</span>(!elementsNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="comment">// Save lists individually to get parents</span></div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; std::vector&lt;Bus*&gt; busList;</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; std::vector&lt;Capacitor*&gt; capacitorList;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; std::vector&lt;IndMotor*&gt; indMotorList;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; std::vector&lt;Inductor*&gt; inductorList;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; std::vector&lt;Line*&gt; lineList;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; std::vector&lt;Load*&gt; loadList;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; std::vector&lt;SyncGenerator*&gt; syncGeneratorList;</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; std::vector&lt;SyncMotor*&gt; syncMotorList;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; std::vector&lt;Transformer*&gt; transformerList;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; std::vector&lt;Text*&gt; textList;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160;</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="comment">//{ Bus</span></div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keyword">auto</span> busListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;BusList&quot;</span>);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">if</span>(!busListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keyword">auto</span> busNode = busListNode-&gt;first_node(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">while</span>(busNode) {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keyword">auto</span> cadPropNode = busNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160;</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; bus-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; bus-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; bus-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(bus-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>()); <span class="comment">// Update bus rectangle.</span></div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="keywordtype">int</span> numRot = angle / bus-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; }</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) bus-&gt;<a class="code" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Rotate</a>(clockwise);</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="keyword">auto</span> electricalProp = busNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; data.isVoltageControlled = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsVoltageControlled&quot;</span>);</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; data.controlledVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; data.controlledVoltageUnitChoice = GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ControlledVoltage&quot;</span>, <span class="stringliteral">&quot;Choice&quot;</span>);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; data.slackBus = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;SlackBus&quot;</span>);</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; data.hasFault = GetNodeValueInt(fault, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; data.faultType = (<a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a>)GetNodeValueInt(fault, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; data.faultLocation = (<a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a>)GetNodeValueInt(fault, <span class="stringliteral">&quot;Location&quot;</span>);</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; data.faultResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; data.faultReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;Reactance&quot;</span>);</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keyword">auto</span> stability = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; data.plotBus = GetNodeValueInt(stability, <span class="stringliteral">&quot;Plot&quot;</span>);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; data.stabHasFault = GetNodeValueInt(stability, <span class="stringliteral">&quot;HasFault&quot;</span>);</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; data.stabFaultTime = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultTime&quot;</span>);</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; data.stabFaultLength = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultLength&quot;</span>);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; data.stabFaultResistance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultResistance&quot;</span>);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; data.stabFaultReactance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;FaultReactance&quot;</span>);</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">if</span>(data.stabHasFault) bus-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160;</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; elementList.push_back(bus);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; busList.push_back(bus);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; busNode = busNode-&gt;next_sibling(<span class="stringliteral">&quot;Bus&quot;</span>);</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160;</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="comment">//{ Capacitor</span></div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keyword">auto</span> capacitorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;CapacitorList&quot;</span>);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">if</span>(!capacitorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keyword">auto</span> capacitorNode = capacitorListNode-&gt;first_node(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">while</span>(capacitorNode) {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>();</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keyword">auto</span> cadPropNode = capacitorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; capacitor-&gt;<a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; capacitor-&gt;<a class="code" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(capacitor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; capacitor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; }</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordtype">int</span> numRot = angle / capacitor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; }</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) capacitor-&gt;<a class="code" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Rotate</a>(clockwise);</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keyword">auto</span> electricalProp = capacitorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160;</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; capacitor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; capacitor-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; capacitor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) capacitor-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; elementList.push_back(capacitor);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; capacitorList.push_back(capacitor);</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; capacitorNode = capacitorNode-&gt;next_sibling(<span class="stringliteral">&quot;Capacitor&quot;</span>);</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="comment">//{ IndMotor</span></div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keyword">auto</span> indMotorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;IndMotorList&quot;</span>);</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">if</span>(!indMotorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keyword">auto</span> indMotorNode = indMotorListNode-&gt;first_node(<span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">while</span>(indMotorNode) {</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keyword">auto</span> cadPropNode = indMotorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160;</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(indMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; indMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="keywordtype">int</span> numRot = angle / indMotor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; }</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) indMotor-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160;</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keyword">auto</span> electricalProp = indMotorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; indMotor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; indMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; elementList.push_back(indMotor);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; indMotorList.push_back(indMotor);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; indMotorNode = indMotorNode-&gt;next_sibling(<span class="stringliteral">&quot;IndMotor&quot;</span>);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160;</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="comment">//{ Inductor</span></div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keyword">auto</span> inductorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;InductorList&quot;</span>);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">if</span>(!inductorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keyword">auto</span> inductorNode = inductorListNode-&gt;first_node(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; <span class="keywordflow">while</span>(inductorNode) {</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keyword">auto</span> cadPropNode = inductorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; inductor-&gt;<a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; inductor-&gt;<a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(inductor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; inductor-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; }</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; inductor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; inductor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordtype">int</span> numRot = angle / inductor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; }</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) inductor-&gt;<a class="code" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Rotate</a>(clockwise);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keyword">auto</span> electricalProp = inductorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160;</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; inductor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; }</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; inductor-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; inductor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) inductor-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; elementList.push_back(inductor);</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; inductorList.push_back(inductor);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; inductorNode = inductorNode-&gt;next_sibling(<span class="stringliteral">&quot;Inductor&quot;</span>);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="comment">//{ Line</span></div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keyword">auto</span> lineListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LineList&quot;</span>);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">if</span>(!lineListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <span class="keyword">auto</span> lineNode = lineListNode-&gt;first_node(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">while</span>(lineNode) {</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; <span class="keyword">auto</span> cadPropNode = lineNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160;</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="comment">// Get nodes points</span></div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; std::vector&lt;wxPoint2DDouble&gt; ptsList;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keyword">auto</span> nodePosList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">if</span>(!nodePosList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keyword">auto</span> nodePos = nodePosList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <span class="keywordflow">while</span>(nodePos) {</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; ptsList.push_back(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; nodePos = nodePos-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; }</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="comment">// Get parents IDs</span></div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keyword">auto</span> parentIDList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; <span class="keywordflow">if</span>(!parentIDList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keyword">auto</span> parentNode = parentIDList-&gt;first_node(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordtype">long</span> parentID[2] = {-1, -1};</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordtype">long</span> index = 0;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; wxString(parentNode-&gt;first_attribute(<span class="stringliteral">&quot;ID&quot;</span>)-&gt;value()).ToLong(&amp;index);</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; wxString(parentNode-&gt;value()).ToCLong(&amp;parentID[index]);</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; }</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160;</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="comment">// Set parents (if have)</span></div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <a class="code" href="class_bus.html">Bus</a> *parent1, *parent2;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; parent1 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[0]);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; parent1 = busList[parentID[0]];</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; }</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; parent2 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; parent2 = busList[parentID[1]];</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; line-&gt;<a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; }</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160;</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="comment">// Add the others nodes (if have)</span></div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; std::vector&lt;wxPoint2DDouble&gt; midPts;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)ptsList.size() - 1; i++) midPts.push_back(ptsList[i]);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edgesPts = line-&gt;<a class="code" href="class_element.html#aff2870f5979a84a30c27917cb33271f9">GetPointList</a>();</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; edgesPts.insert(edgesPts.begin() + 2, midPts.begin(), midPts.end());</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; line-&gt;<a class="code" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">SetPointList</a>(edgesPts);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; line-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent1);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <span class="keyword">delete</span> parent1;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; }</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; line-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent2);</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; <span class="keyword">delete</span> parent2;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; }</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keyword">auto</span> electricalProp = lineNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; line-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; data.resistance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; data.resistanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; data.indReactance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; data.indReactanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; data.capSusceptance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>);</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; data.capSusceptanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;CapSusceptance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; data.lineSize = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;LineSize&quot;</span>);</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; data.useLinePower = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseLinePower&quot;</span>);</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; data.zeroIndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; data.zeroCapSusceptance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroCapSusceptance&quot;</span>);</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; line-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; line-&gt;SetElectricalData(data);</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) line-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160;</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; elementList.push_back(line);</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; lineList.push_back(line);</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; lineNode = lineNode-&gt;next_sibling(<span class="stringliteral">&quot;Line&quot;</span>);</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="comment">//{ Load</span></div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keyword">auto</span> loadListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LoadList&quot;</span>);</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; <span class="keywordflow">if</span>(!loadListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keyword">auto</span> loadNode = loadListNode-&gt;first_node(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; <span class="keywordflow">while</span>(loadNode) {</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; <a class="code" href="class_load.html">Load</a>* load = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160;</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; <span class="keyword">auto</span> cadPropNode = loadNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; load-&gt;<a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; load-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(parent);</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; load-&gt;<a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; load-&gt;<a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(load-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; load-&gt;<a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; }</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; load-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; load-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; <span class="keywordtype">int</span> numRot = angle / load-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; }</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) load-&gt;<a class="code" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Rotate</a>(clockwise);</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; <span class="keyword">auto</span> electricalProp = loadNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; load-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; data.loadType = (LoadType)GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;LoadType&quot;</span>);</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; }</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; load-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160;</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; load-&gt;SetElectricalData(data);</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160;</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) load-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160;</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; elementList.push_back(load);</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; loadList.push_back(load);</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; loadNode = loadNode-&gt;next_sibling(<span class="stringliteral">&quot;Load&quot;</span>);</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <span class="comment">//{ SyncGenerator</span></div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; <span class="keyword">auto</span> syncGeneratorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SyncGeneratorList&quot;</span>);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; <span class="keywordflow">if</span>(!syncGeneratorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keyword">auto</span> syncGeneratorNode = syncGeneratorListNode-&gt;first_node(<span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <span class="keywordflow">while</span>(syncGeneratorNode) {</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; <span class="keyword">auto</span> cadPropNode = syncGeneratorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncGenerator-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160; syncGenerator-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; }</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keywordtype">int</span> numRot = angle / syncGenerator-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; }</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) syncGenerator-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160;</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keyword">auto</span> electricalProp = syncGeneratorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; syncGenerator-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; data.nominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>);</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; data.nominalVoltageUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; data.haveMaxReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; data.maxReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; data.maxReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; data.haveMinReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; data.minReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; data.minReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; data.useMachineBase = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160;</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160; <span class="keywordflow">if</span>(!fault) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; data.positiveResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160; data.positiveReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160; data.negativeResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; data.negativeReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; data.zeroReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; data.groundResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; data.groundReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; data.groundNeutral = GetNodeValueInt(fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160; <span class="keyword">auto</span> stability = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Stability&quot;</span>);</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160; <span class="keywordflow">if</span>(!stability) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160; data.plotSyncMachine = GetNodeValueInt(stability, <span class="stringliteral">&quot;PlotSyncMachine&quot;</span>);</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; data.inertia = GetNodeValueDouble(stability, <span class="stringliteral">&quot;Inertia&quot;</span>);</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; data.damping = GetNodeValueDouble(stability, <span class="stringliteral">&quot;Damping&quot;</span>);</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; data.useAVR = GetNodeValueInt(stability, <span class="stringliteral">&quot;UseAVR&quot;</span>);</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; data.useSpeedGovernor = GetNodeValueInt(stability, <span class="stringliteral">&quot;UseSpeedGovernor&quot;</span>);</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160; data.armResistance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;ArmResistance&quot;</span>);</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; data.potierReactance = GetNodeValueDouble(stability, <span class="stringliteral">&quot;PotierReactance&quot;</span>);</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160; data.satFactor = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SatFactor&quot;</span>);</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; data.syncXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SyncXd&quot;</span>);</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; data.syncXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SyncXq&quot;</span>);</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; data.transXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransXd&quot;</span>);</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; data.transXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransXq&quot;</span>);</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; data.transTd0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransTd0&quot;</span>);</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; data.transTq0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;TransTq0&quot;</span>);</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; data.subXd = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubXd&quot;</span>);</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; data.subXq = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubXq&quot;</span>);</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; data.subTd0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubTd0&quot;</span>);</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160; data.subTq0 = GetNodeValueDouble(stability, <span class="stringliteral">&quot;SubTq0&quot;</span>);</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; <span class="keyword">auto</span> avr = stability-&gt;first_node(<span class="stringliteral">&quot;AVR&quot;</span>);</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">if</span>(!avr) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, avr, data.avr)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keyword">auto</span> speedGov = stability-&gt;first_node(<span class="stringliteral">&quot;SpeedGovernor&quot;</span>);</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160; <span class="keywordflow">if</span>(!speedGov) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, speedGov, data.speedGov)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; }</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; syncGenerator-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) syncGenerator-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160; elementList.push_back(syncGenerator);</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; syncGeneratorList.push_back(syncGenerator);</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; syncGeneratorNode = syncGeneratorNode-&gt;next_sibling(<span class="stringliteral">&quot;SyncGenerator&quot;</span>);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160; <span class="comment">//{ SyncMotor</span></div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="keyword">auto</span> syncMotorListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SyncMotorList&quot;</span>);</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; <span class="keywordflow">if</span>(!syncMotorListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <span class="keyword">auto</span> syncMotorNode = syncMotorListNode-&gt;first_node(<span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keywordflow">while</span>(syncMotorNode) {</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160;</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; <span class="keyword">auto</span> cadPropNode = syncMotorNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; <span class="keyword">auto</span> nodePosition = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodePosition&quot;</span>);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="keywordtype">int</span> parentID = GetNodeValueInt(cadPropNode, <span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <span class="keywordflow">if</span>(parentID == -1) {</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="comment">// If the element has no parent, create a temporary one, remove and delete.</span></div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(parent);</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; <span class="keyword">delete</span> parent;</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = busList[parentID];</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(parent, wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(syncMotor-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; syncMotor-&gt;<a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; }</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <span class="keywordtype">int</span> numRot = angle / syncMotor-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; }</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) syncMotor-&gt;<a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(clockwise);</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160;</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; <span class="keyword">auto</span> electricalProp = syncMotorNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; syncMotor-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160; <span class="comment">// data.nominalVoltage = GetNodeValueDouble(electricalProp, &quot;NominalVoltage&quot;);</span></div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="comment">// data.nominalVoltageUnit = (ElectricalUnit)GetAttributeValueInt(electricalProp, &quot;NominalVoltage&quot;, &quot;UnitID&quot;);</span></div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; data.activePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>);</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; data.activePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ActivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; data.reactivePower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>);</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; data.reactivePowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;ReactivePower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160; data.haveMaxReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMaxReactive&quot;</span>);</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; data.maxReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>);</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160; data.maxReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MaxReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; data.haveMinReactive = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;HaveMinReactive&quot;</span>);</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; data.minReactive = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>);</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160; data.minReactiveUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;MinReactive&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; data.useMachineBase = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseMachineBase&quot;</span>);</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keywordflow">if</span>(!fault) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; data.positiveResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveResistance&quot;</span>);</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; data.positiveReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PositiveReactance&quot;</span>);</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; data.negativeResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeResistance&quot;</span>);</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160; data.negativeReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;NegativeReactance&quot;</span>);</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; data.zeroReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroReactance&quot;</span>);</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; data.groundResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundResistance&quot;</span>);</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; data.groundReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;GroundReactance&quot;</span>);</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; data.groundNeutral = GetNodeValueInt(fault, <span class="stringliteral">&quot;GroundNeutral&quot;</span>);</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="comment">/*SwitchingData swData;</span></div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;<span class="comment"> auto switchingList = electricalProp-&gt;first_node(&quot;SwitchingList&quot;);</span></div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160;<span class="comment"> if(!switchingList) return false;</span></div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;<span class="comment"> auto swNode = switchingList-&gt;first_node(&quot;Switching&quot;);</span></div><div class="line"><a name="l01511"></a><span class="lineno"> 1511</span>&#160;<span class="comment"> while(swNode) {</span></div><div class="line"><a name="l01512"></a><span class="lineno"> 1512</span>&#160;<span class="comment"> swData.swType.push_back((SwitchingType)GetNodeValueInt(swNode, &quot;Type&quot;));</span></div><div class="line"><a name="l01513"></a><span class="lineno"> 1513</span>&#160;<span class="comment"> swData.swTime.push_back(GetNodeValueDouble(swNode, &quot;Time&quot;));</span></div><div class="line"><a name="l01514"></a><span class="lineno"> 1514</span>&#160;<span class="comment"> swNode = swNode-&gt;next_sibling(&quot;Switching&quot;);</span></div><div class="line"><a name="l01515"></a><span class="lineno"> 1515</span>&#160;<span class="comment"> }</span></div><div class="line"><a name="l01516"></a><span class="lineno"> 1516</span>&#160;<span class="comment"> syncMotor-&gt;SetSwitchingData(swData);*/</span></div><div class="line"><a name="l01517"></a><span class="lineno"> 1517</span>&#160;</div><div class="line"><a name="l01518"></a><span class="lineno"> 1518</span>&#160; syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l01519"></a><span class="lineno"> 1519</span>&#160; elementList.push_back(syncMotor);</div><div class="line"><a name="l01520"></a><span class="lineno"> 1520</span>&#160; syncMotorList.push_back(syncMotor);</div><div class="line"><a name="l01521"></a><span class="lineno"> 1521</span>&#160; syncMotorNode = syncMotorNode-&gt;next_sibling(<span class="stringliteral">&quot;SyncMotor&quot;</span>);</div><div class="line"><a name="l01522"></a><span class="lineno"> 1522</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01523"></a><span class="lineno"> 1523</span>&#160;</div><div class="line"><a name="l01524"></a><span class="lineno"> 1524</span>&#160; <span class="comment">//{ Transformer</span></div><div class="line"><a name="l01525"></a><span class="lineno"> 1525</span>&#160; <span class="keyword">auto</span> transformerListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TransformerList&quot;</span>);</div><div class="line"><a name="l01526"></a><span class="lineno"> 1526</span>&#160; <span class="keywordflow">if</span>(!transformerListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01527"></a><span class="lineno"> 1527</span>&#160; <span class="keyword">auto</span> transfomerNode = transformerListNode-&gt;first_node(<span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l01528"></a><span class="lineno"> 1528</span>&#160; <span class="keywordflow">while</span>(transfomerNode) {</div><div class="line"><a name="l01529"></a><span class="lineno"> 1529</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l01530"></a><span class="lineno"> 1530</span>&#160;</div><div class="line"><a name="l01531"></a><span class="lineno"> 1531</span>&#160; <span class="keyword">auto</span> cadPropNode = transfomerNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01532"></a><span class="lineno"> 1532</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01533"></a><span class="lineno"> 1533</span>&#160;</div><div class="line"><a name="l01534"></a><span class="lineno"> 1534</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01535"></a><span class="lineno"> 1535</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01536"></a><span class="lineno"> 1536</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01537"></a><span class="lineno"> 1537</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01538"></a><span class="lineno"> 1538</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01539"></a><span class="lineno"> 1539</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01540"></a><span class="lineno"> 1540</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01541"></a><span class="lineno"> 1541</span>&#160;</div><div class="line"><a name="l01542"></a><span class="lineno"> 1542</span>&#160; <span class="comment">// Get nodes points</span></div><div class="line"><a name="l01543"></a><span class="lineno"> 1543</span>&#160; std::vector&lt;wxPoint2DDouble&gt; ptsList;</div><div class="line"><a name="l01544"></a><span class="lineno"> 1544</span>&#160; <span class="keyword">auto</span> nodePosList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01545"></a><span class="lineno"> 1545</span>&#160; <span class="keywordflow">if</span>(!nodePosList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01546"></a><span class="lineno"> 1546</span>&#160; <span class="keyword">auto</span> nodePos = nodePosList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01547"></a><span class="lineno"> 1547</span>&#160; <span class="keywordflow">while</span>(nodePos) {</div><div class="line"><a name="l01548"></a><span class="lineno"> 1548</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01549"></a><span class="lineno"> 1549</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePos, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01550"></a><span class="lineno"> 1550</span>&#160; ptsList.push_back(wxPoint2DDouble(nodePosX, nodePosY));</div><div class="line"><a name="l01551"></a><span class="lineno"> 1551</span>&#160; nodePos = nodePos-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l01552"></a><span class="lineno"> 1552</span>&#160; }</div><div class="line"><a name="l01553"></a><span class="lineno"> 1553</span>&#160;</div><div class="line"><a name="l01554"></a><span class="lineno"> 1554</span>&#160; <span class="comment">// Get parents IDs</span></div><div class="line"><a name="l01555"></a><span class="lineno"> 1555</span>&#160; <span class="keyword">auto</span> parentIDList = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;ParentIDList&quot;</span>);</div><div class="line"><a name="l01556"></a><span class="lineno"> 1556</span>&#160; <span class="keywordflow">if</span>(!parentIDList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01557"></a><span class="lineno"> 1557</span>&#160; <span class="keyword">auto</span> parentNode = parentIDList-&gt;first_node(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01558"></a><span class="lineno"> 1558</span>&#160; <span class="keywordtype">long</span> parentID[2] = {-1, -1};</div><div class="line"><a name="l01559"></a><span class="lineno"> 1559</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l01560"></a><span class="lineno"> 1560</span>&#160; <span class="keywordtype">long</span> index = 0;</div><div class="line"><a name="l01561"></a><span class="lineno"> 1561</span>&#160; wxString(parentNode-&gt;first_attribute(<span class="stringliteral">&quot;ID&quot;</span>)-&gt;value()).ToLong(&amp;index);</div><div class="line"><a name="l01562"></a><span class="lineno"> 1562</span>&#160; wxString(parentNode-&gt;value()).ToCLong(&amp;parentID[index]);</div><div class="line"><a name="l01563"></a><span class="lineno"> 1563</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;ParentID&quot;</span>);</div><div class="line"><a name="l01564"></a><span class="lineno"> 1564</span>&#160; }</div><div class="line"><a name="l01565"></a><span class="lineno"> 1565</span>&#160;</div><div class="line"><a name="l01566"></a><span class="lineno"> 1566</span>&#160; <span class="comment">// Set parents (if have)</span></div><div class="line"><a name="l01567"></a><span class="lineno"> 1567</span>&#160; <a class="code" href="class_bus.html">Bus</a> *parent1, *parent2;</div><div class="line"><a name="l01568"></a><span class="lineno"> 1568</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01569"></a><span class="lineno"> 1569</span>&#160; parent1 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[0]);</div><div class="line"><a name="l01570"></a><span class="lineno"> 1570</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01571"></a><span class="lineno"> 1571</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01572"></a><span class="lineno"> 1572</span>&#160; parent1 = busList[parentID[0]];</div><div class="line"><a name="l01573"></a><span class="lineno"> 1573</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent1, ptsList[0]);</div><div class="line"><a name="l01574"></a><span class="lineno"> 1574</span>&#160; }</div><div class="line"><a name="l01575"></a><span class="lineno"> 1575</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01576"></a><span class="lineno"> 1576</span>&#160; parent2 = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01577"></a><span class="lineno"> 1577</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01578"></a><span class="lineno"> 1578</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01579"></a><span class="lineno"> 1579</span>&#160; parent2 = busList[parentID[1]];</div><div class="line"><a name="l01580"></a><span class="lineno"> 1580</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">AddParent</a>(parent2, ptsList[ptsList.size() - 1]);</div><div class="line"><a name="l01581"></a><span class="lineno"> 1581</span>&#160; }</div><div class="line"><a name="l01582"></a><span class="lineno"> 1582</span>&#160;</div><div class="line"><a name="l01583"></a><span class="lineno"> 1583</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">StartMove</a>(transformer-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l01584"></a><span class="lineno"> 1584</span>&#160; transformer-&gt;<a class="code" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Move</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01585"></a><span class="lineno"> 1585</span>&#160;</div><div class="line"><a name="l01586"></a><span class="lineno"> 1586</span>&#160; <span class="keywordflow">if</span>(parentID[0] == -1) {</div><div class="line"><a name="l01587"></a><span class="lineno"> 1587</span>&#160; transformer-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent1);</div><div class="line"><a name="l01588"></a><span class="lineno"> 1588</span>&#160; <span class="keyword">delete</span> parent1;</div><div class="line"><a name="l01589"></a><span class="lineno"> 1589</span>&#160; }</div><div class="line"><a name="l01590"></a><span class="lineno"> 1590</span>&#160; <span class="keywordflow">if</span>(parentID[1] == -1) {</div><div class="line"><a name="l01591"></a><span class="lineno"> 1591</span>&#160; transformer-&gt;<a class="code" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">RemoveParent</a>(parent2);</div><div class="line"><a name="l01592"></a><span class="lineno"> 1592</span>&#160; <span class="keyword">delete</span> parent2;</div><div class="line"><a name="l01593"></a><span class="lineno"> 1593</span>&#160; }</div><div class="line"><a name="l01594"></a><span class="lineno"> 1594</span>&#160;</div><div class="line"><a name="l01595"></a><span class="lineno"> 1595</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01596"></a><span class="lineno"> 1596</span>&#160; transformer-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01597"></a><span class="lineno"> 1597</span>&#160;</div><div class="line"><a name="l01598"></a><span class="lineno"> 1598</span>&#160; <span class="keywordtype">int</span> numRot = angle / transformer-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01599"></a><span class="lineno"> 1599</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01600"></a><span class="lineno"> 1600</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01601"></a><span class="lineno"> 1601</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01602"></a><span class="lineno"> 1602</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01603"></a><span class="lineno"> 1603</span>&#160; }</div><div class="line"><a name="l01604"></a><span class="lineno"> 1604</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) transformer-&gt;<a class="code" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Rotate</a>(clockwise);</div><div class="line"><a name="l01605"></a><span class="lineno"> 1605</span>&#160;</div><div class="line"><a name="l01606"></a><span class="lineno"> 1606</span>&#160; <span class="keyword">auto</span> electricalProp = transfomerNode-&gt;first_node(<span class="stringliteral">&quot;ElectricalProperties&quot;</span>);</div><div class="line"><a name="l01607"></a><span class="lineno"> 1607</span>&#160; <span class="keywordflow">if</span>(!electricalProp) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01608"></a><span class="lineno"> 1608</span>&#160;</div><div class="line"><a name="l01609"></a><span class="lineno"> 1609</span>&#160; transformer-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;IsOnline&quot;</span>));</div><div class="line"><a name="l01610"></a><span class="lineno"> 1610</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l01611"></a><span class="lineno"> 1611</span>&#160; data.name = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Name&quot;</span>)-&gt;value();</div><div class="line"><a name="l01612"></a><span class="lineno"> 1612</span>&#160; data.primaryNominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l01613"></a><span class="lineno"> 1613</span>&#160; data.primaryNominalVoltageUnit =</div><div class="line"><a name="l01614"></a><span class="lineno"> 1614</span>&#160; (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;PrimaryNominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01615"></a><span class="lineno"> 1615</span>&#160; data.secondaryNominalVoltage = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>);</div><div class="line"><a name="l01616"></a><span class="lineno"> 1616</span>&#160; data.secondaryNominalVoltageUnit =</div><div class="line"><a name="l01617"></a><span class="lineno"> 1617</span>&#160; (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;SecondaryNominalVoltage&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01618"></a><span class="lineno"> 1618</span>&#160; data.nominalPower = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>);</div><div class="line"><a name="l01619"></a><span class="lineno"> 1619</span>&#160; data.nominalPowerUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;NominalPower&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01620"></a><span class="lineno"> 1620</span>&#160; data.resistance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>);</div><div class="line"><a name="l01621"></a><span class="lineno"> 1621</span>&#160; data.resistanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;Resistance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01622"></a><span class="lineno"> 1622</span>&#160; data.indReactance = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>);</div><div class="line"><a name="l01623"></a><span class="lineno"> 1623</span>&#160; data.indReactanceUnit = (<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetAttributeValueInt(electricalProp, <span class="stringliteral">&quot;IndReactance&quot;</span>, <span class="stringliteral">&quot;UnitID&quot;</span>);</div><div class="line"><a name="l01624"></a><span class="lineno"> 1624</span>&#160; data.connection = (TransformerConnection)GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l01625"></a><span class="lineno"> 1625</span>&#160; data.turnsRatio = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;TurnsRatio&quot;</span>);</div><div class="line"><a name="l01626"></a><span class="lineno"> 1626</span>&#160; data.phaseShift = GetNodeValueDouble(electricalProp, <span class="stringliteral">&quot;PhaseShift&quot;</span>);</div><div class="line"><a name="l01627"></a><span class="lineno"> 1627</span>&#160; data.useTransformerPower = GetNodeValueInt(electricalProp, <span class="stringliteral">&quot;UseTransfomerPower&quot;</span>);</div><div class="line"><a name="l01628"></a><span class="lineno"> 1628</span>&#160;</div><div class="line"><a name="l01629"></a><span class="lineno"> 1629</span>&#160; <span class="keyword">auto</span> fault = electricalProp-&gt;first_node(<span class="stringliteral">&quot;Fault&quot;</span>);</div><div class="line"><a name="l01630"></a><span class="lineno"> 1630</span>&#160; data.zeroResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroResistance&quot;</span>);</div><div class="line"><a name="l01631"></a><span class="lineno"> 1631</span>&#160; data.zeroIndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;ZeroIndReactance&quot;</span>);</div><div class="line"><a name="l01632"></a><span class="lineno"> 1632</span>&#160; data.primaryGrndResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PrimaryGrndResistance&quot;</span>);</div><div class="line"><a name="l01633"></a><span class="lineno"> 1633</span>&#160; data.primaryGrndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;PrimaryGrndReactance&quot;</span>);</div><div class="line"><a name="l01634"></a><span class="lineno"> 1634</span>&#160; data.secondaryGrndResistance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;SecondaryGrndResistance&quot;</span>);</div><div class="line"><a name="l01635"></a><span class="lineno"> 1635</span>&#160; data.secondaryGrndReactance = GetNodeValueDouble(fault, <span class="stringliteral">&quot;SecondaryGrndReactance&quot;</span>);</div><div class="line"><a name="l01636"></a><span class="lineno"> 1636</span>&#160;</div><div class="line"><a name="l01637"></a><span class="lineno"> 1637</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> swData;</div><div class="line"><a name="l01638"></a><span class="lineno"> 1638</span>&#160; <span class="keyword">auto</span> switchingList = electricalProp-&gt;first_node(<span class="stringliteral">&quot;SwitchingList&quot;</span>);</div><div class="line"><a name="l01639"></a><span class="lineno"> 1639</span>&#160; <span class="keywordflow">if</span>(!switchingList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01640"></a><span class="lineno"> 1640</span>&#160; <span class="keyword">auto</span> swNode = switchingList-&gt;first_node(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01641"></a><span class="lineno"> 1641</span>&#160; <span class="keywordflow">while</span>(swNode) {</div><div class="line"><a name="l01642"></a><span class="lineno"> 1642</span>&#160; swData.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back((<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a>)GetNodeValueInt(swNode, <span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l01643"></a><span class="lineno"> 1643</span>&#160; swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(GetNodeValueDouble(swNode, <span class="stringliteral">&quot;Time&quot;</span>));</div><div class="line"><a name="l01644"></a><span class="lineno"> 1644</span>&#160; swNode = swNode-&gt;next_sibling(<span class="stringliteral">&quot;Switching&quot;</span>);</div><div class="line"><a name="l01645"></a><span class="lineno"> 1645</span>&#160; }</div><div class="line"><a name="l01646"></a><span class="lineno"> 1646</span>&#160; transformer-&gt;<a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(swData);</div><div class="line"><a name="l01647"></a><span class="lineno"> 1647</span>&#160;</div><div class="line"><a name="l01648"></a><span class="lineno"> 1648</span>&#160; transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l01649"></a><span class="lineno"> 1649</span>&#160;</div><div class="line"><a name="l01650"></a><span class="lineno"> 1650</span>&#160; <span class="keywordflow">if</span>(swData.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0) transformer-&gt;<a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keyword">true</span>);</div><div class="line"><a name="l01651"></a><span class="lineno"> 1651</span>&#160;</div><div class="line"><a name="l01652"></a><span class="lineno"> 1652</span>&#160; elementList.push_back(transformer);</div><div class="line"><a name="l01653"></a><span class="lineno"> 1653</span>&#160; transformerList.push_back(transformer);</div><div class="line"><a name="l01654"></a><span class="lineno"> 1654</span>&#160; transfomerNode = transfomerNode-&gt;next_sibling(<span class="stringliteral">&quot;Transfomer&quot;</span>);</div><div class="line"><a name="l01655"></a><span class="lineno"> 1655</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01656"></a><span class="lineno"> 1656</span>&#160;</div><div class="line"><a name="l01657"></a><span class="lineno"> 1657</span>&#160; m_workspace-&gt;SetElementList(elementList);</div><div class="line"><a name="l01658"></a><span class="lineno"> 1658</span>&#160;</div><div class="line"><a name="l01659"></a><span class="lineno"> 1659</span>&#160; <span class="comment">//{ Text</span></div><div class="line"><a name="l01660"></a><span class="lineno"> 1660</span>&#160; <span class="keyword">auto</span> textListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TextList&quot;</span>);</div><div class="line"><a name="l01661"></a><span class="lineno"> 1661</span>&#160; <span class="keywordflow">if</span>(!textListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01662"></a><span class="lineno"> 1662</span>&#160; <span class="keyword">auto</span> textNode = textListNode-&gt;first_node(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l01663"></a><span class="lineno"> 1663</span>&#160; <span class="keywordflow">while</span>(textNode) {</div><div class="line"><a name="l01664"></a><span class="lineno"> 1664</span>&#160; <span class="keyword">auto</span> cadPropNode = textNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01665"></a><span class="lineno"> 1665</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01666"></a><span class="lineno"> 1666</span>&#160;</div><div class="line"><a name="l01667"></a><span class="lineno"> 1667</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01668"></a><span class="lineno"> 1668</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01669"></a><span class="lineno"> 1669</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01670"></a><span class="lineno"> 1670</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01671"></a><span class="lineno"> 1671</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01672"></a><span class="lineno"> 1672</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01673"></a><span class="lineno"> 1673</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01674"></a><span class="lineno"> 1674</span>&#160;</div><div class="line"><a name="l01675"></a><span class="lineno"> 1675</span>&#160; <a class="code" href="class_text.html">Text</a>* text = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l01676"></a><span class="lineno"> 1676</span>&#160;</div><div class="line"><a name="l01677"></a><span class="lineno"> 1677</span>&#160; text-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l01678"></a><span class="lineno"> 1678</span>&#160; text-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l01679"></a><span class="lineno"> 1679</span>&#160;</div><div class="line"><a name="l01680"></a><span class="lineno"> 1680</span>&#160; <span class="keyword">auto</span> textProperties = textNode-&gt;first_node(<span class="stringliteral">&quot;TextProperties&quot;</span>);</div><div class="line"><a name="l01681"></a><span class="lineno"> 1681</span>&#160; <span class="keywordflow">if</span>(!textProperties) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01682"></a><span class="lineno"> 1682</span>&#160;</div><div class="line"><a name="l01683"></a><span class="lineno"> 1683</span>&#160; text-&gt;SetElementType((ElementType)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;ElementType&quot;</span>));</div><div class="line"><a name="l01684"></a><span class="lineno"> 1684</span>&#160; text-&gt;SetDataType((DataType)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DataType&quot;</span>));</div><div class="line"><a name="l01685"></a><span class="lineno"> 1685</span>&#160; text-&gt;SetUnit((<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a>)GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DataUnit&quot;</span>));</div><div class="line"><a name="l01686"></a><span class="lineno"> 1686</span>&#160; text-&gt;SetDirection(GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;Direction&quot;</span>));</div><div class="line"><a name="l01687"></a><span class="lineno"> 1687</span>&#160; text-&gt;SetDecimalPlaces(GetNodeValueDouble(textProperties, <span class="stringliteral">&quot;DecimalPlaces&quot;</span>));</div><div class="line"><a name="l01688"></a><span class="lineno"> 1688</span>&#160;</div><div class="line"><a name="l01689"></a><span class="lineno"> 1689</span>&#160; text-&gt;SetElementNumber(GetNodeValueInt(textProperties, <span class="stringliteral">&quot;ElementNumber&quot;</span>));</div><div class="line"><a name="l01690"></a><span class="lineno"> 1690</span>&#160; <span class="keywordflow">switch</span>(text-&gt;GetElementType()) {</div><div class="line"><a name="l01691"></a><span class="lineno"> 1691</span>&#160; <span class="keywordflow">case</span> TYPE_NONE:</div><div class="line"><a name="l01692"></a><span class="lineno"> 1692</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01693"></a><span class="lineno"> 1693</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l01694"></a><span class="lineno"> 1694</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = busList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01695"></a><span class="lineno"> 1695</span>&#160; text-&gt;SetElement(bus);</div><div class="line"><a name="l01696"></a><span class="lineno"> 1696</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01697"></a><span class="lineno"> 1697</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l01698"></a><span class="lineno"> 1698</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = capacitorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01699"></a><span class="lineno"> 1699</span>&#160; text-&gt;SetElement(capacitor);</div><div class="line"><a name="l01700"></a><span class="lineno"> 1700</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01701"></a><span class="lineno"> 1701</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l01702"></a><span class="lineno"> 1702</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = indMotorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01703"></a><span class="lineno"> 1703</span>&#160; text-&gt;SetElement(indMotor);</div><div class="line"><a name="l01704"></a><span class="lineno"> 1704</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01705"></a><span class="lineno"> 1705</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l01706"></a><span class="lineno"> 1706</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = inductorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01707"></a><span class="lineno"> 1707</span>&#160; text-&gt;SetElement(inductor);</div><div class="line"><a name="l01708"></a><span class="lineno"> 1708</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01709"></a><span class="lineno"> 1709</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l01710"></a><span class="lineno"> 1710</span>&#160; <a class="code" href="class_line.html">Line</a>* line = lineList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01711"></a><span class="lineno"> 1711</span>&#160; text-&gt;SetElement(line);</div><div class="line"><a name="l01712"></a><span class="lineno"> 1712</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01713"></a><span class="lineno"> 1713</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l01714"></a><span class="lineno"> 1714</span>&#160; <a class="code" href="class_load.html">Load</a>* load = loadList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01715"></a><span class="lineno"> 1715</span>&#160; text-&gt;SetElement(load);</div><div class="line"><a name="l01716"></a><span class="lineno"> 1716</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01717"></a><span class="lineno"> 1717</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l01718"></a><span class="lineno"> 1718</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = syncGeneratorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01719"></a><span class="lineno"> 1719</span>&#160; text-&gt;SetElement(syncGenerator);</div><div class="line"><a name="l01720"></a><span class="lineno"> 1720</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01721"></a><span class="lineno"> 1721</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l01722"></a><span class="lineno"> 1722</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = syncMotorList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01723"></a><span class="lineno"> 1723</span>&#160; text-&gt;SetElement(syncMotor);</div><div class="line"><a name="l01724"></a><span class="lineno"> 1724</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01725"></a><span class="lineno"> 1725</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l01726"></a><span class="lineno"> 1726</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = transformerList[text-&gt;GetElementNumber()];</div><div class="line"><a name="l01727"></a><span class="lineno"> 1727</span>&#160; text-&gt;SetElement(transformer);</div><div class="line"><a name="l01728"></a><span class="lineno"> 1728</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01729"></a><span class="lineno"> 1729</span>&#160; }</div><div class="line"><a name="l01730"></a><span class="lineno"> 1730</span>&#160;</div><div class="line"><a name="l01731"></a><span class="lineno"> 1731</span>&#160; <span class="keywordtype">int</span> numRot = angle / text-&gt;<a class="code" href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">GetRotationAngle</a>();</div><div class="line"><a name="l01732"></a><span class="lineno"> 1732</span>&#160; <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>;</div><div class="line"><a name="l01733"></a><span class="lineno"> 1733</span>&#160; <span class="keywordflow">if</span>(numRot &lt; 0) {</div><div class="line"><a name="l01734"></a><span class="lineno"> 1734</span>&#160; numRot = std::abs(numRot);</div><div class="line"><a name="l01735"></a><span class="lineno"> 1735</span>&#160; clockwise = <span class="keyword">false</span>;</div><div class="line"><a name="l01736"></a><span class="lineno"> 1736</span>&#160; }</div><div class="line"><a name="l01737"></a><span class="lineno"> 1737</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numRot; i++) text-&gt;<a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(clockwise);</div><div class="line"><a name="l01738"></a><span class="lineno"> 1738</span>&#160;</div><div class="line"><a name="l01739"></a><span class="lineno"> 1739</span>&#160; textList.push_back(text);</div><div class="line"><a name="l01740"></a><span class="lineno"> 1740</span>&#160; textNode = textNode-&gt;next_sibling(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l01741"></a><span class="lineno"> 1741</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01742"></a><span class="lineno"> 1742</span>&#160;</div><div class="line"><a name="l01743"></a><span class="lineno"> 1743</span>&#160; m_workspace-&gt;SetTextList(textList);</div><div class="line"><a name="l01744"></a><span class="lineno"> 1744</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01745"></a><span class="lineno"> 1745</span>&#160;}</div><div class="line"><a name="l01746"></a><span class="lineno"> 1746</span>&#160;</div><div class="line"><a name="l01747"></a><span class="lineno"> 1747</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControl(wxFileName path)</div><div class="line"><a name="l01748"></a><span class="lineno"> 1748</span>&#160;{</div><div class="line"><a name="l01749"></a><span class="lineno"> 1749</span>&#160; <span class="comment">// Same process present in SaveProject():</span></div><div class="line"><a name="l01750"></a><span class="lineno"> 1750</span>&#160; std::ofstream writeProjectsFile(path.GetFullPath());</div><div class="line"><a name="l01751"></a><span class="lineno"> 1751</span>&#160; writeProjectsFile.close();</div><div class="line"><a name="l01752"></a><span class="lineno"> 1752</span>&#160;</div><div class="line"><a name="l01753"></a><span class="lineno"> 1753</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l01754"></a><span class="lineno"> 1754</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l01755"></a><span class="lineno"> 1755</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l01756"></a><span class="lineno"> 1756</span>&#160;</div><div class="line"><a name="l01757"></a><span class="lineno"> 1757</span>&#160; rapidxml::xml_node&lt;&gt;* decl = doc.allocate_node(rapidxml::node_declaration);</div><div class="line"><a name="l01758"></a><span class="lineno"> 1758</span>&#160; rapidxml::xml_attribute&lt;&gt;* ver = doc.allocate_attribute(<span class="stringliteral">&quot;version&quot;</span>, <span class="stringliteral">&quot;1.0&quot;</span>);</div><div class="line"><a name="l01759"></a><span class="lineno"> 1759</span>&#160; rapidxml::xml_attribute&lt;&gt;* encoding = doc.allocate_attribute(<span class="stringliteral">&quot;encoding&quot;</span>, <span class="stringliteral">&quot;utf-8&quot;</span>);</div><div class="line"><a name="l01760"></a><span class="lineno"> 1760</span>&#160; decl-&gt;append_attribute(ver);</div><div class="line"><a name="l01761"></a><span class="lineno"> 1761</span>&#160; decl-&gt;append_attribute(encoding);</div><div class="line"><a name="l01762"></a><span class="lineno"> 1762</span>&#160; doc.append_node(decl);</div><div class="line"><a name="l01763"></a><span class="lineno"> 1763</span>&#160;</div><div class="line"><a name="l01764"></a><span class="lineno"> 1764</span>&#160; rapidxml::xml_node&lt;&gt;* rootNode = doc.allocate_node(rapidxml::node_element, <span class="stringliteral">&quot;Control&quot;</span>);</div><div class="line"><a name="l01765"></a><span class="lineno"> 1765</span>&#160; doc.append_node(rootNode);</div><div class="line"><a name="l01766"></a><span class="lineno"> 1766</span>&#160;</div><div class="line"><a name="l01767"></a><span class="lineno"> 1767</span>&#160; rapidxml::xml_node&lt;&gt;* projectNameNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;Name&quot;</span>);</div><div class="line"><a name="l01768"></a><span class="lineno"> 1768</span>&#160; SetNodeValue(doc, projectNameNode, path.GetName());</div><div class="line"><a name="l01769"></a><span class="lineno"> 1769</span>&#160;</div><div class="line"><a name="l01770"></a><span class="lineno"> 1770</span>&#160; <span class="keyword">auto</span> elementsNode = AppendNode(doc, rootNode, <span class="stringliteral">&quot;ControlElements&quot;</span>);</div><div class="line"><a name="l01771"></a><span class="lineno"> 1771</span>&#160; SaveControlElements(doc, elementsNode);</div><div class="line"><a name="l01772"></a><span class="lineno"> 1772</span>&#160; std::ofstream writeXML(path.GetFullPath());</div><div class="line"><a name="l01773"></a><span class="lineno"> 1773</span>&#160; writeXML &lt;&lt; doc;</div><div class="line"><a name="l01774"></a><span class="lineno"> 1774</span>&#160; writeXML.close();</div><div class="line"><a name="l01775"></a><span class="lineno"> 1775</span>&#160;}</div><div class="line"><a name="l01776"></a><span class="lineno"> 1776</span>&#160;</div><div class="line"><a name="l01777"></a><span class="lineno"> 1777</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControl(wxFileName path,</div><div class="line"><a name="l01778"></a><span class="lineno"> 1778</span>&#160; std::vector&lt;ControlElement*&gt;&amp; ctrlElementList,</div><div class="line"><a name="l01779"></a><span class="lineno"> 1779</span>&#160; std::vector&lt;ConnectionLine*&gt;&amp; ctrlConnectionList)</div><div class="line"><a name="l01780"></a><span class="lineno"> 1780</span>&#160;{</div><div class="line"><a name="l01781"></a><span class="lineno"> 1781</span>&#160; rapidxml::xml_document&lt;&gt; doc;</div><div class="line"><a name="l01782"></a><span class="lineno"> 1782</span>&#160; rapidxml::file&lt;&gt; xmlFile(path.GetFullPath().mb_str());</div><div class="line"><a name="l01783"></a><span class="lineno"> 1783</span>&#160;</div><div class="line"><a name="l01784"></a><span class="lineno"> 1784</span>&#160; doc.parse&lt;0&gt;(xmlFile.data());</div><div class="line"><a name="l01785"></a><span class="lineno"> 1785</span>&#160;</div><div class="line"><a name="l01786"></a><span class="lineno"> 1786</span>&#160; <span class="keyword">auto</span> projectNode = doc.first_node(<span class="stringliteral">&quot;Control&quot;</span>);</div><div class="line"><a name="l01787"></a><span class="lineno"> 1787</span>&#160; <span class="keywordflow">if</span>(!projectNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01788"></a><span class="lineno"> 1788</span>&#160; <span class="comment">// auto nameNode = projectNode-&gt;first_node(&quot;Name&quot;);</span></div><div class="line"><a name="l01789"></a><span class="lineno"> 1789</span>&#160; <span class="comment">// if(!nameNode) return false;</span></div><div class="line"><a name="l01790"></a><span class="lineno"> 1790</span>&#160; <span class="comment">// m_controlEditor-&gt;SetName(nameNode-&gt;value());</span></div><div class="line"><a name="l01791"></a><span class="lineno"> 1791</span>&#160;</div><div class="line"><a name="l01792"></a><span class="lineno"> 1792</span>&#160; <span class="comment">// Open elements</span></div><div class="line"><a name="l01793"></a><span class="lineno"> 1793</span>&#160; <span class="keyword">auto</span> elementsNode = projectNode-&gt;first_node(<span class="stringliteral">&quot;ControlElements&quot;</span>);</div><div class="line"><a name="l01794"></a><span class="lineno"> 1794</span>&#160; <span class="keywordflow">if</span>(!elementsNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01795"></a><span class="lineno"> 1795</span>&#160;</div><div class="line"><a name="l01796"></a><span class="lineno"> 1796</span>&#160; <span class="comment">// auto elementsNode = AppendNode(doc, rootNode, &quot;ControlElements&quot;);</span></div><div class="line"><a name="l01797"></a><span class="lineno"> 1797</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlElementContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l01798"></a><span class="lineno"> 1798</span>&#160; <span class="keywordflow">if</span>(!OpenControlElements(doc, elementsNode, ctrlElementContainer)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01799"></a><span class="lineno"> 1799</span>&#160; ctrlElementList = ctrlElementContainer-&gt;GetControlElementsList();</div><div class="line"><a name="l01800"></a><span class="lineno"> 1800</span>&#160; ctrlConnectionList = ctrlElementContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l01801"></a><span class="lineno"> 1801</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01802"></a><span class="lineno"> 1802</span>&#160;}</div><div class="line"><a name="l01803"></a><span class="lineno"> 1803</span>&#160;</div><div class="line"><a name="l01804"></a><span class="lineno"> 1804</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControlElements(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l01805"></a><span class="lineno"> 1805</span>&#160; rapidxml::xml_node&lt;&gt;* elementsNode,</div><div class="line"><a name="l01806"></a><span class="lineno"> 1806</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer)</div><div class="line"><a name="l01807"></a><span class="lineno"> 1807</span>&#160;{</div><div class="line"><a name="l01808"></a><span class="lineno"> 1808</span>&#160; <span class="keywordflow">if</span>(!ctrlContainer) {</div><div class="line"><a name="l01809"></a><span class="lineno"> 1809</span>&#160; ctrlContainer = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l01810"></a><span class="lineno"> 1810</span>&#160; ctrlContainer-&gt;FillContainer(m_controlEditor);</div><div class="line"><a name="l01811"></a><span class="lineno"> 1811</span>&#160; }</div><div class="line"><a name="l01812"></a><span class="lineno"> 1812</span>&#160;</div><div class="line"><a name="l01813"></a><span class="lineno"> 1813</span>&#160; <span class="comment">//{ Constant</span></div><div class="line"><a name="l01814"></a><span class="lineno"> 1814</span>&#160; <span class="keyword">auto</span> constsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ConstantList&quot;</span>);</div><div class="line"><a name="l01815"></a><span class="lineno"> 1815</span>&#160; <span class="keyword">auto</span> constList = ctrlContainer-&gt;GetConstantList();</div><div class="line"><a name="l01816"></a><span class="lineno"> 1816</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = constList.begin(), itEnd = constList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01817"></a><span class="lineno"> 1817</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = *it;</div><div class="line"><a name="l01818"></a><span class="lineno"> 1818</span>&#160; <span class="keyword">auto</span> constNode = AppendNode(doc, constsNode, <span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l01819"></a><span class="lineno"> 1819</span>&#160; SetNodeAttribute(doc, constNode, <span class="stringliteral">&quot;ID&quot;</span>, constant-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01820"></a><span class="lineno"> 1820</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, constNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01821"></a><span class="lineno"> 1821</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01822"></a><span class="lineno"> 1822</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01823"></a><span class="lineno"> 1823</span>&#160; SetNodeValue(doc, posX, constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01824"></a><span class="lineno"> 1824</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01825"></a><span class="lineno"> 1825</span>&#160; SetNodeValue(doc, posY, constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01826"></a><span class="lineno"> 1826</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01827"></a><span class="lineno"> 1827</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01828"></a><span class="lineno"> 1828</span>&#160; SetNodeValue(doc, width, constant-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01829"></a><span class="lineno"> 1829</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01830"></a><span class="lineno"> 1830</span>&#160; SetNodeValue(doc, height, constant-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01831"></a><span class="lineno"> 1831</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01832"></a><span class="lineno"> 1832</span>&#160; SetNodeValue(doc, angle, constant-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01833"></a><span class="lineno"> 1833</span>&#160;</div><div class="line"><a name="l01834"></a><span class="lineno"> 1834</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01835"></a><span class="lineno"> 1835</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, constNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01836"></a><span class="lineno"> 1836</span>&#160; SaveControlNodes(doc, nodeList, constant-&gt;GetNodeList());</div><div class="line"><a name="l01837"></a><span class="lineno"> 1837</span>&#160;</div><div class="line"><a name="l01838"></a><span class="lineno"> 1838</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01839"></a><span class="lineno"> 1839</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, constNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01840"></a><span class="lineno"> 1840</span>&#160; SetNodeValue(doc, value, constant-&gt;GetValue());</div><div class="line"><a name="l01841"></a><span class="lineno"> 1841</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01842"></a><span class="lineno"> 1842</span>&#160;</div><div class="line"><a name="l01843"></a><span class="lineno"> 1843</span>&#160; <span class="comment">//{ Exponential</span></div><div class="line"><a name="l01844"></a><span class="lineno"> 1844</span>&#160; <span class="keyword">auto</span> expsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ExponentialList&quot;</span>);</div><div class="line"><a name="l01845"></a><span class="lineno"> 1845</span>&#160; <span class="keyword">auto</span> expList = ctrlContainer-&gt;GetExponentialList();</div><div class="line"><a name="l01846"></a><span class="lineno"> 1846</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = expList.begin(), itEnd = expList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01847"></a><span class="lineno"> 1847</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exponential = *it;</div><div class="line"><a name="l01848"></a><span class="lineno"> 1848</span>&#160; <span class="keyword">auto</span> expNode = AppendNode(doc, expsNode, <span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l01849"></a><span class="lineno"> 1849</span>&#160; SetNodeAttribute(doc, expNode, <span class="stringliteral">&quot;ID&quot;</span>, exponential-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01850"></a><span class="lineno"> 1850</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, expNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01851"></a><span class="lineno"> 1851</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01852"></a><span class="lineno"> 1852</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01853"></a><span class="lineno"> 1853</span>&#160; SetNodeValue(doc, posX, exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01854"></a><span class="lineno"> 1854</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01855"></a><span class="lineno"> 1855</span>&#160; SetNodeValue(doc, posY, exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01856"></a><span class="lineno"> 1856</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01857"></a><span class="lineno"> 1857</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01858"></a><span class="lineno"> 1858</span>&#160; SetNodeValue(doc, width, exponential-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01859"></a><span class="lineno"> 1859</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01860"></a><span class="lineno"> 1860</span>&#160; SetNodeValue(doc, height, exponential-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01861"></a><span class="lineno"> 1861</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01862"></a><span class="lineno"> 1862</span>&#160; SetNodeValue(doc, angle, exponential-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01863"></a><span class="lineno"> 1863</span>&#160;</div><div class="line"><a name="l01864"></a><span class="lineno"> 1864</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01865"></a><span class="lineno"> 1865</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, expNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01866"></a><span class="lineno"> 1866</span>&#160; SaveControlNodes(doc, nodeList, exponential-&gt;GetNodeList());</div><div class="line"><a name="l01867"></a><span class="lineno"> 1867</span>&#160;</div><div class="line"><a name="l01868"></a><span class="lineno"> 1868</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01869"></a><span class="lineno"> 1869</span>&#160; <span class="keywordtype">double</span> a, b;</div><div class="line"><a name="l01870"></a><span class="lineno"> 1870</span>&#160; exponential-&gt;GetValues(a, b);</div><div class="line"><a name="l01871"></a><span class="lineno"> 1871</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, expNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01872"></a><span class="lineno"> 1872</span>&#160; <span class="keyword">auto</span> aValue = AppendNode(doc, value, <span class="stringliteral">&quot;A&quot;</span>);</div><div class="line"><a name="l01873"></a><span class="lineno"> 1873</span>&#160; SetNodeValue(doc, aValue, a);</div><div class="line"><a name="l01874"></a><span class="lineno"> 1874</span>&#160; <span class="keyword">auto</span> bValue = AppendNode(doc, value, <span class="stringliteral">&quot;B&quot;</span>);</div><div class="line"><a name="l01875"></a><span class="lineno"> 1875</span>&#160; SetNodeValue(doc, bValue, b);</div><div class="line"><a name="l01876"></a><span class="lineno"> 1876</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01877"></a><span class="lineno"> 1877</span>&#160;</div><div class="line"><a name="l01878"></a><span class="lineno"> 1878</span>&#160; <span class="comment">//{ Gain</span></div><div class="line"><a name="l01879"></a><span class="lineno"> 1879</span>&#160; <span class="keyword">auto</span> gainsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;GainList&quot;</span>);</div><div class="line"><a name="l01880"></a><span class="lineno"> 1880</span>&#160; <span class="keyword">auto</span> gainList = ctrlContainer-&gt;GetGainList();</div><div class="line"><a name="l01881"></a><span class="lineno"> 1881</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = gainList.begin(), itEnd = gainList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01882"></a><span class="lineno"> 1882</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = *it;</div><div class="line"><a name="l01883"></a><span class="lineno"> 1883</span>&#160; <span class="keyword">auto</span> gainNode = AppendNode(doc, gainsNode, <span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l01884"></a><span class="lineno"> 1884</span>&#160; SetNodeAttribute(doc, gainNode, <span class="stringliteral">&quot;ID&quot;</span>, gain-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01885"></a><span class="lineno"> 1885</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, gainNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01886"></a><span class="lineno"> 1886</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01887"></a><span class="lineno"> 1887</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01888"></a><span class="lineno"> 1888</span>&#160; SetNodeValue(doc, posX, gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01889"></a><span class="lineno"> 1889</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01890"></a><span class="lineno"> 1890</span>&#160; SetNodeValue(doc, posY, gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01891"></a><span class="lineno"> 1891</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01892"></a><span class="lineno"> 1892</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01893"></a><span class="lineno"> 1893</span>&#160; SetNodeValue(doc, width, gain-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01894"></a><span class="lineno"> 1894</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01895"></a><span class="lineno"> 1895</span>&#160; SetNodeValue(doc, height, gain-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01896"></a><span class="lineno"> 1896</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01897"></a><span class="lineno"> 1897</span>&#160; SetNodeValue(doc, angle, gain-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01898"></a><span class="lineno"> 1898</span>&#160;</div><div class="line"><a name="l01899"></a><span class="lineno"> 1899</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01900"></a><span class="lineno"> 1900</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, gainNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01901"></a><span class="lineno"> 1901</span>&#160; SaveControlNodes(doc, nodeList, gain-&gt;GetNodeList());</div><div class="line"><a name="l01902"></a><span class="lineno"> 1902</span>&#160;</div><div class="line"><a name="l01903"></a><span class="lineno"> 1903</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01904"></a><span class="lineno"> 1904</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, gainNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01905"></a><span class="lineno"> 1905</span>&#160; SetNodeValue(doc, value, gain-&gt;GetValue());</div><div class="line"><a name="l01906"></a><span class="lineno"> 1906</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01907"></a><span class="lineno"> 1907</span>&#160;</div><div class="line"><a name="l01908"></a><span class="lineno"> 1908</span>&#160; <span class="comment">//{ IO</span></div><div class="line"><a name="l01909"></a><span class="lineno"> 1909</span>&#160; <span class="keyword">auto</span> iosNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;IOList&quot;</span>);</div><div class="line"><a name="l01910"></a><span class="lineno"> 1910</span>&#160; <span class="keyword">auto</span> ioList = ctrlContainer-&gt;GetIOControlList();</div><div class="line"><a name="l01911"></a><span class="lineno"> 1911</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = ioList.begin(), itEnd = ioList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01912"></a><span class="lineno"> 1912</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = *it;</div><div class="line"><a name="l01913"></a><span class="lineno"> 1913</span>&#160; <span class="keyword">auto</span> ioNode = AppendNode(doc, iosNode, <span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l01914"></a><span class="lineno"> 1914</span>&#160; SetNodeAttribute(doc, ioNode, <span class="stringliteral">&quot;ID&quot;</span>, io-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01915"></a><span class="lineno"> 1915</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, ioNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01916"></a><span class="lineno"> 1916</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01917"></a><span class="lineno"> 1917</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01918"></a><span class="lineno"> 1918</span>&#160; SetNodeValue(doc, posX, io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01919"></a><span class="lineno"> 1919</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01920"></a><span class="lineno"> 1920</span>&#160; SetNodeValue(doc, posY, io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01921"></a><span class="lineno"> 1921</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01922"></a><span class="lineno"> 1922</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01923"></a><span class="lineno"> 1923</span>&#160; SetNodeValue(doc, width, io-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01924"></a><span class="lineno"> 1924</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01925"></a><span class="lineno"> 1925</span>&#160; SetNodeValue(doc, height, io-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01926"></a><span class="lineno"> 1926</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01927"></a><span class="lineno"> 1927</span>&#160; SetNodeValue(doc, angle, io-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01928"></a><span class="lineno"> 1928</span>&#160;</div><div class="line"><a name="l01929"></a><span class="lineno"> 1929</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01930"></a><span class="lineno"> 1930</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, ioNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01931"></a><span class="lineno"> 1931</span>&#160; SaveControlNodes(doc, nodeList, io-&gt;GetNodeList());</div><div class="line"><a name="l01932"></a><span class="lineno"> 1932</span>&#160;</div><div class="line"><a name="l01933"></a><span class="lineno"> 1933</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01934"></a><span class="lineno"> 1934</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, ioNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l01935"></a><span class="lineno"> 1935</span>&#160; SetNodeValue(doc, value, io-&gt;GetValue());</div><div class="line"><a name="l01936"></a><span class="lineno"> 1936</span>&#160; <span class="keyword">auto</span> ioFlags = AppendNode(doc, ioNode, <span class="stringliteral">&quot;IOFlags&quot;</span>);</div><div class="line"><a name="l01937"></a><span class="lineno"> 1937</span>&#160; SetNodeValue(doc, ioFlags, io-&gt;GetIOFlags());</div><div class="line"><a name="l01938"></a><span class="lineno"> 1938</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01939"></a><span class="lineno"> 1939</span>&#160;</div><div class="line"><a name="l01940"></a><span class="lineno"> 1940</span>&#160; <span class="comment">//{ Limiter</span></div><div class="line"><a name="l01941"></a><span class="lineno"> 1941</span>&#160; <span class="keyword">auto</span> limitersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;LimiterList&quot;</span>);</div><div class="line"><a name="l01942"></a><span class="lineno"> 1942</span>&#160; <span class="keyword">auto</span> limiterList = ctrlContainer-&gt;GetLimiterList();</div><div class="line"><a name="l01943"></a><span class="lineno"> 1943</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = limiterList.begin(), itEnd = limiterList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01944"></a><span class="lineno"> 1944</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = *it;</div><div class="line"><a name="l01945"></a><span class="lineno"> 1945</span>&#160; <span class="keyword">auto</span> limiterNode = AppendNode(doc, limitersNode, <span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l01946"></a><span class="lineno"> 1946</span>&#160; SetNodeAttribute(doc, limiterNode, <span class="stringliteral">&quot;ID&quot;</span>, limiter-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01947"></a><span class="lineno"> 1947</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01948"></a><span class="lineno"> 1948</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01949"></a><span class="lineno"> 1949</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01950"></a><span class="lineno"> 1950</span>&#160; SetNodeValue(doc, posX, limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01951"></a><span class="lineno"> 1951</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01952"></a><span class="lineno"> 1952</span>&#160; SetNodeValue(doc, posY, limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01953"></a><span class="lineno"> 1953</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01954"></a><span class="lineno"> 1954</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01955"></a><span class="lineno"> 1955</span>&#160; SetNodeValue(doc, width, limiter-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01956"></a><span class="lineno"> 1956</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01957"></a><span class="lineno"> 1957</span>&#160; SetNodeValue(doc, height, limiter-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01958"></a><span class="lineno"> 1958</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01959"></a><span class="lineno"> 1959</span>&#160; SetNodeValue(doc, angle, limiter-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01960"></a><span class="lineno"> 1960</span>&#160;</div><div class="line"><a name="l01961"></a><span class="lineno"> 1961</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01962"></a><span class="lineno"> 1962</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01963"></a><span class="lineno"> 1963</span>&#160; SaveControlNodes(doc, nodeList, limiter-&gt;GetNodeList());</div><div class="line"><a name="l01964"></a><span class="lineno"> 1964</span>&#160;</div><div class="line"><a name="l01965"></a><span class="lineno"> 1965</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l01966"></a><span class="lineno"> 1966</span>&#160; <span class="keyword">auto</span> upLimit = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l01967"></a><span class="lineno"> 1967</span>&#160; SetNodeValue(doc, upLimit, limiter-&gt;GetUpLimit());</div><div class="line"><a name="l01968"></a><span class="lineno"> 1968</span>&#160; <span class="keyword">auto</span> lowLimit = AppendNode(doc, limiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l01969"></a><span class="lineno"> 1969</span>&#160; SetNodeValue(doc, lowLimit, limiter-&gt;GetLowLimit());</div><div class="line"><a name="l01970"></a><span class="lineno"> 1970</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01971"></a><span class="lineno"> 1971</span>&#160;</div><div class="line"><a name="l01972"></a><span class="lineno"> 1972</span>&#160; <span class="comment">//{ Multiplier</span></div><div class="line"><a name="l01973"></a><span class="lineno"> 1973</span>&#160; <span class="keyword">auto</span> multipliersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;MultiplierList&quot;</span>);</div><div class="line"><a name="l01974"></a><span class="lineno"> 1974</span>&#160; <span class="keyword">auto</span> multiplierList = ctrlContainer-&gt;GetMultiplierList();</div><div class="line"><a name="l01975"></a><span class="lineno"> 1975</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = multiplierList.begin(), itEnd = multiplierList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01976"></a><span class="lineno"> 1976</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = *it;</div><div class="line"><a name="l01977"></a><span class="lineno"> 1977</span>&#160; <span class="keyword">auto</span> multiplierNode = AppendNode(doc, multipliersNode, <span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l01978"></a><span class="lineno"> 1978</span>&#160; SetNodeAttribute(doc, multiplierNode, <span class="stringliteral">&quot;ID&quot;</span>, multiplier-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l01979"></a><span class="lineno"> 1979</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, multiplierNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l01980"></a><span class="lineno"> 1980</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l01981"></a><span class="lineno"> 1981</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l01982"></a><span class="lineno"> 1982</span>&#160; SetNodeValue(doc, posX, multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l01983"></a><span class="lineno"> 1983</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l01984"></a><span class="lineno"> 1984</span>&#160; SetNodeValue(doc, posY, multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l01985"></a><span class="lineno"> 1985</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l01986"></a><span class="lineno"> 1986</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l01987"></a><span class="lineno"> 1987</span>&#160; SetNodeValue(doc, width, multiplier-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l01988"></a><span class="lineno"> 1988</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l01989"></a><span class="lineno"> 1989</span>&#160; SetNodeValue(doc, height, multiplier-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l01990"></a><span class="lineno"> 1990</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l01991"></a><span class="lineno"> 1991</span>&#160; SetNodeValue(doc, angle, multiplier-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l01992"></a><span class="lineno"> 1992</span>&#160;</div><div class="line"><a name="l01993"></a><span class="lineno"> 1993</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l01994"></a><span class="lineno"> 1994</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, multiplierNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l01995"></a><span class="lineno"> 1995</span>&#160; SaveControlNodes(doc, nodeList, multiplier-&gt;GetNodeList());</div><div class="line"><a name="l01996"></a><span class="lineno"> 1996</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l01997"></a><span class="lineno"> 1997</span>&#160;</div><div class="line"><a name="l01998"></a><span class="lineno"> 1998</span>&#160; <span class="comment">//{ Rate limiter</span></div><div class="line"><a name="l01999"></a><span class="lineno"> 1999</span>&#160; <span class="keyword">auto</span> rateLimitersNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;RateLimiterList&quot;</span>);</div><div class="line"><a name="l02000"></a><span class="lineno"> 2000</span>&#160; <span class="keyword">auto</span> rateLimiterList = ctrlContainer-&gt;GetRateLimiterList();</div><div class="line"><a name="l02001"></a><span class="lineno"> 2001</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = rateLimiterList.begin(), itEnd = rateLimiterList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02002"></a><span class="lineno"> 2002</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter = *it;</div><div class="line"><a name="l02003"></a><span class="lineno"> 2003</span>&#160; <span class="keyword">auto</span> rateLimiterNode = AppendNode(doc, rateLimitersNode, <span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l02004"></a><span class="lineno"> 2004</span>&#160; SetNodeAttribute(doc, rateLimiterNode, <span class="stringliteral">&quot;ID&quot;</span>, rateLimiter-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02005"></a><span class="lineno"> 2005</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02006"></a><span class="lineno"> 2006</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02007"></a><span class="lineno"> 2007</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02008"></a><span class="lineno"> 2008</span>&#160; SetNodeValue(doc, posX, rateLimiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l02009"></a><span class="lineno"> 2009</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02010"></a><span class="lineno"> 2010</span>&#160; SetNodeValue(doc, posY, rateLimiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l02011"></a><span class="lineno"> 2011</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02012"></a><span class="lineno"> 2012</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02013"></a><span class="lineno"> 2013</span>&#160; SetNodeValue(doc, width, rateLimiter-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l02014"></a><span class="lineno"> 2014</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02015"></a><span class="lineno"> 2015</span>&#160; SetNodeValue(doc, height, rateLimiter-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l02016"></a><span class="lineno"> 2016</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02017"></a><span class="lineno"> 2017</span>&#160; SetNodeValue(doc, angle, rateLimiter-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02018"></a><span class="lineno"> 2018</span>&#160;</div><div class="line"><a name="l02019"></a><span class="lineno"> 2019</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02020"></a><span class="lineno"> 2020</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02021"></a><span class="lineno"> 2021</span>&#160; SaveControlNodes(doc, nodeList, rateLimiter-&gt;GetNodeList());</div><div class="line"><a name="l02022"></a><span class="lineno"> 2022</span>&#160;</div><div class="line"><a name="l02023"></a><span class="lineno"> 2023</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02024"></a><span class="lineno"> 2024</span>&#160; <span class="keyword">auto</span> upLimit = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02025"></a><span class="lineno"> 2025</span>&#160; SetNodeValue(doc, upLimit, rateLimiter-&gt;GetUpLimit());</div><div class="line"><a name="l02026"></a><span class="lineno"> 2026</span>&#160; <span class="keyword">auto</span> lowLimit = AppendNode(doc, rateLimiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02027"></a><span class="lineno"> 2027</span>&#160; SetNodeValue(doc, lowLimit, rateLimiter-&gt;GetLowLimit());</div><div class="line"><a name="l02028"></a><span class="lineno"> 2028</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02029"></a><span class="lineno"> 2029</span>&#160;</div><div class="line"><a name="l02030"></a><span class="lineno"> 2030</span>&#160; <span class="comment">//{ Sum</span></div><div class="line"><a name="l02031"></a><span class="lineno"> 2031</span>&#160; <span class="keyword">auto</span> sumsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;SumList&quot;</span>);</div><div class="line"><a name="l02032"></a><span class="lineno"> 2032</span>&#160; <span class="keyword">auto</span> sumList = ctrlContainer-&gt;GetSumList();</div><div class="line"><a name="l02033"></a><span class="lineno"> 2033</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = sumList.begin(), itEnd = sumList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02034"></a><span class="lineno"> 2034</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = *it;</div><div class="line"><a name="l02035"></a><span class="lineno"> 2035</span>&#160; <span class="keyword">auto</span> sumNode = AppendNode(doc, sumsNode, <span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02036"></a><span class="lineno"> 2036</span>&#160; SetNodeAttribute(doc, sumNode, <span class="stringliteral">&quot;ID&quot;</span>, sum-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02037"></a><span class="lineno"> 2037</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, sumNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02038"></a><span class="lineno"> 2038</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02039"></a><span class="lineno"> 2039</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02040"></a><span class="lineno"> 2040</span>&#160; SetNodeValue(doc, posX, sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l02041"></a><span class="lineno"> 2041</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02042"></a><span class="lineno"> 2042</span>&#160; SetNodeValue(doc, posY, sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l02043"></a><span class="lineno"> 2043</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02044"></a><span class="lineno"> 2044</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02045"></a><span class="lineno"> 2045</span>&#160; SetNodeValue(doc, width, sum-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l02046"></a><span class="lineno"> 2046</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02047"></a><span class="lineno"> 2047</span>&#160; SetNodeValue(doc, height, sum-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l02048"></a><span class="lineno"> 2048</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02049"></a><span class="lineno"> 2049</span>&#160; SetNodeValue(doc, angle, sum-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02050"></a><span class="lineno"> 2050</span>&#160;</div><div class="line"><a name="l02051"></a><span class="lineno"> 2051</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02052"></a><span class="lineno"> 2052</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, sumNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02053"></a><span class="lineno"> 2053</span>&#160; SaveControlNodes(doc, nodeList, sum-&gt;GetNodeList());</div><div class="line"><a name="l02054"></a><span class="lineno"> 2054</span>&#160;</div><div class="line"><a name="l02055"></a><span class="lineno"> 2055</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02056"></a><span class="lineno"> 2056</span>&#160; <span class="keyword">auto</span> signsNode = AppendNode(doc, sumNode, <span class="stringliteral">&quot;Signs&quot;</span>);</div><div class="line"><a name="l02057"></a><span class="lineno"> 2057</span>&#160; <span class="keyword">auto</span> signs = sum-&gt;GetSignalList();</div><div class="line"><a name="l02058"></a><span class="lineno"> 2058</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)signs.size(); ++i) {</div><div class="line"><a name="l02059"></a><span class="lineno"> 2059</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, signsNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02060"></a><span class="lineno"> 2060</span>&#160; SetNodeValue(doc, value, static_cast&lt;int&gt;(signs[i]));</div><div class="line"><a name="l02061"></a><span class="lineno"> 2061</span>&#160; }</div><div class="line"><a name="l02062"></a><span class="lineno"> 2062</span>&#160;</div><div class="line"><a name="l02063"></a><span class="lineno"> 2063</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02064"></a><span class="lineno"> 2064</span>&#160;</div><div class="line"><a name="l02065"></a><span class="lineno"> 2065</span>&#160; <span class="comment">//{ Transfer function</span></div><div class="line"><a name="l02066"></a><span class="lineno"> 2066</span>&#160; <span class="keyword">auto</span> tfsNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;TransferFunctionList&quot;</span>);</div><div class="line"><a name="l02067"></a><span class="lineno"> 2067</span>&#160; <span class="keyword">auto</span> tfList = ctrlContainer-&gt;GetTFList();</div><div class="line"><a name="l02068"></a><span class="lineno"> 2068</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = tfList.begin(), itEnd = tfList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02069"></a><span class="lineno"> 2069</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = *it;</div><div class="line"><a name="l02070"></a><span class="lineno"> 2070</span>&#160; <span class="keyword">auto</span> tfNode = AppendNode(doc, tfsNode, <span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02071"></a><span class="lineno"> 2071</span>&#160; SetNodeAttribute(doc, tfNode, <span class="stringliteral">&quot;ID&quot;</span>, tf-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02072"></a><span class="lineno"> 2072</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, tfNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02073"></a><span class="lineno"> 2073</span>&#160; <span class="keyword">auto</span> position = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02074"></a><span class="lineno"> 2074</span>&#160; <span class="keyword">auto</span> posX = AppendNode(doc, position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02075"></a><span class="lineno"> 2075</span>&#160; SetNodeValue(doc, posX, tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x);</div><div class="line"><a name="l02076"></a><span class="lineno"> 2076</span>&#160; <span class="keyword">auto</span> posY = AppendNode(doc, position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02077"></a><span class="lineno"> 2077</span>&#160; SetNodeValue(doc, posY, tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y);</div><div class="line"><a name="l02078"></a><span class="lineno"> 2078</span>&#160; <span class="keyword">auto</span> size = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02079"></a><span class="lineno"> 2079</span>&#160; <span class="keyword">auto</span> width = AppendNode(doc, size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02080"></a><span class="lineno"> 2080</span>&#160; SetNodeValue(doc, width, tf-&gt;<a class="code" href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">GetWidth</a>());</div><div class="line"><a name="l02081"></a><span class="lineno"> 2081</span>&#160; <span class="keyword">auto</span> height = AppendNode(doc, size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02082"></a><span class="lineno"> 2082</span>&#160; SetNodeValue(doc, height, tf-&gt;<a class="code" href="class_element.html#a616c73ff20402109ede68579094acc3d">GetHeight</a>());</div><div class="line"><a name="l02083"></a><span class="lineno"> 2083</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02084"></a><span class="lineno"> 2084</span>&#160; SetNodeValue(doc, angle, tf-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l02085"></a><span class="lineno"> 2085</span>&#160;</div><div class="line"><a name="l02086"></a><span class="lineno"> 2086</span>&#160; <span class="comment">// Nodes</span></div><div class="line"><a name="l02087"></a><span class="lineno"> 2087</span>&#160; <span class="keyword">auto</span> nodeList = AppendNode(doc, tfNode, <span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02088"></a><span class="lineno"> 2088</span>&#160; SaveControlNodes(doc, nodeList, tf-&gt;GetNodeList());</div><div class="line"><a name="l02089"></a><span class="lineno"> 2089</span>&#160;</div><div class="line"><a name="l02090"></a><span class="lineno"> 2090</span>&#160; <span class="comment">// Control properties</span></div><div class="line"><a name="l02091"></a><span class="lineno"> 2091</span>&#160; <span class="keyword">auto</span> numeratorNode = AppendNode(doc, tfNode, <span class="stringliteral">&quot;Numerator&quot;</span>);</div><div class="line"><a name="l02092"></a><span class="lineno"> 2092</span>&#160; <span class="keyword">auto</span> numerator = tf-&gt;GetNumerator();</div><div class="line"><a name="l02093"></a><span class="lineno"> 2093</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)numerator.size(); ++i) {</div><div class="line"><a name="l02094"></a><span class="lineno"> 2094</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, numeratorNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02095"></a><span class="lineno"> 2095</span>&#160; SetNodeValue(doc, value, numerator[i]);</div><div class="line"><a name="l02096"></a><span class="lineno"> 2096</span>&#160; }</div><div class="line"><a name="l02097"></a><span class="lineno"> 2097</span>&#160; <span class="keyword">auto</span> denominatorNode = AppendNode(doc, tfNode, <span class="stringliteral">&quot;Denominator&quot;</span>);</div><div class="line"><a name="l02098"></a><span class="lineno"> 2098</span>&#160; <span class="keyword">auto</span> denominator = tf-&gt;GetDenominator();</div><div class="line"><a name="l02099"></a><span class="lineno"> 2099</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)denominator.size(); ++i) {</div><div class="line"><a name="l02100"></a><span class="lineno"> 2100</span>&#160; <span class="keyword">auto</span> value = AppendNode(doc, denominatorNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02101"></a><span class="lineno"> 2101</span>&#160; SetNodeValue(doc, value, denominator[i]);</div><div class="line"><a name="l02102"></a><span class="lineno"> 2102</span>&#160; }</div><div class="line"><a name="l02103"></a><span class="lineno"> 2103</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02104"></a><span class="lineno"> 2104</span>&#160;</div><div class="line"><a name="l02105"></a><span class="lineno"> 2105</span>&#160; <span class="comment">//{ Connection line</span></div><div class="line"><a name="l02106"></a><span class="lineno"> 2106</span>&#160; <span class="keyword">auto</span> cLinesNode = AppendNode(doc, elementsNode, <span class="stringliteral">&quot;ConnectionList&quot;</span>);</div><div class="line"><a name="l02107"></a><span class="lineno"> 2107</span>&#160; <span class="keyword">auto</span> connLineList = ctrlContainer-&gt;GetConnectionLineList();</div><div class="line"><a name="l02108"></a><span class="lineno"> 2108</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connLineList.begin(), itEnd = connLineList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02109"></a><span class="lineno"> 2109</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = *it;</div><div class="line"><a name="l02110"></a><span class="lineno"> 2110</span>&#160; <span class="keyword">auto</span> cLineNode = AppendNode(doc, cLinesNode, <span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02111"></a><span class="lineno"> 2111</span>&#160; SetNodeAttribute(doc, cLineNode, <span class="stringliteral">&quot;ID&quot;</span>, cLine-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02112"></a><span class="lineno"> 2112</span>&#160;</div><div class="line"><a name="l02113"></a><span class="lineno"> 2113</span>&#160; <span class="comment">// CAD properties</span></div><div class="line"><a name="l02114"></a><span class="lineno"> 2114</span>&#160; <span class="keyword">auto</span> cadProp = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02115"></a><span class="lineno"> 2115</span>&#160; <span class="keyword">auto</span> offset = AppendNode(doc, cadProp, <span class="stringliteral">&quot;Offset&quot;</span>);</div><div class="line"><a name="l02116"></a><span class="lineno"> 2116</span>&#160; SetNodeValue(doc, offset, cLine-&gt;GetOffset());</div><div class="line"><a name="l02117"></a><span class="lineno"> 2117</span>&#160;</div><div class="line"><a name="l02118"></a><span class="lineno"> 2118</span>&#160; <span class="comment">// Parent list</span></div><div class="line"><a name="l02119"></a><span class="lineno"> 2119</span>&#160; <span class="keyword">auto</span> parentsNode = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;ParentList&quot;</span>);</div><div class="line"><a name="l02120"></a><span class="lineno"> 2120</span>&#160; <span class="keyword">auto</span> parentList = cLine-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l02121"></a><span class="lineno"> 2121</span>&#160; <span class="keywordtype">int</span> nodeIndex = 0;</div><div class="line"><a name="l02122"></a><span class="lineno"> 2122</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itP = parentList.begin(), itPEnd = parentList.end(); itP != itPEnd; ++itP) {</div><div class="line"><a name="l02123"></a><span class="lineno"> 2123</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itP;</div><div class="line"><a name="l02124"></a><span class="lineno"> 2124</span>&#160; <span class="keyword">auto</span> parentNode = AppendNode(doc, parentsNode, <span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02125"></a><span class="lineno"> 2125</span>&#160; <span class="keyword">auto</span> elementID = AppendNode(doc, parentNode, <span class="stringliteral">&quot;ElementID&quot;</span>);</div><div class="line"><a name="l02126"></a><span class="lineno"> 2126</span>&#160; SetNodeValue(doc, elementID, parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02127"></a><span class="lineno"> 2127</span>&#160; <span class="keyword">auto</span> nodeID = AppendNode(doc, parentNode, <span class="stringliteral">&quot;NodeID&quot;</span>);</div><div class="line"><a name="l02128"></a><span class="lineno"> 2128</span>&#160; SetNodeValue(doc, nodeID, cLine-&gt;GetNodeList()[nodeIndex]-&gt;GetID());</div><div class="line"><a name="l02129"></a><span class="lineno"> 2129</span>&#160; nodeIndex++;</div><div class="line"><a name="l02130"></a><span class="lineno"> 2130</span>&#160; }</div><div class="line"><a name="l02131"></a><span class="lineno"> 2131</span>&#160;</div><div class="line"><a name="l02132"></a><span class="lineno"> 2132</span>&#160; <span class="keyword">auto</span> parentLine = AppendNode(doc, cLineNode, <span class="stringliteral">&quot;ParentLine&quot;</span>);</div><div class="line"><a name="l02133"></a><span class="lineno"> 2133</span>&#160; <span class="keywordflow">if</span>(cLine-&gt;GetParentLine()) {</div><div class="line"><a name="l02134"></a><span class="lineno"> 2134</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* parent = cLine-&gt;GetParentLine();</div><div class="line"><a name="l02135"></a><span class="lineno"> 2135</span>&#160; SetNodeAttribute(doc, parentLine, <span class="stringliteral">&quot;ID&quot;</span>, parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>());</div><div class="line"><a name="l02136"></a><span class="lineno"> 2136</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l02137"></a><span class="lineno"> 2137</span>&#160; SetNodeAttribute(doc, parentLine, <span class="stringliteral">&quot;ID&quot;</span>, -1);</div><div class="line"><a name="l02138"></a><span class="lineno"> 2138</span>&#160; }</div><div class="line"><a name="l02139"></a><span class="lineno"> 2139</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02140"></a><span class="lineno"> 2140</span>&#160;}</div><div class="line"><a name="l02141"></a><span class="lineno"> 2141</span>&#160;</div><div class="line"><a name="l02142"></a><span class="lineno"> 2142</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControlElements(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02143"></a><span class="lineno"> 2143</span>&#160; rapidxml::xml_node&lt;&gt;* elementsNode,</div><div class="line"><a name="l02144"></a><span class="lineno"> 2144</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer)</div><div class="line"><a name="l02145"></a><span class="lineno"> 2145</span>&#160;{</div><div class="line"><a name="l02146"></a><span class="lineno"> 2146</span>&#160; std::vector&lt;ControlElement*&gt; elementList;</div><div class="line"><a name="l02147"></a><span class="lineno"> 2147</span>&#160; std::vector&lt;ConnectionLine*&gt; connectionList;</div><div class="line"><a name="l02148"></a><span class="lineno"> 2148</span>&#160;</div><div class="line"><a name="l02149"></a><span class="lineno"> 2149</span>&#160; <span class="comment">//{ Constant</span></div><div class="line"><a name="l02150"></a><span class="lineno"> 2150</span>&#160; <span class="keyword">auto</span> constListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ConstantList&quot;</span>);</div><div class="line"><a name="l02151"></a><span class="lineno"> 2151</span>&#160; <span class="keywordflow">if</span>(!constListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02152"></a><span class="lineno"> 2152</span>&#160; <span class="keyword">auto</span> constNode = constListNode-&gt;first_node(<span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l02153"></a><span class="lineno"> 2153</span>&#160; <span class="keywordflow">while</span>(constNode) {</div><div class="line"><a name="l02154"></a><span class="lineno"> 2154</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(constNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02155"></a><span class="lineno"> 2155</span>&#160; <a class="code" href="class_constant.html">Constant</a>* constant = <span class="keyword">new</span> <a class="code" href="class_constant.html">Constant</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02156"></a><span class="lineno"> 2156</span>&#160;</div><div class="line"><a name="l02157"></a><span class="lineno"> 2157</span>&#160; <span class="keyword">auto</span> cadPropNode = constNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02158"></a><span class="lineno"> 2158</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02159"></a><span class="lineno"> 2159</span>&#160;</div><div class="line"><a name="l02160"></a><span class="lineno"> 2160</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02161"></a><span class="lineno"> 2161</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02162"></a><span class="lineno"> 2162</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02163"></a><span class="lineno"> 2163</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02164"></a><span class="lineno"> 2164</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02165"></a><span class="lineno"> 2165</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02166"></a><span class="lineno"> 2166</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02167"></a><span class="lineno"> 2167</span>&#160;</div><div class="line"><a name="l02168"></a><span class="lineno"> 2168</span>&#160; <span class="keywordtype">double</span> value = GetNodeValueDouble(constNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02169"></a><span class="lineno"> 2169</span>&#160;</div><div class="line"><a name="l02170"></a><span class="lineno"> 2170</span>&#160; constant-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02171"></a><span class="lineno"> 2171</span>&#160; constant-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02172"></a><span class="lineno"> 2172</span>&#160; constant-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02173"></a><span class="lineno"> 2173</span>&#160; constant-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02174"></a><span class="lineno"> 2174</span>&#160; constant-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(constant-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02175"></a><span class="lineno"> 2175</span>&#160;</div><div class="line"><a name="l02176"></a><span class="lineno"> 2176</span>&#160; constant-&gt;SetValue(value);</div><div class="line"><a name="l02177"></a><span class="lineno"> 2177</span>&#160;</div><div class="line"><a name="l02178"></a><span class="lineno"> 2178</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02179"></a><span class="lineno"> 2179</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(constNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02180"></a><span class="lineno"> 2180</span>&#160;</div><div class="line"><a name="l02181"></a><span class="lineno"> 2181</span>&#160; constant-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02182"></a><span class="lineno"> 2182</span>&#160; constant-&gt;UpdatePoints();</div><div class="line"><a name="l02183"></a><span class="lineno"> 2183</span>&#160; elementList.push_back(constant);</div><div class="line"><a name="l02184"></a><span class="lineno"> 2184</span>&#160;</div><div class="line"><a name="l02185"></a><span class="lineno"> 2185</span>&#160; constNode = constNode-&gt;next_sibling(<span class="stringliteral">&quot;Constant&quot;</span>);</div><div class="line"><a name="l02186"></a><span class="lineno"> 2186</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02187"></a><span class="lineno"> 2187</span>&#160;</div><div class="line"><a name="l02188"></a><span class="lineno"> 2188</span>&#160; <span class="comment">//{ Exponential</span></div><div class="line"><a name="l02189"></a><span class="lineno"> 2189</span>&#160; <span class="keyword">auto</span> expListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ExponentialList&quot;</span>);</div><div class="line"><a name="l02190"></a><span class="lineno"> 2190</span>&#160; <span class="keywordflow">if</span>(!expListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02191"></a><span class="lineno"> 2191</span>&#160; <span class="keyword">auto</span> expNode = expListNode-&gt;first_node(<span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l02192"></a><span class="lineno"> 2192</span>&#160; <span class="keywordflow">while</span>(expNode) {</div><div class="line"><a name="l02193"></a><span class="lineno"> 2193</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(expNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02194"></a><span class="lineno"> 2194</span>&#160; <a class="code" href="class_exponential.html">Exponential</a>* exponential = <span class="keyword">new</span> <a class="code" href="class_exponential.html">Exponential</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02195"></a><span class="lineno"> 2195</span>&#160;</div><div class="line"><a name="l02196"></a><span class="lineno"> 2196</span>&#160; <span class="keyword">auto</span> cadPropNode = expNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02197"></a><span class="lineno"> 2197</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02198"></a><span class="lineno"> 2198</span>&#160;</div><div class="line"><a name="l02199"></a><span class="lineno"> 2199</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02200"></a><span class="lineno"> 2200</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02201"></a><span class="lineno"> 2201</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02202"></a><span class="lineno"> 2202</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02203"></a><span class="lineno"> 2203</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02204"></a><span class="lineno"> 2204</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02205"></a><span class="lineno"> 2205</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02206"></a><span class="lineno"> 2206</span>&#160;</div><div class="line"><a name="l02207"></a><span class="lineno"> 2207</span>&#160; <span class="keyword">auto</span> value = expNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02208"></a><span class="lineno"> 2208</span>&#160; <span class="keywordtype">double</span> a = GetNodeValueDouble(value, <span class="stringliteral">&quot;A&quot;</span>);</div><div class="line"><a name="l02209"></a><span class="lineno"> 2209</span>&#160; <span class="keywordtype">double</span> b = GetNodeValueDouble(value, <span class="stringliteral">&quot;B&quot;</span>);</div><div class="line"><a name="l02210"></a><span class="lineno"> 2210</span>&#160;</div><div class="line"><a name="l02211"></a><span class="lineno"> 2211</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02212"></a><span class="lineno"> 2212</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02213"></a><span class="lineno"> 2213</span>&#160; exponential-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02214"></a><span class="lineno"> 2214</span>&#160; exponential-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02215"></a><span class="lineno"> 2215</span>&#160; exponential-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(exponential-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02216"></a><span class="lineno"> 2216</span>&#160;</div><div class="line"><a name="l02217"></a><span class="lineno"> 2217</span>&#160; exponential-&gt;SetValues(a, b);</div><div class="line"><a name="l02218"></a><span class="lineno"> 2218</span>&#160;</div><div class="line"><a name="l02219"></a><span class="lineno"> 2219</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02220"></a><span class="lineno"> 2220</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(expNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02221"></a><span class="lineno"> 2221</span>&#160;</div><div class="line"><a name="l02222"></a><span class="lineno"> 2222</span>&#160; exponential-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02223"></a><span class="lineno"> 2223</span>&#160; exponential-&gt;UpdatePoints();</div><div class="line"><a name="l02224"></a><span class="lineno"> 2224</span>&#160; elementList.push_back(exponential);</div><div class="line"><a name="l02225"></a><span class="lineno"> 2225</span>&#160;</div><div class="line"><a name="l02226"></a><span class="lineno"> 2226</span>&#160; expNode = expNode-&gt;next_sibling(<span class="stringliteral">&quot;Exponential&quot;</span>);</div><div class="line"><a name="l02227"></a><span class="lineno"> 2227</span>&#160; } <span class="comment">//}</span></div><div class="line"><a name="l02228"></a><span class="lineno"> 2228</span>&#160;</div><div class="line"><a name="l02229"></a><span class="lineno"> 2229</span>&#160; <span class="comment">//{ Gain</span></div><div class="line"><a name="l02230"></a><span class="lineno"> 2230</span>&#160; <span class="keyword">auto</span> gainListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;GainList&quot;</span>);</div><div class="line"><a name="l02231"></a><span class="lineno"> 2231</span>&#160; <span class="keywordflow">if</span>(!gainListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02232"></a><span class="lineno"> 2232</span>&#160; <span class="keyword">auto</span> gainNode = gainListNode-&gt;first_node(<span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l02233"></a><span class="lineno"> 2233</span>&#160; <span class="keywordflow">while</span>(gainNode) {</div><div class="line"><a name="l02234"></a><span class="lineno"> 2234</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(gainNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02235"></a><span class="lineno"> 2235</span>&#160; <a class="code" href="class_gain.html">Gain</a>* gain = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02236"></a><span class="lineno"> 2236</span>&#160;</div><div class="line"><a name="l02237"></a><span class="lineno"> 2237</span>&#160; <span class="keyword">auto</span> cadPropNode = gainNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02238"></a><span class="lineno"> 2238</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02239"></a><span class="lineno"> 2239</span>&#160;</div><div class="line"><a name="l02240"></a><span class="lineno"> 2240</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02241"></a><span class="lineno"> 2241</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02242"></a><span class="lineno"> 2242</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02243"></a><span class="lineno"> 2243</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02244"></a><span class="lineno"> 2244</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02245"></a><span class="lineno"> 2245</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02246"></a><span class="lineno"> 2246</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02247"></a><span class="lineno"> 2247</span>&#160;</div><div class="line"><a name="l02248"></a><span class="lineno"> 2248</span>&#160; <span class="keywordtype">double</span> value = GetNodeValueDouble(gainNode, <span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02249"></a><span class="lineno"> 2249</span>&#160;</div><div class="line"><a name="l02250"></a><span class="lineno"> 2250</span>&#160; gain-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02251"></a><span class="lineno"> 2251</span>&#160; gain-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02252"></a><span class="lineno"> 2252</span>&#160; gain-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02253"></a><span class="lineno"> 2253</span>&#160; gain-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02254"></a><span class="lineno"> 2254</span>&#160; gain-&gt;SetValue(value);</div><div class="line"><a name="l02255"></a><span class="lineno"> 2255</span>&#160; gain-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(gain-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02256"></a><span class="lineno"> 2256</span>&#160;</div><div class="line"><a name="l02257"></a><span class="lineno"> 2257</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02258"></a><span class="lineno"> 2258</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(gainNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02259"></a><span class="lineno"> 2259</span>&#160;</div><div class="line"><a name="l02260"></a><span class="lineno"> 2260</span>&#160; gain-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02261"></a><span class="lineno"> 2261</span>&#160; gain-&gt;UpdatePoints();</div><div class="line"><a name="l02262"></a><span class="lineno"> 2262</span>&#160; elementList.push_back(gain);</div><div class="line"><a name="l02263"></a><span class="lineno"> 2263</span>&#160;</div><div class="line"><a name="l02264"></a><span class="lineno"> 2264</span>&#160; gainNode = gainNode-&gt;next_sibling(<span class="stringliteral">&quot;Gain&quot;</span>);</div><div class="line"><a name="l02265"></a><span class="lineno"> 2265</span>&#160; }</div><div class="line"><a name="l02266"></a><span class="lineno"> 2266</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02267"></a><span class="lineno"> 2267</span>&#160;</div><div class="line"><a name="l02268"></a><span class="lineno"> 2268</span>&#160; <span class="comment">//{ IO</span></div><div class="line"><a name="l02269"></a><span class="lineno"> 2269</span>&#160; <span class="keyword">auto</span> ioListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;IOList&quot;</span>);</div><div class="line"><a name="l02270"></a><span class="lineno"> 2270</span>&#160; <span class="keywordflow">if</span>(!ioListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02271"></a><span class="lineno"> 2271</span>&#160; <span class="keyword">auto</span> ioNode = ioListNode-&gt;first_node(<span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l02272"></a><span class="lineno"> 2272</span>&#160; <span class="keywordflow">while</span>(ioNode) {</div><div class="line"><a name="l02273"></a><span class="lineno"> 2273</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(ioNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02274"></a><span class="lineno"> 2274</span>&#160;</div><div class="line"><a name="l02275"></a><span class="lineno"> 2275</span>&#160; <span class="keyword">auto</span> cadPropNode = ioNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02276"></a><span class="lineno"> 2276</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02277"></a><span class="lineno"> 2277</span>&#160;</div><div class="line"><a name="l02278"></a><span class="lineno"> 2278</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02279"></a><span class="lineno"> 2279</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02280"></a><span class="lineno"> 2280</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02281"></a><span class="lineno"> 2281</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02282"></a><span class="lineno"> 2282</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02283"></a><span class="lineno"> 2283</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02284"></a><span class="lineno"> 2284</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02285"></a><span class="lineno"> 2285</span>&#160;</div><div class="line"><a name="l02286"></a><span class="lineno"> 2286</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02287"></a><span class="lineno"> 2287</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(ioNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02288"></a><span class="lineno"> 2288</span>&#160;</div><div class="line"><a name="l02289"></a><span class="lineno"> 2289</span>&#160; IOControl::IOFlags value = <span class="keyword">static_cast&lt;</span>IOControl::IOFlags<span class="keyword">&gt;</span>(GetNodeValueInt(ioNode, <span class="stringliteral">&quot;Value&quot;</span>));</div><div class="line"><a name="l02290"></a><span class="lineno"> 2290</span>&#160; <span class="keywordtype">int</span> ioFlags = GetNodeValueInt(ioNode, <span class="stringliteral">&quot;IOFlags&quot;</span>);</div><div class="line"><a name="l02291"></a><span class="lineno"> 2291</span>&#160;</div><div class="line"><a name="l02292"></a><span class="lineno"> 2292</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* io = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(ioFlags, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02293"></a><span class="lineno"> 2293</span>&#160;</div><div class="line"><a name="l02294"></a><span class="lineno"> 2294</span>&#160; io-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02295"></a><span class="lineno"> 2295</span>&#160; io-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02296"></a><span class="lineno"> 2296</span>&#160; io-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02297"></a><span class="lineno"> 2297</span>&#160; io-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02298"></a><span class="lineno"> 2298</span>&#160; io-&gt;SetValue(value);</div><div class="line"><a name="l02299"></a><span class="lineno"> 2299</span>&#160; io-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(io-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02300"></a><span class="lineno"> 2300</span>&#160; io-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02301"></a><span class="lineno"> 2301</span>&#160; io-&gt;UpdatePoints();</div><div class="line"><a name="l02302"></a><span class="lineno"> 2302</span>&#160; elementList.push_back(io);</div><div class="line"><a name="l02303"></a><span class="lineno"> 2303</span>&#160;</div><div class="line"><a name="l02304"></a><span class="lineno"> 2304</span>&#160; ioNode = ioNode-&gt;next_sibling(<span class="stringliteral">&quot;IO&quot;</span>);</div><div class="line"><a name="l02305"></a><span class="lineno"> 2305</span>&#160; }</div><div class="line"><a name="l02306"></a><span class="lineno"> 2306</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02307"></a><span class="lineno"> 2307</span>&#160;</div><div class="line"><a name="l02308"></a><span class="lineno"> 2308</span>&#160; <span class="comment">//{ Limiter</span></div><div class="line"><a name="l02309"></a><span class="lineno"> 2309</span>&#160; <span class="keyword">auto</span> limiterListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;LimiterList&quot;</span>);</div><div class="line"><a name="l02310"></a><span class="lineno"> 2310</span>&#160; <span class="keywordflow">if</span>(!limiterListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02311"></a><span class="lineno"> 2311</span>&#160; <span class="keyword">auto</span> limiterNode = limiterListNode-&gt;first_node(<span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l02312"></a><span class="lineno"> 2312</span>&#160; <span class="keywordflow">while</span>(limiterNode) {</div><div class="line"><a name="l02313"></a><span class="lineno"> 2313</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(limiterNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02314"></a><span class="lineno"> 2314</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02315"></a><span class="lineno"> 2315</span>&#160;</div><div class="line"><a name="l02316"></a><span class="lineno"> 2316</span>&#160; <span class="keyword">auto</span> cadPropNode = limiterNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02317"></a><span class="lineno"> 2317</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02318"></a><span class="lineno"> 2318</span>&#160;</div><div class="line"><a name="l02319"></a><span class="lineno"> 2319</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02320"></a><span class="lineno"> 2320</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02321"></a><span class="lineno"> 2321</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02322"></a><span class="lineno"> 2322</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02323"></a><span class="lineno"> 2323</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02324"></a><span class="lineno"> 2324</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02325"></a><span class="lineno"> 2325</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02326"></a><span class="lineno"> 2326</span>&#160;</div><div class="line"><a name="l02327"></a><span class="lineno"> 2327</span>&#160; <span class="keywordtype">double</span> upLimit = GetNodeValueDouble(limiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02328"></a><span class="lineno"> 2328</span>&#160; <span class="keywordtype">double</span> lowLimit = GetNodeValueDouble(limiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02329"></a><span class="lineno"> 2329</span>&#160;</div><div class="line"><a name="l02330"></a><span class="lineno"> 2330</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02331"></a><span class="lineno"> 2331</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(limiterNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02332"></a><span class="lineno"> 2332</span>&#160;</div><div class="line"><a name="l02333"></a><span class="lineno"> 2333</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02334"></a><span class="lineno"> 2334</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02335"></a><span class="lineno"> 2335</span>&#160; limiter-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02336"></a><span class="lineno"> 2336</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02337"></a><span class="lineno"> 2337</span>&#160; limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l02338"></a><span class="lineno"> 2338</span>&#160; limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l02339"></a><span class="lineno"> 2339</span>&#160;</div><div class="line"><a name="l02340"></a><span class="lineno"> 2340</span>&#160; limiter-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02341"></a><span class="lineno"> 2341</span>&#160; limiter-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02342"></a><span class="lineno"> 2342</span>&#160; limiter-&gt;UpdatePoints();</div><div class="line"><a name="l02343"></a><span class="lineno"> 2343</span>&#160; elementList.push_back(limiter);</div><div class="line"><a name="l02344"></a><span class="lineno"> 2344</span>&#160;</div><div class="line"><a name="l02345"></a><span class="lineno"> 2345</span>&#160; limiterNode = limiterNode-&gt;next_sibling(<span class="stringliteral">&quot;Limiter&quot;</span>);</div><div class="line"><a name="l02346"></a><span class="lineno"> 2346</span>&#160; }</div><div class="line"><a name="l02347"></a><span class="lineno"> 2347</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02348"></a><span class="lineno"> 2348</span>&#160;</div><div class="line"><a name="l02349"></a><span class="lineno"> 2349</span>&#160; <span class="comment">//{ Multiplier</span></div><div class="line"><a name="l02350"></a><span class="lineno"> 2350</span>&#160; <span class="keyword">auto</span> multiplierListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;MultiplierList&quot;</span>);</div><div class="line"><a name="l02351"></a><span class="lineno"> 2351</span>&#160; <span class="keywordflow">if</span>(!multiplierListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02352"></a><span class="lineno"> 2352</span>&#160; <span class="keyword">auto</span> multiplierNode = multiplierListNode-&gt;first_node(<span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l02353"></a><span class="lineno"> 2353</span>&#160; <span class="keywordflow">while</span>(multiplierNode) {</div><div class="line"><a name="l02354"></a><span class="lineno"> 2354</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(multiplierNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02355"></a><span class="lineno"> 2355</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* multiplier = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02356"></a><span class="lineno"> 2356</span>&#160;</div><div class="line"><a name="l02357"></a><span class="lineno"> 2357</span>&#160; <span class="keyword">auto</span> cadPropNode = multiplierNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02358"></a><span class="lineno"> 2358</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02359"></a><span class="lineno"> 2359</span>&#160;</div><div class="line"><a name="l02360"></a><span class="lineno"> 2360</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02361"></a><span class="lineno"> 2361</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02362"></a><span class="lineno"> 2362</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02363"></a><span class="lineno"> 2363</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02364"></a><span class="lineno"> 2364</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02365"></a><span class="lineno"> 2365</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02366"></a><span class="lineno"> 2366</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02367"></a><span class="lineno"> 2367</span>&#160;</div><div class="line"><a name="l02368"></a><span class="lineno"> 2368</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02369"></a><span class="lineno"> 2369</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(multiplierNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02370"></a><span class="lineno"> 2370</span>&#160;</div><div class="line"><a name="l02371"></a><span class="lineno"> 2371</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02372"></a><span class="lineno"> 2372</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02373"></a><span class="lineno"> 2373</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02374"></a><span class="lineno"> 2374</span>&#160; multiplier-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02375"></a><span class="lineno"> 2375</span>&#160;</div><div class="line"><a name="l02376"></a><span class="lineno"> 2376</span>&#160; multiplier-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(multiplier-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02377"></a><span class="lineno"> 2377</span>&#160; multiplier-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02378"></a><span class="lineno"> 2378</span>&#160; multiplier-&gt;UpdatePoints();</div><div class="line"><a name="l02379"></a><span class="lineno"> 2379</span>&#160; elementList.push_back(multiplier);</div><div class="line"><a name="l02380"></a><span class="lineno"> 2380</span>&#160;</div><div class="line"><a name="l02381"></a><span class="lineno"> 2381</span>&#160; multiplierNode = multiplierNode-&gt;next_sibling(<span class="stringliteral">&quot;Multiplier&quot;</span>);</div><div class="line"><a name="l02382"></a><span class="lineno"> 2382</span>&#160; }</div><div class="line"><a name="l02383"></a><span class="lineno"> 2383</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02384"></a><span class="lineno"> 2384</span>&#160;</div><div class="line"><a name="l02385"></a><span class="lineno"> 2385</span>&#160; <span class="comment">//{ Rate limiter</span></div><div class="line"><a name="l02386"></a><span class="lineno"> 2386</span>&#160; <span class="keyword">auto</span> rateLimiterListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;RateLimiterList&quot;</span>);</div><div class="line"><a name="l02387"></a><span class="lineno"> 2387</span>&#160; <span class="keywordflow">if</span>(!rateLimiterListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02388"></a><span class="lineno"> 2388</span>&#160; <span class="keyword">auto</span> rateLimiterNode = rateLimiterListNode-&gt;first_node(<span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l02389"></a><span class="lineno"> 2389</span>&#160; <span class="keywordflow">while</span>(rateLimiterNode) {</div><div class="line"><a name="l02390"></a><span class="lineno"> 2390</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(rateLimiterNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02391"></a><span class="lineno"> 2391</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02392"></a><span class="lineno"> 2392</span>&#160;</div><div class="line"><a name="l02393"></a><span class="lineno"> 2393</span>&#160; <span class="keyword">auto</span> cadPropNode = rateLimiterNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02394"></a><span class="lineno"> 2394</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02395"></a><span class="lineno"> 2395</span>&#160;</div><div class="line"><a name="l02396"></a><span class="lineno"> 2396</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02397"></a><span class="lineno"> 2397</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02398"></a><span class="lineno"> 2398</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02399"></a><span class="lineno"> 2399</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02400"></a><span class="lineno"> 2400</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02401"></a><span class="lineno"> 2401</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02402"></a><span class="lineno"> 2402</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02403"></a><span class="lineno"> 2403</span>&#160;</div><div class="line"><a name="l02404"></a><span class="lineno"> 2404</span>&#160; <span class="keywordtype">double</span> upLimit = GetNodeValueDouble(rateLimiterNode, <span class="stringliteral">&quot;UpperLimit&quot;</span>);</div><div class="line"><a name="l02405"></a><span class="lineno"> 2405</span>&#160; <span class="keywordtype">double</span> lowLimit = GetNodeValueDouble(rateLimiterNode, <span class="stringliteral">&quot;LowerLimit&quot;</span>);</div><div class="line"><a name="l02406"></a><span class="lineno"> 2406</span>&#160;</div><div class="line"><a name="l02407"></a><span class="lineno"> 2407</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02408"></a><span class="lineno"> 2408</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(rateLimiterNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02409"></a><span class="lineno"> 2409</span>&#160;</div><div class="line"><a name="l02410"></a><span class="lineno"> 2410</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02411"></a><span class="lineno"> 2411</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02412"></a><span class="lineno"> 2412</span>&#160; limiter-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02413"></a><span class="lineno"> 2413</span>&#160; limiter-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02414"></a><span class="lineno"> 2414</span>&#160; limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l02415"></a><span class="lineno"> 2415</span>&#160; limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l02416"></a><span class="lineno"> 2416</span>&#160;</div><div class="line"><a name="l02417"></a><span class="lineno"> 2417</span>&#160; limiter-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(limiter-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02418"></a><span class="lineno"> 2418</span>&#160; limiter-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02419"></a><span class="lineno"> 2419</span>&#160; limiter-&gt;UpdatePoints();</div><div class="line"><a name="l02420"></a><span class="lineno"> 2420</span>&#160; elementList.push_back(limiter);</div><div class="line"><a name="l02421"></a><span class="lineno"> 2421</span>&#160;</div><div class="line"><a name="l02422"></a><span class="lineno"> 2422</span>&#160; rateLimiterNode = rateLimiterNode-&gt;next_sibling(<span class="stringliteral">&quot;RateLimiter&quot;</span>);</div><div class="line"><a name="l02423"></a><span class="lineno"> 2423</span>&#160; }</div><div class="line"><a name="l02424"></a><span class="lineno"> 2424</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02425"></a><span class="lineno"> 2425</span>&#160;</div><div class="line"><a name="l02426"></a><span class="lineno"> 2426</span>&#160; <span class="comment">//{ Sum</span></div><div class="line"><a name="l02427"></a><span class="lineno"> 2427</span>&#160; <span class="keyword">auto</span> sumListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;SumList&quot;</span>);</div><div class="line"><a name="l02428"></a><span class="lineno"> 2428</span>&#160; <span class="keywordflow">if</span>(!sumListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02429"></a><span class="lineno"> 2429</span>&#160; <span class="keyword">auto</span> sumNode = sumListNode-&gt;first_node(<span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02430"></a><span class="lineno"> 2430</span>&#160; <span class="keywordflow">while</span>(sumNode) {</div><div class="line"><a name="l02431"></a><span class="lineno"> 2431</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(sumNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02432"></a><span class="lineno"> 2432</span>&#160; <a class="code" href="class_sum.html">Sum</a>* sum = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02433"></a><span class="lineno"> 2433</span>&#160;</div><div class="line"><a name="l02434"></a><span class="lineno"> 2434</span>&#160; <span class="keyword">auto</span> cadPropNode = sumNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02435"></a><span class="lineno"> 2435</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02436"></a><span class="lineno"> 2436</span>&#160;</div><div class="line"><a name="l02437"></a><span class="lineno"> 2437</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02438"></a><span class="lineno"> 2438</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02439"></a><span class="lineno"> 2439</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02440"></a><span class="lineno"> 2440</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02441"></a><span class="lineno"> 2441</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02442"></a><span class="lineno"> 2442</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02443"></a><span class="lineno"> 2443</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02444"></a><span class="lineno"> 2444</span>&#160;</div><div class="line"><a name="l02445"></a><span class="lineno"> 2445</span>&#160; std::vector&lt;Sum::Signal&gt; signs;</div><div class="line"><a name="l02446"></a><span class="lineno"> 2446</span>&#160; <span class="keyword">auto</span> signsNode = sumNode-&gt;first_node(<span class="stringliteral">&quot;Signs&quot;</span>);</div><div class="line"><a name="l02447"></a><span class="lineno"> 2447</span>&#160; <span class="keyword">auto</span> sign = signsNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02448"></a><span class="lineno"> 2448</span>&#160; <span class="keywordflow">while</span>(sign) {</div><div class="line"><a name="l02449"></a><span class="lineno"> 2449</span>&#160; <span class="keywordtype">long</span> value;</div><div class="line"><a name="l02450"></a><span class="lineno"> 2450</span>&#160; wxString(sign-&gt;value()).ToCLong(&amp;value);</div><div class="line"><a name="l02451"></a><span class="lineno"> 2451</span>&#160; signs.push_back(static_cast&lt;Sum::Signal&gt;(value));</div><div class="line"><a name="l02452"></a><span class="lineno"> 2452</span>&#160; sign = sign-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02453"></a><span class="lineno"> 2453</span>&#160; }</div><div class="line"><a name="l02454"></a><span class="lineno"> 2454</span>&#160; sum-&gt;SetSignalList(signs);</div><div class="line"><a name="l02455"></a><span class="lineno"> 2455</span>&#160;</div><div class="line"><a name="l02456"></a><span class="lineno"> 2456</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02457"></a><span class="lineno"> 2457</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(sumNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02458"></a><span class="lineno"> 2458</span>&#160;</div><div class="line"><a name="l02459"></a><span class="lineno"> 2459</span>&#160; sum-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02460"></a><span class="lineno"> 2460</span>&#160; sum-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02461"></a><span class="lineno"> 2461</span>&#160; sum-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02462"></a><span class="lineno"> 2462</span>&#160; sum-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02463"></a><span class="lineno"> 2463</span>&#160;</div><div class="line"><a name="l02464"></a><span class="lineno"> 2464</span>&#160; sum-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(sum-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02465"></a><span class="lineno"> 2465</span>&#160; sum-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02466"></a><span class="lineno"> 2466</span>&#160; sum-&gt;UpdatePoints();</div><div class="line"><a name="l02467"></a><span class="lineno"> 2467</span>&#160; elementList.push_back(sum);</div><div class="line"><a name="l02468"></a><span class="lineno"> 2468</span>&#160;</div><div class="line"><a name="l02469"></a><span class="lineno"> 2469</span>&#160; sumNode = sumNode-&gt;next_sibling(<span class="stringliteral">&quot;Sum&quot;</span>);</div><div class="line"><a name="l02470"></a><span class="lineno"> 2470</span>&#160; }</div><div class="line"><a name="l02471"></a><span class="lineno"> 2471</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02472"></a><span class="lineno"> 2472</span>&#160;</div><div class="line"><a name="l02473"></a><span class="lineno"> 2473</span>&#160; <span class="comment">//{ Transfer function</span></div><div class="line"><a name="l02474"></a><span class="lineno"> 2474</span>&#160; <span class="keyword">auto</span> tfListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;TransferFunctionList&quot;</span>);</div><div class="line"><a name="l02475"></a><span class="lineno"> 2475</span>&#160; <span class="keywordflow">if</span>(!tfListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02476"></a><span class="lineno"> 2476</span>&#160; <span class="keyword">auto</span> tfNode = tfListNode-&gt;first_node(<span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02477"></a><span class="lineno"> 2477</span>&#160; <span class="keywordflow">while</span>(tfNode) {</div><div class="line"><a name="l02478"></a><span class="lineno"> 2478</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(tfNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02479"></a><span class="lineno"> 2479</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* tf = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02480"></a><span class="lineno"> 2480</span>&#160;</div><div class="line"><a name="l02481"></a><span class="lineno"> 2481</span>&#160; <span class="keyword">auto</span> cadPropNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02482"></a><span class="lineno"> 2482</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02483"></a><span class="lineno"> 2483</span>&#160;</div><div class="line"><a name="l02484"></a><span class="lineno"> 2484</span>&#160; <span class="keyword">auto</span> position = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02485"></a><span class="lineno"> 2485</span>&#160; <span class="keywordtype">double</span> posX = GetNodeValueDouble(position, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02486"></a><span class="lineno"> 2486</span>&#160; <span class="keywordtype">double</span> posY = GetNodeValueDouble(position, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02487"></a><span class="lineno"> 2487</span>&#160; <span class="keyword">auto</span> size = cadPropNode-&gt;first_node(<span class="stringliteral">&quot;Size&quot;</span>);</div><div class="line"><a name="l02488"></a><span class="lineno"> 2488</span>&#160; <span class="keywordtype">double</span> width = GetNodeValueDouble(size, <span class="stringliteral">&quot;Width&quot;</span>);</div><div class="line"><a name="l02489"></a><span class="lineno"> 2489</span>&#160; <span class="keywordtype">double</span> height = GetNodeValueDouble(size, <span class="stringliteral">&quot;Height&quot;</span>);</div><div class="line"><a name="l02490"></a><span class="lineno"> 2490</span>&#160; <span class="keywordtype">double</span> angle = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02491"></a><span class="lineno"> 2491</span>&#160;</div><div class="line"><a name="l02492"></a><span class="lineno"> 2492</span>&#160; std::vector&lt;double&gt; numerator, denominator;</div><div class="line"><a name="l02493"></a><span class="lineno"> 2493</span>&#160; <span class="keyword">auto</span> numeratorNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;Numerator&quot;</span>);</div><div class="line"><a name="l02494"></a><span class="lineno"> 2494</span>&#160; <span class="keyword">auto</span> nValue = numeratorNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02495"></a><span class="lineno"> 2495</span>&#160; <span class="keywordflow">while</span>(nValue) {</div><div class="line"><a name="l02496"></a><span class="lineno"> 2496</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l02497"></a><span class="lineno"> 2497</span>&#160; wxString(nValue-&gt;value()).ToCDouble(&amp;value);</div><div class="line"><a name="l02498"></a><span class="lineno"> 2498</span>&#160; numerator.push_back(value);</div><div class="line"><a name="l02499"></a><span class="lineno"> 2499</span>&#160; nValue = nValue-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02500"></a><span class="lineno"> 2500</span>&#160; }</div><div class="line"><a name="l02501"></a><span class="lineno"> 2501</span>&#160; <span class="keyword">auto</span> denominatorNode = tfNode-&gt;first_node(<span class="stringliteral">&quot;Denominator&quot;</span>);</div><div class="line"><a name="l02502"></a><span class="lineno"> 2502</span>&#160; <span class="keyword">auto</span> dValue = denominatorNode-&gt;first_node(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02503"></a><span class="lineno"> 2503</span>&#160; <span class="keywordflow">while</span>(dValue) {</div><div class="line"><a name="l02504"></a><span class="lineno"> 2504</span>&#160; <span class="keywordtype">double</span> value = 0.0;</div><div class="line"><a name="l02505"></a><span class="lineno"> 2505</span>&#160; wxString(dValue-&gt;value()).ToCDouble(&amp;value);</div><div class="line"><a name="l02506"></a><span class="lineno"> 2506</span>&#160; denominator.push_back(value);</div><div class="line"><a name="l02507"></a><span class="lineno"> 2507</span>&#160; dValue = dValue-&gt;next_sibling(<span class="stringliteral">&quot;Value&quot;</span>);</div><div class="line"><a name="l02508"></a><span class="lineno"> 2508</span>&#160; }</div><div class="line"><a name="l02509"></a><span class="lineno"> 2509</span>&#160;</div><div class="line"><a name="l02510"></a><span class="lineno"> 2510</span>&#160; std::vector&lt;Node*&gt; nodeVector;</div><div class="line"><a name="l02511"></a><span class="lineno"> 2511</span>&#160; <span class="keywordflow">if</span>(!OpenControlNodeList(tfNode, nodeVector)) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02512"></a><span class="lineno"> 2512</span>&#160;</div><div class="line"><a name="l02513"></a><span class="lineno"> 2513</span>&#160; tf-&gt;<a class="code" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(width);</div><div class="line"><a name="l02514"></a><span class="lineno"> 2514</span>&#160; tf-&gt;<a class="code" href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">SetHeight</a>(height);</div><div class="line"><a name="l02515"></a><span class="lineno"> 2515</span>&#160; tf-&gt;<a class="code" href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">SetAngle</a>(angle);</div><div class="line"><a name="l02516"></a><span class="lineno"> 2516</span>&#160; tf-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(wxPoint2DDouble(posX, posY));</div><div class="line"><a name="l02517"></a><span class="lineno"> 2517</span>&#160;</div><div class="line"><a name="l02518"></a><span class="lineno"> 2518</span>&#160; tf-&gt;SetNumerator(numerator);</div><div class="line"><a name="l02519"></a><span class="lineno"> 2519</span>&#160; tf-&gt;SetDenominator(denominator);</div><div class="line"><a name="l02520"></a><span class="lineno"> 2520</span>&#160;</div><div class="line"><a name="l02521"></a><span class="lineno"> 2521</span>&#160; tf-&gt;<a class="code" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(tf-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>());</div><div class="line"><a name="l02522"></a><span class="lineno"> 2522</span>&#160; tf-&gt;SetNodeList(nodeVector);</div><div class="line"><a name="l02523"></a><span class="lineno"> 2523</span>&#160;</div><div class="line"><a name="l02524"></a><span class="lineno"> 2524</span>&#160; tf-&gt;UpdateTFText();</div><div class="line"><a name="l02525"></a><span class="lineno"> 2525</span>&#160;</div><div class="line"><a name="l02526"></a><span class="lineno"> 2526</span>&#160; elementList.push_back(tf);</div><div class="line"><a name="l02527"></a><span class="lineno"> 2527</span>&#160;</div><div class="line"><a name="l02528"></a><span class="lineno"> 2528</span>&#160; tfNode = tfNode-&gt;next_sibling(<span class="stringliteral">&quot;TransferFunction&quot;</span>);</div><div class="line"><a name="l02529"></a><span class="lineno"> 2529</span>&#160; }</div><div class="line"><a name="l02530"></a><span class="lineno"> 2530</span>&#160; <span class="comment">//}</span></div><div class="line"><a name="l02531"></a><span class="lineno"> 2531</span>&#160;</div><div class="line"><a name="l02532"></a><span class="lineno"> 2532</span>&#160; <span class="comment">// Connection line</span></div><div class="line"><a name="l02533"></a><span class="lineno"> 2533</span>&#160; <span class="keyword">auto</span> connectionListNode = elementsNode-&gt;first_node(<span class="stringliteral">&quot;ConnectionList&quot;</span>);</div><div class="line"><a name="l02534"></a><span class="lineno"> 2534</span>&#160; <span class="keywordflow">if</span>(!connectionListNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02535"></a><span class="lineno"> 2535</span>&#160; <span class="keyword">auto</span> connNode = connectionListNode-&gt;first_node(<span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02536"></a><span class="lineno"> 2536</span>&#160; <span class="keywordflow">while</span>(connNode) {</div><div class="line"><a name="l02537"></a><span class="lineno"> 2537</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = NULL;</div><div class="line"><a name="l02538"></a><span class="lineno"> 2538</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = GetAttributeValueInt(connNode, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02539"></a><span class="lineno"> 2539</span>&#160;</div><div class="line"><a name="l02540"></a><span class="lineno"> 2540</span>&#160; <span class="keyword">auto</span> cadPropNode = connNode-&gt;first_node(<span class="stringliteral">&quot;CADProperties&quot;</span>);</div><div class="line"><a name="l02541"></a><span class="lineno"> 2541</span>&#160; <span class="keywordflow">if</span>(!cadPropNode) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02542"></a><span class="lineno"> 2542</span>&#160; <span class="keywordtype">double</span> offset = GetNodeValueDouble(cadPropNode, <span class="stringliteral">&quot;Offset&quot;</span>);</div><div class="line"><a name="l02543"></a><span class="lineno"> 2543</span>&#160;</div><div class="line"><a name="l02544"></a><span class="lineno"> 2544</span>&#160; <span class="keyword">auto</span> parentList = connNode-&gt;first_node(<span class="stringliteral">&quot;ParentList&quot;</span>);</div><div class="line"><a name="l02545"></a><span class="lineno"> 2545</span>&#160; <span class="keywordflow">if</span>(!parentList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02546"></a><span class="lineno"> 2546</span>&#160;</div><div class="line"><a name="l02547"></a><span class="lineno"> 2547</span>&#160; <span class="keyword">auto</span> parentNode = parentList-&gt;first_node(<span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02548"></a><span class="lineno"> 2548</span>&#160; <span class="keywordtype">bool</span> firstNode = <span class="keyword">true</span>;</div><div class="line"><a name="l02549"></a><span class="lineno"> 2549</span>&#160; <span class="keywordflow">while</span>(parentNode) {</div><div class="line"><a name="l02550"></a><span class="lineno"> 2550</span>&#160; <span class="keywordtype">int</span> elementID = GetNodeValueInt(parentNode, <span class="stringliteral">&quot;ElementID&quot;</span>);</div><div class="line"><a name="l02551"></a><span class="lineno"> 2551</span>&#160; <span class="keywordtype">int</span> nodeID = GetNodeValueInt(parentNode, <span class="stringliteral">&quot;NodeID&quot;</span>);</div><div class="line"><a name="l02552"></a><span class="lineno"> 2552</span>&#160;</div><div class="line"><a name="l02553"></a><span class="lineno"> 2553</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = GetControlElementFromID(elementList, elementID);</div><div class="line"><a name="l02554"></a><span class="lineno"> 2554</span>&#160; <a class="code" href="class_node.html">Node</a>* node = element-&gt;GetNodeList()[nodeID];</div><div class="line"><a name="l02555"></a><span class="lineno"> 2555</span>&#160;</div><div class="line"><a name="l02556"></a><span class="lineno"> 2556</span>&#160; <span class="keywordflow">if</span>(firstNode) cLine = <span class="keyword">new</span> <a class="code" href="class_connection_line.html">ConnectionLine</a>(node, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02557"></a><span class="lineno"> 2557</span>&#160; cLine-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element);</div><div class="line"><a name="l02558"></a><span class="lineno"> 2558</span>&#160; element-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(cLine);</div><div class="line"><a name="l02559"></a><span class="lineno"> 2559</span>&#160; <span class="keywordflow">if</span>(!firstNode) cLine-&gt;AppendNode(node, element);</div><div class="line"><a name="l02560"></a><span class="lineno"> 2560</span>&#160;</div><div class="line"><a name="l02561"></a><span class="lineno"> 2561</span>&#160; <span class="keywordflow">if</span>(firstNode) firstNode = <span class="keyword">false</span>;</div><div class="line"><a name="l02562"></a><span class="lineno"> 2562</span>&#160; parentNode = parentNode-&gt;next_sibling(<span class="stringliteral">&quot;Parent&quot;</span>);</div><div class="line"><a name="l02563"></a><span class="lineno"> 2563</span>&#160; }</div><div class="line"><a name="l02564"></a><span class="lineno"> 2564</span>&#160;</div><div class="line"><a name="l02565"></a><span class="lineno"> 2565</span>&#160; <span class="keyword">auto</span> parentLine = connNode-&gt;first_node(<span class="stringliteral">&quot;ParentLine&quot;</span>);</div><div class="line"><a name="l02566"></a><span class="lineno"> 2566</span>&#160; <span class="keywordflow">if</span>(!parentLine) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02567"></a><span class="lineno"> 2567</span>&#160; <span class="keywordtype">int</span> parentLineID = GetAttributeValueInt(parentLine, <span class="stringliteral">&quot;ID&quot;</span>);</div><div class="line"><a name="l02568"></a><span class="lineno"> 2568</span>&#160; <span class="keywordflow">if</span>(parentLineID != -1) {</div><div class="line"><a name="l02569"></a><span class="lineno"> 2569</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = connectionList.begin(), itEnd = connectionList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02570"></a><span class="lineno"> 2570</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* parent = *it;</div><div class="line"><a name="l02571"></a><span class="lineno"> 2571</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == parentLineID) {</div><div class="line"><a name="l02572"></a><span class="lineno"> 2572</span>&#160; cLine-&gt;SetParentLine(parent);</div><div class="line"><a name="l02573"></a><span class="lineno"> 2573</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(cLine);</div><div class="line"><a name="l02574"></a><span class="lineno"> 2574</span>&#160; }</div><div class="line"><a name="l02575"></a><span class="lineno"> 2575</span>&#160; }</div><div class="line"><a name="l02576"></a><span class="lineno"> 2576</span>&#160; }</div><div class="line"><a name="l02577"></a><span class="lineno"> 2577</span>&#160;</div><div class="line"><a name="l02578"></a><span class="lineno"> 2578</span>&#160; cLine-&gt;SetOffset(offset);</div><div class="line"><a name="l02579"></a><span class="lineno"> 2579</span>&#160; cLine-&gt;UpdatePoints();</div><div class="line"><a name="l02580"></a><span class="lineno"> 2580</span>&#160; connectionList.push_back(cLine);</div><div class="line"><a name="l02581"></a><span class="lineno"> 2581</span>&#160; connNode = connNode-&gt;next_sibling(<span class="stringliteral">&quot;Connection&quot;</span>);</div><div class="line"><a name="l02582"></a><span class="lineno"> 2582</span>&#160; }</div><div class="line"><a name="l02583"></a><span class="lineno"> 2583</span>&#160; ctrlContainer-&gt;FillContainer(elementList, connectionList);</div><div class="line"><a name="l02584"></a><span class="lineno"> 2584</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02585"></a><span class="lineno"> 2585</span>&#160;}</div><div class="line"><a name="l02586"></a><span class="lineno"> 2586</span>&#160;</div><div class="line"><a name="l02587"></a><span class="lineno"> 2587</span>&#160;<span class="keywordtype">void</span> FileHanding::SaveControlNodes(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02588"></a><span class="lineno"> 2588</span>&#160; rapidxml::xml_node&lt;&gt;* nodesN,</div><div class="line"><a name="l02589"></a><span class="lineno"> 2589</span>&#160; std::vector&lt;Node*&gt; nodeList)</div><div class="line"><a name="l02590"></a><span class="lineno"> 2590</span>&#160;{</div><div class="line"><a name="l02591"></a><span class="lineno"> 2591</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l02592"></a><span class="lineno"> 2592</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = nodeList.begin(), itEnd = nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02593"></a><span class="lineno"> 2593</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l02594"></a><span class="lineno"> 2594</span>&#160; node-&gt;SetID(<span class="keywordtype">id</span>);</div><div class="line"><a name="l02595"></a><span class="lineno"> 2595</span>&#160; <span class="keyword">auto</span> nodeN = AppendNode(doc, nodesN, <span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02596"></a><span class="lineno"> 2596</span>&#160; SetNodeAttribute(doc, nodeN, <span class="stringliteral">&quot;ID&quot;</span>, <span class="keywordtype">id</span>);</div><div class="line"><a name="l02597"></a><span class="lineno"> 2597</span>&#160; <span class="keyword">auto</span> nodePosition = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02598"></a><span class="lineno"> 2598</span>&#160; <span class="keyword">auto</span> posNodeX = AppendNode(doc, nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02599"></a><span class="lineno"> 2599</span>&#160; SetNodeValue(doc, posNodeX, node-&gt;GetPosition().m_x);</div><div class="line"><a name="l02600"></a><span class="lineno"> 2600</span>&#160; <span class="keyword">auto</span> posNodeY = AppendNode(doc, nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02601"></a><span class="lineno"> 2601</span>&#160; SetNodeValue(doc, posNodeY, node-&gt;GetPosition().m_y);</div><div class="line"><a name="l02602"></a><span class="lineno"> 2602</span>&#160; <span class="keyword">auto</span> angle = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02603"></a><span class="lineno"> 2603</span>&#160; SetNodeValue(doc, angle, node-&gt;GetAngle());</div><div class="line"><a name="l02604"></a><span class="lineno"> 2604</span>&#160; <span class="keyword">auto</span> nodeType = AppendNode(doc, nodeN, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l02605"></a><span class="lineno"> 2605</span>&#160; SetNodeValue(doc, nodeType, node-&gt;GetNodeType());</div><div class="line"><a name="l02606"></a><span class="lineno"> 2606</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l02607"></a><span class="lineno"> 2607</span>&#160; }</div><div class="line"><a name="l02608"></a><span class="lineno"> 2608</span>&#160;}</div><div class="line"><a name="l02609"></a><span class="lineno"> 2609</span>&#160;</div><div class="line"><a name="l02610"></a><span class="lineno"> 2610</span>&#160;<a class="code" href="class_control_element.html">ControlElement</a>* FileHanding::GetControlElementFromID(std::vector&lt;ControlElement*&gt; elementList, <span class="keywordtype">int</span> <span class="keywordtype">id</span>)</div><div class="line"><a name="l02611"></a><span class="lineno"> 2611</span>&#160;{</div><div class="line"><a name="l02612"></a><span class="lineno"> 2612</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l02613"></a><span class="lineno"> 2613</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* element = *it;</div><div class="line"><a name="l02614"></a><span class="lineno"> 2614</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>() == id) <span class="keywordflow">return</span> element;</div><div class="line"><a name="l02615"></a><span class="lineno"> 2615</span>&#160; }</div><div class="line"><a name="l02616"></a><span class="lineno"> 2616</span>&#160; <span class="keywordflow">return</span> NULL;</div><div class="line"><a name="l02617"></a><span class="lineno"> 2617</span>&#160;}</div><div class="line"><a name="l02618"></a><span class="lineno"> 2618</span>&#160;</div><div class="line"><a name="l02619"></a><span class="lineno"> 2619</span>&#160;<span class="keywordtype">bool</span> FileHanding::OpenControlNodeList(rapidxml::xml_node&lt;&gt;* elementNode, std::vector&lt;Node*&gt;&amp; nodeVector)</div><div class="line"><a name="l02620"></a><span class="lineno"> 2620</span>&#160;{</div><div class="line"><a name="l02621"></a><span class="lineno"> 2621</span>&#160; <span class="keyword">auto</span> nodeList = elementNode-&gt;first_node(<span class="stringliteral">&quot;NodeList&quot;</span>);</div><div class="line"><a name="l02622"></a><span class="lineno"> 2622</span>&#160; <span class="keywordflow">if</span>(!nodeList) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02623"></a><span class="lineno"> 2623</span>&#160; <span class="keyword">auto</span> nodeN = nodeList-&gt;first_node(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02624"></a><span class="lineno"> 2624</span>&#160; <span class="keywordflow">while</span>(nodeN) {</div><div class="line"><a name="l02625"></a><span class="lineno"> 2625</span>&#160; <span class="keyword">auto</span> nodePosition = nodeN-&gt;first_node(<span class="stringliteral">&quot;Position&quot;</span>);</div><div class="line"><a name="l02626"></a><span class="lineno"> 2626</span>&#160; <span class="keywordtype">double</span> nodePosX = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;X&quot;</span>);</div><div class="line"><a name="l02627"></a><span class="lineno"> 2627</span>&#160; <span class="keywordtype">double</span> nodePosY = GetNodeValueDouble(nodePosition, <span class="stringliteral">&quot;Y&quot;</span>);</div><div class="line"><a name="l02628"></a><span class="lineno"> 2628</span>&#160; <span class="keywordtype">double</span> nodeAngle = GetNodeValueDouble(nodeN, <span class="stringliteral">&quot;Angle&quot;</span>);</div><div class="line"><a name="l02629"></a><span class="lineno"> 2629</span>&#160; Node::NodeType nodeType = (Node::NodeType)GetNodeValueInt(nodeN, <span class="stringliteral">&quot;Type&quot;</span>);</div><div class="line"><a name="l02630"></a><span class="lineno"> 2630</span>&#160; <a class="code" href="class_node.html">Node</a>* node = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble(nodePosX, nodePosY), nodeType, 2.0);</div><div class="line"><a name="l02631"></a><span class="lineno"> 2631</span>&#160; node-&gt;SetAngle(nodeAngle);</div><div class="line"><a name="l02632"></a><span class="lineno"> 2632</span>&#160; nodeVector.push_back(node);</div><div class="line"><a name="l02633"></a><span class="lineno"> 2633</span>&#160; nodeN = nodeN-&gt;next_sibling(<span class="stringliteral">&quot;Node&quot;</span>);</div><div class="line"><a name="l02634"></a><span class="lineno"> 2634</span>&#160; }</div><div class="line"><a name="l02635"></a><span class="lineno"> 2635</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l02636"></a><span class="lineno"> 2636</span>&#160;}</div><div class="line"><a name="l02637"></a><span class="lineno"> 2637</span>&#160;</div><div class="line"><a name="l02638"></a><span class="lineno"> 2638</span>&#160;rapidxml::xml_node&lt;&gt;* FileHanding::AppendNode(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02639"></a><span class="lineno"> 2639</span>&#160; rapidxml::xml_node&lt;&gt;* parentNode,</div><div class="line"><a name="l02640"></a><span class="lineno"> 2640</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div><div class="line"><a name="l02641"></a><span class="lineno"> 2641</span>&#160; rapidxml::node_type nodeType)</div><div class="line"><a name="l02642"></a><span class="lineno"> 2642</span>&#160;{</div><div class="line"><a name="l02643"></a><span class="lineno"> 2643</span>&#160; rapidxml::xml_node&lt;&gt;* node = doc.allocate_node(nodeType, name);</div><div class="line"><a name="l02644"></a><span class="lineno"> 2644</span>&#160; parentNode-&gt;append_node(node);</div><div class="line"><a name="l02645"></a><span class="lineno"> 2645</span>&#160; <span class="keywordflow">return</span> node;</div><div class="line"><a name="l02646"></a><span class="lineno"> 2646</span>&#160;}</div><div class="line"><a name="l02647"></a><span class="lineno"> 2647</span>&#160;</div><div class="line"><a name="l02648"></a><span class="lineno"> 2648</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, wxString value)</div><div class="line"><a name="l02649"></a><span class="lineno"> 2649</span>&#160;{</div><div class="line"><a name="l02650"></a><span class="lineno"> 2650</span>&#160; node-&gt;value(doc.allocate_string(value.mb_str()));</div><div class="line"><a name="l02651"></a><span class="lineno"> 2651</span>&#160;}</div><div class="line"><a name="l02652"></a><span class="lineno"> 2652</span>&#160;</div><div class="line"><a name="l02653"></a><span class="lineno"> 2653</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">int</span> value)</div><div class="line"><a name="l02654"></a><span class="lineno"> 2654</span>&#160;{</div><div class="line"><a name="l02655"></a><span class="lineno"> 2655</span>&#160; node-&gt;value(doc.allocate_string(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, value).mb_str()));</div><div class="line"><a name="l02656"></a><span class="lineno"> 2656</span>&#160;}</div><div class="line"><a name="l02657"></a><span class="lineno"> 2657</span>&#160;</div><div class="line"><a name="l02658"></a><span class="lineno"> 2658</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">double</span> value)</div><div class="line"><a name="l02659"></a><span class="lineno"> 2659</span>&#160;{</div><div class="line"><a name="l02660"></a><span class="lineno"> 2660</span>&#160; node-&gt;value(doc.allocate_string(wxString::FromCDouble(value, 13).mb_str()));</div><div class="line"><a name="l02661"></a><span class="lineno"> 2661</span>&#160;}</div><div class="line"><a name="l02662"></a><span class="lineno"> 2662</span>&#160;</div><div class="line"><a name="l02663"></a><span class="lineno"> 2663</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02664"></a><span class="lineno"> 2664</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02665"></a><span class="lineno"> 2665</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02666"></a><span class="lineno"> 2666</span>&#160; wxString value)</div><div class="line"><a name="l02667"></a><span class="lineno"> 2667</span>&#160;{</div><div class="line"><a name="l02668"></a><span class="lineno"> 2668</span>&#160; node-&gt;append_attribute(doc.allocate_attribute(atrName, doc.allocate_string(value.mb_str())));</div><div class="line"><a name="l02669"></a><span class="lineno"> 2669</span>&#160;}</div><div class="line"><a name="l02670"></a><span class="lineno"> 2670</span>&#160;</div><div class="line"><a name="l02671"></a><span class="lineno"> 2671</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02672"></a><span class="lineno"> 2672</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02673"></a><span class="lineno"> 2673</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02674"></a><span class="lineno"> 2674</span>&#160; <span class="keywordtype">int</span> value)</div><div class="line"><a name="l02675"></a><span class="lineno"> 2675</span>&#160;{</div><div class="line"><a name="l02676"></a><span class="lineno"> 2676</span>&#160; node-&gt;append_attribute(</div><div class="line"><a name="l02677"></a><span class="lineno"> 2677</span>&#160; doc.allocate_attribute(atrName, doc.allocate_string(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, value).mb_str())));</div><div class="line"><a name="l02678"></a><span class="lineno"> 2678</span>&#160;}</div><div class="line"><a name="l02679"></a><span class="lineno"> 2679</span>&#160;</div><div class="line"><a name="l02680"></a><span class="lineno"> 2680</span>&#160;<span class="keywordtype">void</span> FileHanding::SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l02681"></a><span class="lineno"> 2681</span>&#160; rapidxml::xml_node&lt;&gt;* node,</div><div class="line"><a name="l02682"></a><span class="lineno"> 2682</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName,</div><div class="line"><a name="l02683"></a><span class="lineno"> 2683</span>&#160; <span class="keywordtype">double</span> value)</div><div class="line"><a name="l02684"></a><span class="lineno"> 2684</span>&#160;{</div><div class="line"><a name="l02685"></a><span class="lineno"> 2685</span>&#160; node-&gt;append_attribute(</div><div class="line"><a name="l02686"></a><span class="lineno"> 2686</span>&#160; doc.allocate_attribute(atrName, doc.allocate_string(wxString::FromCDouble(value, 13).mb_str())));</div><div class="line"><a name="l02687"></a><span class="lineno"> 2687</span>&#160;}</div><div class="line"><a name="l02688"></a><span class="lineno"> 2688</span>&#160;</div><div class="line"><a name="l02689"></a><span class="lineno"> 2689</span>&#160;<span class="keywordtype">double</span> FileHanding::GetNodeValueDouble(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName)</div><div class="line"><a name="l02690"></a><span class="lineno"> 2690</span>&#160;{</div><div class="line"><a name="l02691"></a><span class="lineno"> 2691</span>&#160; <span class="keywordtype">double</span> dValue = 0.0;</div><div class="line"><a name="l02692"></a><span class="lineno"> 2692</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02693"></a><span class="lineno"> 2693</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02694"></a><span class="lineno"> 2694</span>&#160; <span class="keywordflow">if</span>(node) wxString(node-&gt;value()).ToCDouble(&amp;dValue);</div><div class="line"><a name="l02695"></a><span class="lineno"> 2695</span>&#160; }</div><div class="line"><a name="l02696"></a><span class="lineno"> 2696</span>&#160; <span class="keywordflow">return</span> dValue;</div><div class="line"><a name="l02697"></a><span class="lineno"> 2697</span>&#160;}</div><div class="line"><a name="l02698"></a><span class="lineno"> 2698</span>&#160;</div><div class="line"><a name="l02699"></a><span class="lineno"> 2699</span>&#160;<span class="keywordtype">int</span> FileHanding::GetNodeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName)</div><div class="line"><a name="l02700"></a><span class="lineno"> 2700</span>&#160;{</div><div class="line"><a name="l02701"></a><span class="lineno"> 2701</span>&#160; <span class="keywordtype">long</span> iValue = -1;</div><div class="line"><a name="l02702"></a><span class="lineno"> 2702</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02703"></a><span class="lineno"> 2703</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02704"></a><span class="lineno"> 2704</span>&#160; <span class="keywordflow">if</span>(node) wxString(node-&gt;value()).ToCLong(&amp;iValue);</div><div class="line"><a name="l02705"></a><span class="lineno"> 2705</span>&#160; }</div><div class="line"><a name="l02706"></a><span class="lineno"> 2706</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)iValue;</div><div class="line"><a name="l02707"></a><span class="lineno"> 2707</span>&#160;}</div><div class="line"><a name="l02708"></a><span class="lineno"> 2708</span>&#160;</div><div class="line"><a name="l02709"></a><span class="lineno"> 2709</span>&#160;<span class="keywordtype">int</span> FileHanding::GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName)</div><div class="line"><a name="l02710"></a><span class="lineno"> 2710</span>&#160;{</div><div class="line"><a name="l02711"></a><span class="lineno"> 2711</span>&#160; <span class="keywordtype">long</span> iValue = -1;</div><div class="line"><a name="l02712"></a><span class="lineno"> 2712</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l02713"></a><span class="lineno"> 2713</span>&#160; <span class="keyword">auto</span> node = parent-&gt;first_node(nodeName);</div><div class="line"><a name="l02714"></a><span class="lineno"> 2714</span>&#160; <span class="keywordflow">if</span>(node) {</div><div class="line"><a name="l02715"></a><span class="lineno"> 2715</span>&#160; <span class="keyword">auto</span> atr = node-&gt;first_attribute(atrName);</div><div class="line"><a name="l02716"></a><span class="lineno"> 2716</span>&#160; <span class="keywordflow">if</span>(atr) wxString(atr-&gt;value()).ToCLong(&amp;iValue);</div><div class="line"><a name="l02717"></a><span class="lineno"> 2717</span>&#160; }</div><div class="line"><a name="l02718"></a><span class="lineno"> 2718</span>&#160; }</div><div class="line"><a name="l02719"></a><span class="lineno"> 2719</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)iValue;</div><div class="line"><a name="l02720"></a><span class="lineno"> 2720</span>&#160;}</div><div class="line"><a name="l02721"></a><span class="lineno"> 2721</span>&#160;</div><div class="line"><a name="l02722"></a><span class="lineno"> 2722</span>&#160;<span class="keywordtype">int</span> FileHanding::GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName)</div><div class="line"><a name="l02723"></a><span class="lineno"> 2723</span>&#160;{</div><div class="line"><a name="l02724"></a><span class="lineno"> 2724</span>&#160; <span class="keywordtype">long</span> intValue;</div><div class="line"><a name="l02725"></a><span class="lineno"> 2725</span>&#160; <span class="keyword">auto</span> atr = node-&gt;first_attribute(atrName);</div><div class="line"><a name="l02726"></a><span class="lineno"> 2726</span>&#160; <span class="keywordflow">if</span>(!atr) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l02727"></a><span class="lineno"> 2727</span>&#160; wxString(atr-&gt;value()).ToCLong(&amp;intValue);</div><div class="line"><a name="l02728"></a><span class="lineno"> 2728</span>&#160; <span class="keywordflow">return</span> (<span class="keywordtype">int</span>)intValue;</div><div class="line"><a name="l02729"></a><span class="lineno"> 2729</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00095">PowerElement.h:95</a></div></div>
+<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00146">Machines.cpp:146</a></div></div>
+<div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_branch_html_aa0328a743090b2b7b3f33d57a867b6dc"><div class="ttname"><a href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8cpp_source.html#l00105">Branch.cpp:105</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a3b89149e5fb56253c0629c9d260b3b7e"><div class="ttname"><a href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">ElectricCalculation::GetTransformerList</a></div><div class="ttdeci">const std::vector&lt; Transformer * &gt; GetTransformerList() const</div><div class="ttdoc">Get the transformers of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00185">ElectricCalculation.h:185</a></div></div>
+<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00162">Text.cpp:162</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_element_html_a5da121470a0c26c6b5c57a7c4eeac48b"><div class="ttname"><a href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">Element::SetWidth</a></div><div class="ttdeci">void SetWidth(double width)</div><div class="ttdoc">Set element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00151">Element.h:151</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00055">PowerElement.h:55</a></div></div>
+<div class="ttc" id="class_capacitor_html_a2c3f0949c2b791c6a0b69866e9aaff7a"><div class="ttname"><a href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00115">Capacitor.cpp:115</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a906ce639a5d6c5d7946fe8824f1b4f1b"><div class="ttname"><a href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">ElectricCalculation::GetIndMotorList</a></div><div class="ttdeci">const std::vector&lt; IndMotor * &gt; GetIndMotorList() const</div><div class="ttdoc">Get the induction motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00155">ElectricCalculation.h:155</a></div></div>
+<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00235">Element.cpp:235</a></div></div>
+<div class="ttc" id="class_transformer_html_aaa6cc999eb77a94dafaec5debb4db3de"><div class="ttname"><a href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00196">Transformer.cpp:196</a></div></div>
+<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00074">Shunt.cpp:74</a></div></div>
+<div class="ttc" id="class_load_html_a46e9f2e0935ecca77b3a46568404d8e3"><div class="ttname"><a href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00121">Load.cpp:121</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_inductor_html_a801bb445c01059558902c0eca4d38cdd"><div class="ttname"><a href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00113">Inductor.cpp:113</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_control_element_html_a61440a392d438de163bfe9ffb8e9efec"><div class="ttname"><a href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8cpp_source.html#l00117">ControlElement.cpp:117</a></div></div>
+<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00111">Machines.cpp:111</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aca3381e8f6663394e4d257a54e4e2a24"><div class="ttname"><a href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">ElectricCalculation::GetBusList</a></div><div class="ttdeci">const std::vector&lt; Bus * &gt; GetBusList() const</div><div class="ttdoc">Get the buses of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00145">ElectricCalculation.h:145</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00094">PowerElement.h:94</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="class_power_element_html_a4dbd26d0a7987c30729efffa860debc4"><div class="ttname"><a href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">PowerElement::SetDynamicEvent</a></div><div class="ttdeci">virtual void SetDynamicEvent(bool dynEvent=true)</div><div class="ttdoc">Set if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00208">PowerElement.h:208</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_ad8719b10c3c4b85b316d3daa71064840"><div class="ttname"><a href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">ElectricCalculation::GetSyncGeneratorList</a></div><div class="ttdeci">const std::vector&lt; SyncGenerator * &gt; GetSyncGeneratorList() const</div><div class="ttdoc">Get the synchronous generators of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00175">ElectricCalculation.h:175</a></div></div>
+<div class="ttc" id="class_transformer_html_a67f1e2686932700fe8a83fdc232ea1e8"><div class="ttname"><a href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00212">Transformer.cpp:212</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a8709a452d684d4224d32591c281ae0ed"><div class="ttname"><a href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">ElectricCalculation::GetInductorList</a></div><div class="ttdeci">const std::vector&lt; Inductor * &gt; GetInductorList() const</div><div class="ttdoc">Get the inductors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00160">ElectricCalculation.h:160</a></div></div>
+<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00240">Element.h:240</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_inductor_html_a4e404c6e15f206fe0f5de06fc19dedf5"><div class="ttname"><a href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00024">Inductor.cpp:24</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdoc">Switching data of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00093">PowerElement.h:93</a></div></div>
+<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00032">Shunt.cpp:32</a></div></div>
+<div class="ttc" id="class_exponential_html"><div class="ttname"><a href="class_exponential.html">Exponential</a></div><div class="ttdoc">Generates an output following an exponential function. </div><div class="ttdef"><b>Definition:</b> <a href="_exponential_8h_source.html#l00032">Exponential.h:32</a></div></div>
+<div class="ttc" id="class_element_html_aa5d8558082ce38832af3b8c8ac1cf36f"><div class="ttname"><a href="class_element.html#aa5d8558082ce38832af3b8c8ac1cf36f">Element::SetAngle</a></div><div class="ttdeci">void SetAngle(double angle)</div><div class="ttdoc">Set element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00156">Element.h:156</a></div></div>
+<div class="ttc" id="class_element_html_a23e1fe2745c70cfb43725f608c4bce00"><div class="ttname"><a href="class_element.html#a23e1fe2745c70cfb43725f608c4bce00">Element::GetWidth</a></div><div class="ttdeci">double GetWidth() const</div><div class="ttdoc">Get the element width. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00207">Element.h:207</a></div></div>
+<div class="ttc" id="class_line_html_a26c69f7f703dca718edc28d5093934a3"><div class="ttname"><a href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00136">Line.cpp:136</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_a4ddabc6210146ae1ccae5f6911095bfd"><div class="ttname"><a href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">ElectricCalculation::GetCapacitorList</a></div><div class="ttdeci">const std::vector&lt; Capacitor * &gt; GetCapacitorList() const</div><div class="ttdoc">Get the capacitors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00150">ElectricCalculation.h:150</a></div></div>
+<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00025">Machines.cpp:25</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="_file_handing_8h_html"><div class="ttname"><a href="_file_handing_8h.html">FileHanding.h</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="class_element_html_a616c73ff20402109ede68579094acc3d"><div class="ttname"><a href="class_element.html#a616c73ff20402109ede68579094acc3d">Element::GetHeight</a></div><div class="ttdeci">double GetHeight() const</div><div class="ttdoc">Get the element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00197">Element.h:197</a></div></div>
+<div class="ttc" id="class_element_html_aff2870f5979a84a30c27917cb33271f9"><div class="ttname"><a href="class_element.html#aff2870f5979a84a30c27917cb33271f9">Element::GetPointList</a></div><div class="ttdeci">virtual std::vector&lt; wxPoint2DDouble &gt; GetPointList() const</div><div class="ttdoc">Get the list of points that connect the element to bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00232">Element.h:232</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aa5e278a1c5ba1b6159c21ae2ff2b23b4"><div class="ttname"><a href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">ElectricCalculation::GetLoadList</a></div><div class="ttdeci">const std::vector&lt; Load * &gt; GetLoadList() const</div><div class="ttdoc">Get the loads of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00170">ElectricCalculation.h:170</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00232">Machines.cpp:232</a></div></div>
+<div class="ttc" id="class_line_html_af9a931bdb7e0693cacae010a19b744e6"><div class="ttname"><a href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00492">Line.cpp:492</a></div></div>
+<div class="ttc" id="class_bus_html_ace039d00c23d36a7c14d7e4155c94791"><div class="ttname"><a href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8cpp_source.html#l00184">Bus.cpp:184</a></div></div>
+<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00182">PowerElement.h:182</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00067">Shunt.cpp:67</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1b"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a></div><div class="ttdeci">SwitchingType</div><div class="ttdoc">Type of switching. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00069">PowerElement.h:69</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_transformer_html_aea52a4562ec5b4a79bf82b8ede32ecc6"><div class="ttname"><a href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00039">Transformer.cpp:39</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_ae9b5e9b51615141e88de0a0f99a7741e"><div class="ttname"><a href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">ElectricCalculation::GetSyncMotorList</a></div><div class="ttdeci">const std::vector&lt; SyncMotor * &gt; GetSyncMotorList() const</div><div class="ttdoc">Get the synchronous motors of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00180">ElectricCalculation.h:180</a></div></div>
+<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00272">Element.h:272</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_transformer_html_a0395a11dc8173e511a0596ac96bf05e5"><div class="ttname"><a href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00266">Transformer.cpp:266</a></div></div>
+<div class="ttc" id="class_load_html_ac9f449be9b919b36924a844324bf37ee"><div class="ttname"><a href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00023">Load.cpp:23</a></div></div>
+<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00165">Machines.cpp:165</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_aff1a62936d87e61764b13f3b0212cf92"><div class="ttname"><a href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">ElectricCalculation::GetElementsFromList</a></div><div class="ttdeci">virtual void GetElementsFromList(std::vector&lt; Element *&gt; elementList)</div><div class="ttdoc">Separate the power elements from a generic list. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8cpp_source.html#l00025">ElectricCalculation.cpp:25</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="class_constant_html"><div class="ttname"><a href="class_constant.html">Constant</a></div><div class="ttdoc">A control element that provides a constant value. </div><div class="ttdef"><b>Definition:</b> <a href="_constant_8h_source.html#l00035">Constant.h:35</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
+<div class="ttc" id="class_power_element_html_a08d2e84b91ab7443b20a9d7eb6ab441f"><div class="ttname"><a href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">PowerElement::SetSwitchingData</a></div><div class="ttdeci">virtual void SetSwitchingData(SwitchingData data)</div><div class="ttdoc">Set the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00177">PowerElement.h:177</a></div></div>
+<div class="ttc" id="class_element_html_a3687fe2558f6a27ee068fa7244f855eb"><div class="ttname"><a href="class_element.html#a3687fe2558f6a27ee068fa7244f855eb">Element::GetRotationAngle</a></div><div class="ttdeci">double GetRotationAngle() const</div><div class="ttdoc">Get the angle of rotation. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00217">Element.h:217</a></div></div>
+<div class="ttc" id="class_electric_calculation_html_af8eff271de83898c536deda1aab22d48"><div class="ttname"><a href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">ElectricCalculation::GetLineList</a></div><div class="ttdeci">const std::vector&lt; Line * &gt; GetLineList() const</div><div class="ttdoc">Get the lines of the system (use GetElementsFromList first). </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00165">ElectricCalculation.h:165</a></div></div>
+<div class="ttc" id="class_capacitor_html_ace755e5bc3cc72b491ce31c24c54a5cf"><div class="ttname"><a href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8cpp_source.html#l00024">Capacitor.cpp:24</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
+<div class="ttc" id="class_element_html_a88171a7f1d0d9273f6fd43a4945341ec"><div class="ttname"><a href="class_element.html#a88171a7f1d0d9273f6fd43a4945341ec">Element::SetHeight</a></div><div class="ttdeci">void SetHeight(double height)</div><div class="ttdoc">Set element height. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00135">Element.h:135</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_file_handing_8h.html b/docs/doxygen/html/_file_handing_8h.html
new file mode 100644
index 0000000..8b51868
--- /dev/null
+++ b/docs/doxygen/html/_file_handing_8h.html
@@ -0,0 +1,125 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/FileHanding.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_file_handing_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">FileHanding.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wx/string.h&gt;</code><br />
+<code>#include &lt;fstream&gt;</code><br />
+<code>#include &lt;sstream&gt;</code><br />
+<code>#include &quot;<a class="el" href="_workspace_8h_source.html">Workspace.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_control_element_container_8h_source.html">ControlElementContainer.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_text_8h_source.html">Text.h</a>&quot;</code><br />
+<code>#include &quot;rapidXML/rapidxml.hpp&quot;</code><br />
+<code>#include &quot;rapidXML/rapidxml_print.hpp&quot;</code><br />
+<code>#include &quot;rapidXML/rapidxml_utils.hpp&quot;</code><br />
+</div>
+<p><a href="_file_handing_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_file_handing.html">FileHanding</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save and opens the projects created on disk. <a href="class_file_handing.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_file_handing_8h.html">FileHanding.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_file_handing_8h_source.html b/docs/doxygen/html/_file_handing_8h_source.html
index 7bfa9ba..08ec41e 100644
--- a/docs/doxygen/html/_file_handing_8h_source.html
+++ b/docs/doxygen/html/_file_handing_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,18 +88,22 @@ $(document).ready(function(){initNavTree('_file_handing_8h_source.html','');});
<div class="title">FileHanding.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef FILEHANDING_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define FILEHANDING_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/string.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;Workspace.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Text.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml.hpp&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment">// Modified: http://stackoverflow.com/questions/14113923/rapidxml-print-header-has-undefined-methods</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml_print.hpp&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml_utils.hpp&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_file_handing.html"> 19</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>(<a class="code" href="class_workspace.html">Workspace</a>* workspace);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ~<a class="code" href="class_file_handing.html">FileHanding</a>();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> SetWorkspace(<a class="code" href="class_workspace.html">Workspace</a>* workspace) { m_workspace = workspace; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">void</span> SetControlEditor(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor) { m_controlEditor = controlEditor; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">void</span> SaveProject(wxFileName path);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">bool</span> OpenProject(wxFileName path);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; </div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">void</span> SaveControl(wxFileName path);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">bool</span> OpenControl(wxFileName path, std::vector&lt;ControlElement*&gt;&amp; ctrlElementList, std::vector&lt;ConnectionLine*&gt;&amp; ctrlConnectionList);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; </div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">void</span> SaveControlElements(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* elementsNode, <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer = NULL);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">bool</span> OpenControlElements(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* elementsNode, <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer = NULL);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* m_workspace = NULL;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* m_controlEditor = NULL;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; rapidxml::xml_node&lt;&gt;* AppendNode(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; rapidxml::xml_node&lt;&gt;* parentNode,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; rapidxml::node_type nodeType = rapidxml::node_element);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, wxString value);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, wxString value);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> GetNodeValueDouble(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">int</span> GetNodeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">int</span> GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">int</span> GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> SaveControlNodes(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* nodesN, std::vector&lt;Node*&gt; nodeList);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* GetControlElementFromID(std::vector&lt;ControlElement*&gt; elementList, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> OpenControlNodeList(rapidxml::xml_node&lt;&gt;* elementNode, std::vector&lt;Node*&gt;&amp; nodeVector);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif // FILEHANDING_H</span></div><div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00019">FileHanding.h:19</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
+<a href="_file_handing_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * (at your option) any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef FILEHANDING_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define FILEHANDING_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/string.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;fstream&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;sstream&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_workspace_8h.html">Workspace.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_8h.html">Text.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml.hpp&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="comment">// Modified: http://stackoverflow.com/questions/14113923/rapidxml-print-header-has-undefined-methods</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml_print.hpp&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;rapidXML/rapidxml_utils.hpp&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_file_handing.html"> 43</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>(<a class="code" href="class_workspace.html">Workspace</a>* workspace);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a>(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ~<a class="code" href="class_file_handing.html">FileHanding</a>();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">void</span> SetWorkspace(<a class="code" href="class_workspace.html">Workspace</a>* workspace) { m_workspace = workspace; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">void</span> SetControlEditor(<a class="code" href="class_control_editor.html">ControlEditor</a>* controlEditor) { m_controlEditor = controlEditor; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">void</span> SaveProject(wxFileName path);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">bool</span> OpenProject(wxFileName path);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; </div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">void</span> SaveControl(wxFileName path);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">bool</span> OpenControl(wxFileName path, std::vector&lt;ControlElement*&gt;&amp; ctrlElementList, std::vector&lt;ConnectionLine*&gt;&amp; ctrlConnectionList);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">void</span> SaveControlElements(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* elementsNode, <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer = NULL);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">bool</span> OpenControlElements(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* elementsNode, <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* ctrlContainer = NULL);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* m_workspace = NULL;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* m_controlEditor = NULL;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; rapidxml::xml_node&lt;&gt;* AppendNode(rapidxml::xml_document&lt;&gt;&amp; doc,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; rapidxml::xml_node&lt;&gt;* parentNode,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">const</span> <span class="keywordtype">char</span>* name,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; rapidxml::node_type nodeType = rapidxml::node_element);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, wxString value);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> SetNodeValue(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, wxString value);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, <span class="keywordtype">int</span> value);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">void</span> SetNodeAttribute(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName, <span class="keywordtype">double</span> value);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> GetNodeValueDouble(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">int</span> GetNodeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* parent, <span class="keyword">const</span> <span class="keywordtype">char</span>* nodeName, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">int</span> GetAttributeValueInt(rapidxml::xml_node&lt;&gt;* node, <span class="keyword">const</span> <span class="keywordtype">char</span>* atrName);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">void</span> SaveControlNodes(rapidxml::xml_document&lt;&gt;&amp; doc, rapidxml::xml_node&lt;&gt;* nodesN, std::vector&lt;Node*&gt; nodeList);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* GetControlElementFromID(std::vector&lt;ControlElement*&gt; elementList, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">bool</span> OpenControlNodeList(rapidxml::xml_node&lt;&gt;* elementNode, std::vector&lt;Node*&gt;&amp; nodeVector);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;};</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor">#endif // FILEHANDING_H</span></div><div class="ttc" id="_workspace_8h_html"><div class="ttname"><a href="_workspace_8h.html">Workspace.h</a></div></div>
+<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdoc">Save and opens the projects created on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00043">FileHanding.h:43</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="_text_8h_html"><div class="ttname"><a href="_text_8h.html">Text.h</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>FileHanding.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_file_handing_8h.html">FileHanding.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_formulas.tex b/docs/doxygen/html/_formulas.tex
new file mode 100644
index 0000000..7aacf93
--- /dev/null
+++ b/docs/doxygen/html/_formulas.tex
@@ -0,0 +1,8 @@
+\documentclass{article}
+\usepackage{epsfig}
+\pagestyle{empty}
+\begin{document}
+$ output = A\cdot e^{B\cdot input} $
+\pagebreak
+
+\end{document}
diff --git a/docs/doxygen/html/_gain_8cpp_source.html b/docs/doxygen/html/_gain_8cpp_source.html
index 32d8803..e1bc08a 100644
--- a/docs/doxygen/html/_gain_8cpp_source.html
+++ b/docs/doxygen/html/_gain_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,19 @@ $(document).ready(function(){initNavTree('_gain_8cpp_source.html','');});
<div class="title">Gain.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Gain.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;GainForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Gain::Gain(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_triPts.resize(3);</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;Gain::~Gain() {}</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264"> 18</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triSelectedPts;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize / 2, borderSize / 1.5));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(borderSize / 2, -borderSize / 1.5));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(-borderSize, 0));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize / 1.5, borderSize / 2));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 1.5, borderSize / 2));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(0, -borderSize));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize, 0));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 2, borderSize / 1.5));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(-borderSize / 2, -borderSize / 1.5));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(0, borderSize));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 1.5, -borderSize / 2));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(borderSize / 1.5, -borderSize / 2));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DrawTriangle(m_triSelectedPts);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DrawTriangle(m_triPts);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; DrawTriangle(m_triPts, GL_LINE_LOOP);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_glStringValue-&gt;render(m_position.m_x - m_width / 2 + m_glStringValue-&gt;getWidth() / 2 + 2 + m_borderSize,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_position.m_y);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_glStringValue-&gt;render(m_position.m_x,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_position.m_y - m_height / 2 + m_glStringValue-&gt;getheight() / 2 + 2 + m_borderSize);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_glStringValue-&gt;render(m_position.m_x + m_width / 2 - m_glStringValue-&gt;getWidth() / 2 - 2 - m_borderSize,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_position.m_y);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_glStringValue-&gt;render(m_position.m_x,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_position.m_y + m_height / 2 - m_glStringValue-&gt;getheight() / 2 - 2 - m_borderSize);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; DrawNodes();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93"> 71</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <a class="code" href="class_gain_form.html">GainForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_gain_form.html">GainForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7"> 82</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; UpdatePoints();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keywordtype">void</span> Gain::SetValue(<span class="keywordtype">double</span> value)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_value = value;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxString text = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(std::abs(m_value) &gt; 1e3 || std::abs(m_value) &lt; 1e-3)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; text = wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, m_value);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; text = StringFromDouble(m_value);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 18 + 2 * m_borderSize;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_height = m_glStringValue-&gt;getheight() + 18 + 2 * m_borderSize;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(m_width &gt; m_height)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_height = m_width;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_width = m_height;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; SetPosition(m_position); <span class="comment">// Update rectangle.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; UpdatePoints();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<span class="keywordtype">void</span> Gain::UpdatePoints()</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_triPts[0] = m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_triPts[1] = m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_triPts[2] = m_position + wxPoint2DDouble(m_width / 2 - m_borderSize, 0);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 2, 0));</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_triPts[0] = m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_triPts[1] = m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_triPts[2] = m_position + wxPoint2DDouble(0, m_height / 2 - m_borderSize);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2 - 2));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_triPts[0] = m_position + wxPoint2DDouble(-m_width / 2 + m_borderSize, 0);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_triPts[1] = m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_triPts[2] = m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2 + 2, 0));</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_triPts[0] = m_position + wxPoint2DDouble(0, -m_height / 2 + m_borderSize);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_triPts[1] = m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_triPts[2] = m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2 + 2));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db"> 165</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; UpdatePoints();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">bool</span> Gain::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_output = input * m_value;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;}</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="class_gain.html#a489572e289935d7256c037af682b9351"> 177</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a>()</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;{</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <a class="code" href="class_gain.html">Gain</a>* copy = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(m_elementID);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div><div class="ttc" id="class_gain_html_aa303bcc736ac5fad1f89c6cc87e859db"><div class="ttname"><a href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00165">Gain.cpp:165</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_gain_html_a489572e289935d7256c037af682b9351"><div class="ttname"><a href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00177">Gain.cpp:177</a></div></div>
-<div class="ttc" id="class_gain_html_a6b98027cbf545302867ad75f7ab84b93"><div class="ttname"><a href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00071">Gain.cpp:71</a></div></div>
-<div class="ttc" id="class_gain_html_ae19d739112c3aad30c58bdfd98f442e7"><div class="ttname"><a href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00082">Gain.cpp:82</a></div></div>
-<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00007">GainForm.h:7</a></div></div>
-<div class="ttc" id="class_gain_html_a42f48bfdfb3d6f593fcc599504dd2264"><div class="ttname"><a href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00018">Gain.cpp:18</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_8h.html">Gain.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_form_8h.html">GainForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Gain::Gain(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_triPts.resize(3);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;Gain::~Gain() {}</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264"> 35</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triSelectedPts;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize / 2, borderSize / 1.5));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(borderSize / 2, -borderSize / 1.5));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(-borderSize, 0));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize / 1.5, borderSize / 2));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 1.5, borderSize / 2));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(0, -borderSize));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(borderSize, 0));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 2, borderSize / 1.5));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(-borderSize / 2, -borderSize / 1.5));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_triSelectedPts.push_back(m_triPts[0] - wxPoint2DDouble(0, borderSize));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_triSelectedPts.push_back(m_triPts[1] - wxPoint2DDouble(-borderSize / 1.5, -borderSize / 2));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_triSelectedPts.push_back(m_triPts[2] - wxPoint2DDouble(borderSize / 1.5, -borderSize / 2));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; DrawTriangle(m_triSelectedPts);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; DrawTriangle(m_triPts);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; DrawTriangle(m_triPts, GL_LINE_LOOP);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_glStringValue-&gt;render(m_position.m_x - m_width / 2 + m_glStringValue-&gt;getWidth() / 2 + 2 + m_borderSize,</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_position.m_y);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_glStringValue-&gt;render(m_position.m_x,</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_position.m_y - m_height / 2 + m_glStringValue-&gt;getheight() / 2 + 2 + m_borderSize);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_glStringValue-&gt;render(m_position.m_x + m_width / 2 - m_glStringValue-&gt;getWidth() / 2 - 2 - m_borderSize,</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_position.m_y);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_glStringValue-&gt;render(m_position.m_x,</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_position.m_y + m_height / 2 - m_glStringValue-&gt;getheight() / 2 - 2 - m_borderSize);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; DrawNodes();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93"> 88</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="class_gain_form.html">GainForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_gain_form.html">GainForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7"> 99</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; UpdatePoints();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;<span class="keywordtype">void</span> Gain::SetValue(<span class="keywordtype">double</span> value)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_value = value;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; wxString text = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(std::abs(m_value) &gt; 1e3 || std::abs(m_value) &lt; 1e-3)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; text = wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, m_value);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; text = StringFromDouble(m_value);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 18 + 2 * m_borderSize;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_height = m_glStringValue-&gt;getheight() + 18 + 2 * m_borderSize;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(m_width &gt; m_height)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_height = m_width;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_width = m_height;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; SetPosition(m_position); <span class="comment">// Update rectangle.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; UpdatePoints();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keywordtype">void</span> Gain::UpdatePoints()</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_triPts[0] = m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_triPts[1] = m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_triPts[2] = m_position + wxPoint2DDouble(m_width / 2 - m_borderSize, 0);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 2, 0));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_triPts[0] = m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_triPts[1] = m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_triPts[2] = m_position + wxPoint2DDouble(0, m_height / 2 - m_borderSize);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2 - 2));</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_triPts[0] = m_position + wxPoint2DDouble(-m_width / 2 + m_borderSize, 0);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_triPts[1] = m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_triPts[2] = m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2 + 2, 0));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_triPts[0] = m_position + wxPoint2DDouble(0, -m_height / 2 + m_borderSize);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_triPts[1] = m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_triPts[2] = m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2 + 2));</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db"> 182</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; UpdatePoints();</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"><a class="line" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117"> 188</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Gain::Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;{</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_output = input * m_value;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"><a class="line" href="class_gain.html#a489572e289935d7256c037af682b9351"> 194</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a>()</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;{</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <a class="code" href="class_gain.html">Gain</a>* copy = <span class="keyword">new</span> <a class="code" href="class_gain.html">Gain</a>(m_elementID);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="ttc" id="class_gain_html_aa303bcc736ac5fad1f89c6cc87e859db"><div class="ttname"><a href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00182">Gain.cpp:182</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_gain_form_8h_html"><div class="ttname"><a href="_gain_form_8h.html">GainForm.h</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_gain_html_a489572e289935d7256c037af682b9351"><div class="ttname"><a href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00194">Gain.cpp:194</a></div></div>
+<div class="ttc" id="class_gain_html_a6b98027cbf545302867ad75f7ab84b93"><div class="ttname"><a href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00088">Gain.cpp:88</a></div></div>
+<div class="ttc" id="_gain_8h_html"><div class="ttname"><a href="_gain_8h.html">Gain.h</a></div></div>
+<div class="ttc" id="class_gain_html_ae19d739112c3aad30c58bdfd98f442e7"><div class="ttname"><a href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00099">Gain.cpp:99</a></div></div>
+<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdoc">Form to edit the gain control data. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00031">GainForm.h:31</a></div></div>
+<div class="ttc" id="class_gain_html_a282cab6d339aa89a35c775bbea2aa117"><div class="ttname"><a href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Gain::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Multiply the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00188">Gain.cpp:188</a></div></div>
+<div class="ttc" id="class_gain_html_a42f48bfdfb3d6f593fcc599504dd2264"><div class="ttname"><a href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00035">Gain.cpp:35</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/_gain_8h.html b/docs/doxygen/html/_gain_8h.html
new file mode 100644
index 0000000..f732cac
--- /dev/null
+++ b/docs/doxygen/html/_gain_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Gain.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_gain_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Gain.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &quot;wxGLString.h&quot;</code><br />
+</div>
+<p><a href="_gain_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gain.html">Gain</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide an output multiplying the input by a constant. <a href="class_gain.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_gain_8h.html">Gain.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_gain_8h_source.html b/docs/doxygen/html/_gain_8h_source.html
index 26b1090..99cf636 100644
--- a/docs/doxygen/html/_gain_8h_source.html
+++ b/docs/doxygen/html/_gain_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,24 +88,26 @@ $(document).ready(function(){initNavTree('_gain_8h_source.html','');});
<div class="title">Gain.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef GAIN_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define GAIN_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain_form.html">GainForm</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_gain.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_gain.html">Gain</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; ~<a class="code" href="class_gain.html">Gain</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980"> 19</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; </div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_gain.html#a489572e289935d7256c037af682b9351">GetCopy</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> m_value = 1.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; </div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; </div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triPts;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;};</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif // GAIN_H</span></div><div class="ttc" id="class_gain_html_aa303bcc736ac5fad1f89c6cc87e859db"><div class="ttname"><a href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00165">Gain.cpp:165</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
-<div class="ttc" id="class_gain_html_a489572e289935d7256c037af682b9351"><div class="ttname"><a href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00177">Gain.cpp:177</a></div></div>
-<div class="ttc" id="class_gain_html_a8768490f9cb20a6a8c9148d1c893e980"><div class="ttname"><a href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980">Gain::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00019">Gain.h:19</a></div></div>
-<div class="ttc" id="class_gain_html_a6b98027cbf545302867ad75f7ab84b93"><div class="ttname"><a href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00071">Gain.cpp:71</a></div></div>
-<div class="ttc" id="class_gain_html_ae19d739112c3aad30c58bdfd98f442e7"><div class="ttname"><a href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00082">Gain.cpp:82</a></div></div>
-<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00007">GainForm.h:7</a></div></div>
-<div class="ttc" id="class_gain_html_a9d80d49f5123cf4859bf15a251e3923f"><div class="ttname"><a href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f">Gain::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00018">Gain.h:18</a></div></div>
-<div class="ttc" id="class_gain_html_a42f48bfdfb3d6f593fcc599504dd2264"><div class="ttname"><a href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00018">Gain.cpp:18</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_gain_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GAIN_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define GAIN_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain_form.html">GainForm</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_gain.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_gain.html">Gain</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ~<a class="code" href="class_gain.html">Gain</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f"> 42</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980"> 43</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(<span class="keywordtype">double</span> value);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_gain.html#a489572e289935d7256c037af682b9351">GetCopy</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> m_value = 1.0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triPts;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;};</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;<span class="preprocessor">#endif // GAIN_H</span></div><div class="ttc" id="class_gain_html_aa303bcc736ac5fad1f89c6cc87e859db"><div class="ttname"><a href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00182">Gain.cpp:182</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
+<div class="ttc" id="class_gain_html_a489572e289935d7256c037af682b9351"><div class="ttname"><a href="class_gain.html#a489572e289935d7256c037af682b9351">Gain::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00194">Gain.cpp:194</a></div></div>
+<div class="ttc" id="class_gain_html_a8768490f9cb20a6a8c9148d1c893e980"><div class="ttname"><a href="class_gain.html#a8768490f9cb20a6a8c9148d1c893e980">Gain::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00043">Gain.h:43</a></div></div>
+<div class="ttc" id="class_gain_html_a6b98027cbf545302867ad75f7ab84b93"><div class="ttname"><a href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00088">Gain.cpp:88</a></div></div>
+<div class="ttc" id="class_gain_html_ae19d739112c3aad30c58bdfd98f442e7"><div class="ttname"><a href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00099">Gain.cpp:99</a></div></div>
+<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdoc">Form to edit the gain control data. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00031">GainForm.h:31</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_gain_html_a282cab6d339aa89a35c775bbea2aa117"><div class="ttname"><a href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Gain::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Multiply the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00188">Gain.cpp:188</a></div></div>
+<div class="ttc" id="class_gain_html_a9d80d49f5123cf4859bf15a251e3923f"><div class="ttname"><a href="class_gain.html#a9d80d49f5123cf4859bf15a251e3923f">Gain::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00042">Gain.h:42</a></div></div>
+<div class="ttc" id="class_gain_html_a42f48bfdfb3d6f593fcc599504dd2264"><div class="ttname"><a href="class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264">Gain::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8cpp_source.html#l00035">Gain.cpp:35</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Gain.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_gain_8h.html">Gain.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_gain_form_8cpp_source.html b/docs/doxygen/html/_gain_form_8cpp_source.html
index ea14794..aa3d409 100644
--- a/docs/doxygen/html/_gain_form_8cpp_source.html
+++ b/docs/doxygen/html/_gain_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_gain_form_8cpp_source.html','');});
<div class="title">GainForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;GainForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Gain.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;GainForm::GainForm(wxWindow* parent, <a class="code" href="class_gain.html">Gain</a>* gain) : <a class="code" href="class_gain_form_base.html">GainFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_parent = parent;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_gain = gain;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_textCtrlValue-&gt;SetValue(m_gain-&gt;StringFromDouble(m_gain-&gt;GetValue()));</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;GainForm::~GainForm() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keywordtype">void</span> GainForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;}</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keywordtype">bool</span> GainForm::ValidateData()</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> value;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span>(!m_gain-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlValue-&gt;GetValue(), value,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Gain value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_gain-&gt;SetValue(value);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_form_8h.html">GainForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_gain_8h.html">Gain.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;GainForm::GainForm(wxWindow* parent, <a class="code" href="class_gain.html">Gain</a>* gain) : <a class="code" href="class_gain_form_base.html">GainFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_parent = parent;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_gain = gain;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlValue-&gt;SetValue(m_gain-&gt;StringFromDouble(m_gain-&gt;GetValue()));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;GainForm::~GainForm() {}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> GainForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keywordtype">bool</span> GainForm::ValidateData()</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> value;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(!m_gain-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlValue-&gt;GetValue(), value,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Gain value\&quot;.&quot;</span>)))</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_gain-&gt;SetValue(value);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="ttc" id="_gain_form_8h_html"><div class="ttname"><a href="_gain_form_8h.html">GainForm.h</a></div></div>
+<div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
<div class="ttc" id="class_gain_form_base_html"><div class="ttname"><a href="class_gain_form_base.html">GainFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00949">ElementForm.h:949</a></div></div>
+<div class="ttc" id="_gain_8h_html"><div class="ttname"><a href="_gain_8h.html">Gain.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_gain_form_8h.html b/docs/doxygen/html/_gain_form_8h.html
new file mode 100644
index 0000000..d7db441
--- /dev/null
+++ b/docs/doxygen/html/_gain_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/GainForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_gain_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">GainForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_gain_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gain_form.html">GainForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the gain control data. <a href="class_gain_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_gain_form_8h.html">GainForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_gain_form_8h_source.html b/docs/doxygen/html/_gain_form_8h_source.html
index f61892a..a6399b8 100644
--- a/docs/doxygen/html/_gain_form_8h_source.html
+++ b/docs/doxygen/html/_gain_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_gain_form_8h_source.html','');});
<div class="title">GainForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef GAINFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define GAINFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_gain_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gain_form.html">GainForm</a> : <span class="keyword">public</span> <a class="code" href="class_gain_form_base.html">GainFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_gain_form.html">GainForm</a>(wxWindow* parent, <a class="code" href="class_gain.html">Gain</a>* gain);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_gain_form.html">GainForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_gain.html">Gain</a>* m_gain;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif // GAINFORM_H</span></div><div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00011">Gain.h:11</a></div></div>
+<a href="_gain_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GAINFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define GAINFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_gain.html">Gain</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_gain_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_gain_form.html">GainForm</a> : <span class="keyword">public</span> <a class="code" href="class_gain_form_base.html">GainFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_gain_form.html">GainForm</a>(wxWindow* parent, <a class="code" href="class_gain.html">Gain</a>* gain);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_gain_form.html">GainForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_gain.html">Gain</a>* m_gain;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif // GAINFORM_H</span></div><div class="ttc" id="class_gain_html"><div class="ttname"><a href="class_gain.html">Gain</a></div><div class="ttdoc">Provide an output multiplying the input by a constant. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_8h_source.html#l00035">Gain.h:35</a></div></div>
<div class="ttc" id="class_gain_form_base_html"><div class="ttname"><a href="class_gain_form_base.html">GainFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00949">ElementForm.h:949</a></div></div>
-<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00007">GainForm.h:7</a></div></div>
+<div class="ttc" id="class_gain_form_html"><div class="ttname"><a href="class_gain_form.html">GainForm</a></div><div class="ttdoc">Form to edit the gain control data. </div><div class="ttdef"><b>Definition:</b> <a href="_gain_form_8h_source.html#l00031">GainForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>GainForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_gain_form_8h.html">GainForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_general_properties_form_8cpp_source.html b/docs/doxygen/html/_general_properties_form_8cpp_source.html
index e3e569f..614eac2 100644
--- a/docs/doxygen/html/_general_properties_form_8cpp_source.html
+++ b/docs/doxygen/html/_general_properties_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,9 @@ $(document).ready(function(){initNavTree('_general_properties_form_8cpp_source.h
<div class="title">GeneralPropertiesForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;GeneralPropertiesForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;GeneralPropertiesForm::GeneralPropertiesForm(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_properties = properties;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="comment">// Clear the choices and rebuild to set the correct translations.</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_choiceLanguage-&gt;Clear();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_choiceLanguage-&gt;Insert(_(<span class="stringliteral">&quot;English&quot;</span>), 0);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_choiceLanguage-&gt;Insert(_(<span class="stringliteral">&quot;Portuguese&quot;</span>), 1);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_choiceTheme-&gt;Clear();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceTheme-&gt;Insert(_(<span class="stringliteral">&quot;Light&quot;</span>), 0);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_choiceTheme-&gt;Insert(_(<span class="stringliteral">&quot;Dark&quot;</span>), 1);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">switch</span>(data.language) {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">case</span> wxLANGUAGE_ENGLISH: {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_choiceLanguage-&gt;SetSelection(0);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">case</span> wxLANGUAGE_PORTUGUESE_BRAZILIAN: {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_choiceLanguage-&gt;SetSelection(1);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceLanguage-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">switch</span>(data.theme) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">case</span> THEME_LIGHT: {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_choiceTheme-&gt;SetSelection(0);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">case</span> THEME_DARK: {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_choiceTheme-&gt;SetSelection(1);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;GeneralPropertiesForm::~GeneralPropertiesForm() {}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keywordtype">void</span> GeneralPropertiesForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">bool</span> GeneralPropertiesForm::ValidateData()</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">auto</span> checkData = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">bool</span> hasChanges = <span class="keyword">false</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; wxTextFile file(<span class="stringliteral">&quot;config.ini&quot;</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(!file.Create()) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(!file.Open()) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Fail to access the file.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; _(<span class="stringliteral">&quot;It was not possible to access the init file.\nThe settings won&#39;t be applied.&quot;</span>),</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; file.Clear();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; wxString line = <span class="stringliteral">&quot;lang=&quot;</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">switch</span>(m_choiceLanguage-&gt;GetSelection()) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; line += <span class="stringliteral">&quot;en&quot;</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; line += <span class="stringliteral">&quot;pt-br&quot;</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; data.language = wxLANGUAGE_PORTUGUESE_BRAZILIAN;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; file.AddLine(line);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(data.language != checkData.language) hasChanges = <span class="keyword">true</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; line = <span class="stringliteral">&quot;theme=&quot;</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">switch</span>(m_choiceTheme-&gt;GetSelection()) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; line += <span class="stringliteral">&quot;light&quot;</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; line += <span class="stringliteral">&quot;dark&quot;</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; data.theme = THEME_DARK;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; file.AddLine(line);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(data.theme != checkData.theme) hasChanges = <span class="keyword">true</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; file.Write();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; file.Close();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(hasChanges) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;The application must be restarted to settings changes be applied.&quot;</span>),</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; _(<span class="stringliteral">&quot;Info&quot;</span>), wxOK | wxCENTRE | wxICON_INFORMATION);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_properties-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;GeneralPropertiesForm::GeneralPropertiesForm(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; : <a class="code" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_properties = properties;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Clear the choices and rebuild to set the correct translations.</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_choiceLanguage-&gt;Clear();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_choiceLanguage-&gt;Insert(_(<span class="stringliteral">&quot;English&quot;</span>), 0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_choiceLanguage-&gt;Insert(_(<span class="stringliteral">&quot;Portuguese&quot;</span>), 1);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_choiceTheme-&gt;Clear();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceTheme-&gt;Insert(_(<span class="stringliteral">&quot;Light&quot;</span>), 0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_choiceTheme-&gt;Insert(_(<span class="stringliteral">&quot;Dark&quot;</span>), 1);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">switch</span>(data.language) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> wxLANGUAGE_ENGLISH: {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_choiceLanguage-&gt;SetSelection(0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">case</span> wxLANGUAGE_PORTUGUESE_BRAZILIAN: {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_choiceLanguage-&gt;SetSelection(1);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_choiceLanguage-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">switch</span>(data.theme) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> THEME_LIGHT: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_choiceTheme-&gt;SetSelection(0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">case</span> THEME_DARK: {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_choiceTheme-&gt;SetSelection(1);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;GeneralPropertiesForm::~GeneralPropertiesForm() {}</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> GeneralPropertiesForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">bool</span> GeneralPropertiesForm::ValidateData()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">auto</span> checkData = m_properties-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">bool</span> hasChanges = <span class="keyword">false</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; wxTextFile file(<span class="stringliteral">&quot;config.ini&quot;</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(!file.Create()) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(!file.Open()) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Fail to access the file.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>,</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; _(<span class="stringliteral">&quot;It was not possible to access the init file.\nThe settings won&#39;t be applied.&quot;</span>),</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; file.Clear();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxString line = <span class="stringliteral">&quot;lang=&quot;</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">switch</span>(m_choiceLanguage-&gt;GetSelection()) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; line += <span class="stringliteral">&quot;en&quot;</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; line += <span class="stringliteral">&quot;pt-br&quot;</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data.language = wxLANGUAGE_PORTUGUESE_BRAZILIAN;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; file.AddLine(line);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(data.language != checkData.language) hasChanges = <span class="keyword">true</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; line = <span class="stringliteral">&quot;theme=&quot;</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">switch</span>(m_choiceTheme-&gt;GetSelection()) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; line += <span class="stringliteral">&quot;light&quot;</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; line += <span class="stringliteral">&quot;dark&quot;</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; data.theme = THEME_DARK;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; file.AddLine(line);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(data.theme != checkData.theme) hasChanges = <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; file.Write();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; file.Close();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(hasChanges) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;The application must be restarted to settings changes be applied.&quot;</span>),</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; _(<span class="stringliteral">&quot;Info&quot;</span>), wxOK | wxCENTRE | wxICON_INFORMATION);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_properties-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="_general_properties_form_8h_html"><div class="ttname"><a href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a></div></div>
<div class="ttc" id="class_general_properties_form_base_html"><div class="ttname"><a href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00048">PropertiesForm.h:48</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/_general_properties_form_8h.html b/docs/doxygen/html/_general_properties_form_8h.html
new file mode 100644
index 0000000..86aa7a7
--- /dev/null
+++ b/docs/doxygen/html/_general_properties_form_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/GeneralPropertiesForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_general_properties_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">GeneralPropertiesForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;PropertiesForm.h&quot;</code><br />
+<code>#include &lt;wx/textfile.h&gt;</code><br />
+<code>#include &lt;wx/msgdlg.h&gt;</code><br />
+</div>
+<p><a href="_general_properties_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_general_properties_form.html">GeneralPropertiesForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the software's general data. <a href="class_general_properties_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_general_properties_form_8h_source.html b/docs/doxygen/html/_general_properties_form_8h_source.html
index f4bbdd7..fa7496f 100644
--- a/docs/doxygen/html/_general_properties_form_8h_source.html
+++ b/docs/doxygen/html/_general_properties_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_general_properties_form_8h_source.htm
<div class="title">GeneralPropertiesForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef GENERALPROPERTIESFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define GENERALPROPERTIESFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_general_properties_form.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a> : <span class="keyword">public</span> <a class="code" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; </div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties = NULL;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;};</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif // GENERALPROPERTIESFORM_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00011">GeneralPropertiesForm.h:11</a></div></div>
+<a href="_general_properties_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GENERALPROPERTIESFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define GENERALPROPERTIESFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_general_properties_form.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a> : <span class="keyword">public</span> <a class="code" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif // GENERALPROPERTIESFORM_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdoc">Form to edit the software&amp;#39;s general data. </div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00035">GeneralPropertiesForm.h:35</a></div></div>
<div class="ttc" id="class_general_properties_form_base_html"><div class="ttname"><a href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00048">PropertiesForm.h:48</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>GeneralPropertiesForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_generator_stab_form_8cpp_source.html b/docs/doxygen/html/_generator_stab_form_8cpp_source.html
index e4c2d65..6b06c32 100644
--- a/docs/doxygen/html/_generator_stab_form_8cpp_source.html
+++ b/docs/doxygen/html/_generator_stab_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,13 +88,18 @@ $(document).ready(function(){initNavTree('_generator_stab_form_8cpp_source.html'
<div class="title">GeneratorStabForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;GeneratorStabForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;GeneratorStabForm::GeneratorStabForm(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator) : <a class="code" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a>(parent)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_syncGenerator = syncGenerator;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_parent = parent;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_checkBoxPlotSyncMachine-&gt;SetValue(data.plotSyncMachine);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_textCtrlInertia-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.inertia));</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_textCtrlDamping-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.damping));</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_checkBoxUseAVR-&gt;SetValue(data.useAVR);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_buttonEditAVR-&gt;Enable(data.useAVR);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_checkBoxUseSG-&gt;SetValue(data.useSpeedGovernor);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_buttonEditSG-&gt;Enable(data.useSpeedGovernor);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_textCtrlRa-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.armResistance));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_textCtrlXp-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.potierReactance));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlSat-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.satFactor));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_textCtrlSyncXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.syncXd));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_textCtrlSyncXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.syncXq));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_textCtrlTranXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transXd));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_textCtrlTranXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transXq));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_textCtrlTranTd0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transTd0));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_textCtrlTranTq0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transTq0));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_textCtrlSubXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subXd));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_textCtrlSubXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subXq));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_textCtrlSubTd0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subTd0));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_textCtrlSubTq0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subTq0));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;GeneratorStabForm::~GeneratorStabForm() {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnEditAVRButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(!data.avr) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; data.avr = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* cEditor = <span class="keyword">new</span> <a class="code" href="class_control_editor.html">ControlEditor</a>(m_parent, IOControl::IN_TERMINAL_VOLTAGE | IOControl::OUT_FIELD_VOLTAGE);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; cEditor-&gt;SetElementsList(data.avr-&gt;GetControlElementsList());</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; cEditor-&gt;SetConnectionsList(data.avr-&gt;GetConnectionLineList());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; cEditor-&gt;SetControlContainer(data.avr);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; cEditor-&gt;Show();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnSpeedGovernorButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(!data.speedGov) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; data.speedGov = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* cEditor = <span class="keyword">new</span> <a class="code" href="class_control_editor.html">ControlEditor</a>(m_parent, IOControl::IN_VELOCITY | IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cEditor-&gt;SetElementsList(data.speedGov-&gt;GetControlElementsList());</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cEditor-&gt;SetConnectionsList(data.speedGov-&gt;GetConnectionLineList());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; cEditor-&gt;SetControlContainer(data.speedGov);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; cEditor-&gt;Show();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnSwitchingButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_syncGenerator);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Synchronous generator: Switching&quot;</span>));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;}</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keywordtype">bool</span> GeneratorStabForm::ValidateData()</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;{</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.plotSyncMachine = m_checkBoxPlotSyncMachine-&gt;GetValue();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlInertia-&gt;GetValue(), data.inertia,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Inertia\&quot;.&quot;</span>)))</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlDamping-&gt;GetValue(), data.damping,</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Damping factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; data.useAVR = m_checkBoxUseAVR-&gt;GetValue();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; data.useSpeedGovernor = m_checkBoxUseSG-&gt;GetValue();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlRa-&gt;GetValue(), data.armResistance,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Armature resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlXp-&gt;GetValue(), data.potierReactance,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Potier reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlSat-&gt;GetValue(), data.satFactor,</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Saturation factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_parent, m_textCtrlSyncXd-&gt;GetValue(), data.syncXd,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Synchronous direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_parent, m_textCtrlSyncXq-&gt;GetValue(), data.syncXq,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Synchronous quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_parent, m_textCtrlTranXd-&gt;GetValue(), data.transXd,</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_parent, m_textCtrlTranXq-&gt;GetValue(), data.transXq,</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_parent, m_textCtrlTranTd0-&gt;GetValue(), data.transTd0,</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory direct-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_parent, m_textCtrlTranTq0-&gt;GetValue(), data.transTq0,</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory quadrature-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_parent, m_textCtrlSubXd-&gt;GetValue(), data.subXd,</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_parent, m_textCtrlSubXq-&gt;GetValue(), data.subXq,</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_parent, m_textCtrlSubTd0-&gt;GetValue(), data.subTd0,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory direct-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_parent, m_textCtrlSubTq0-&gt;GetValue(), data.subTq0,</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory quadrature-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::UseAVRClick(wxCommandEvent&amp; event) { m_buttonEditAVR-&gt;Enable(m_checkBoxUseAVR-&gt;GetValue()); }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::UseSGClick(wxCommandEvent&amp; event) { m_buttonEditSG-&gt;Enable(m_checkBoxUseSG-&gt;GetValue()); }</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_generator_stab_form_8h.html">GeneratorStabForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;GeneratorStabForm::GeneratorStabForm(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator) : <a class="code" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a>(parent)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_syncGenerator = syncGenerator;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_parent = parent;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_checkBoxPlotSyncMachine-&gt;SetValue(data.plotSyncMachine);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_textCtrlInertia-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.inertia));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_textCtrlDamping-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.damping));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_checkBoxUseAVR-&gt;SetValue(data.useAVR);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_buttonEditAVR-&gt;Enable(data.useAVR);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_checkBoxUseSG-&gt;SetValue(data.useSpeedGovernor);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_buttonEditSG-&gt;Enable(data.useSpeedGovernor);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_textCtrlRa-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.armResistance));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_textCtrlXp-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.potierReactance));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_textCtrlSat-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.satFactor));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_textCtrlSyncXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.syncXd));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_textCtrlSyncXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.syncXq));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_textCtrlTranXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transXd));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_textCtrlTranXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transXq));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_textCtrlTranTd0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transTd0));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_textCtrlTranTq0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.transTq0));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_textCtrlSubXd-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subXd));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_textCtrlSubXq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subXq));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_textCtrlSubTd0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subTd0));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_textCtrlSubTq0-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.subTq0));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;GeneratorStabForm::~GeneratorStabForm() {}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnEditAVRButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(!data.avr) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.avr = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* cEditor = <span class="keyword">new</span> <a class="code" href="class_control_editor.html">ControlEditor</a>(m_parent, IOControl::IN_TERMINAL_VOLTAGE | IOControl::OUT_FIELD_VOLTAGE);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; cEditor-&gt;SetElementsList(data.avr-&gt;GetControlElementsList());</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; cEditor-&gt;SetConnectionsList(data.avr-&gt;GetConnectionLineList());</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; cEditor-&gt;SetControlContainer(data.avr);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; cEditor-&gt;Show();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnSpeedGovernorButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(!data.speedGov) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data.speedGov = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <a class="code" href="class_control_editor.html">ControlEditor</a>* cEditor = <span class="keyword">new</span> <a class="code" href="class_control_editor.html">ControlEditor</a>(m_parent, IOControl::IN_VELOCITY | IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; cEditor-&gt;SetElementsList(data.speedGov-&gt;GetControlElementsList());</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; cEditor-&gt;SetConnectionsList(data.speedGov-&gt;GetConnectionLineList());</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; cEditor-&gt;SetControlContainer(data.speedGov);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; cEditor-&gt;Show();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::OnSwitchingButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_syncGenerator);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Synchronous generator: Switching&quot;</span>));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keywordtype">bool</span> GeneratorStabForm::ValidateData()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; data.plotSyncMachine = m_checkBoxPlotSyncMachine-&gt;GetValue();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlInertia-&gt;GetValue(), data.inertia,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Inertia\&quot;.&quot;</span>)))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlDamping-&gt;GetValue(), data.damping,</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Damping factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; data.useAVR = m_checkBoxUseAVR-&gt;GetValue();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; data.useSpeedGovernor = m_checkBoxUseSG-&gt;GetValue();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlRa-&gt;GetValue(), data.armResistance,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Armature resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlXp-&gt;GetValue(), data.potierReactance,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Potier reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlSat-&gt;GetValue(), data.satFactor,</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Saturation factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_parent, m_textCtrlSyncXd-&gt;GetValue(), data.syncXd,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Synchronous direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_parent, m_textCtrlSyncXq-&gt;GetValue(), data.syncXq,</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Synchronous quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_parent, m_textCtrlTranXd-&gt;GetValue(), data.transXd,</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_parent, m_textCtrlTranXq-&gt;GetValue(), data.transXq,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_parent, m_textCtrlTranTd0-&gt;GetValue(), data.transTd0,</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory direct-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_parent, m_textCtrlTranTq0-&gt;GetValue(), data.transTq0,</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Transitory quadrature-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_parent, m_textCtrlSubXd-&gt;GetValue(), data.subXd,</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory direct-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_parent, m_textCtrlSubXq-&gt;GetValue(), data.subXq,</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory quadrature-axis reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_parent, m_textCtrlSubTd0-&gt;GetValue(), data.subTd0,</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory direct-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_parent, m_textCtrlSubTq0-&gt;GetValue(), data.subTq0,</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Subtransitory quadrature-axis time constant\&quot;.&quot;</span>)))</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::UseAVRClick(wxCommandEvent&amp; event) { m_buttonEditAVR-&gt;Enable(m_checkBoxUseAVR-&gt;GetValue()); }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keywordtype">void</span> GeneratorStabForm::UseSGClick(wxCommandEvent&amp; event) { m_buttonEditSG-&gt;Enable(m_checkBoxUseSG-&gt;GetValue()); }</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="_generator_stab_form_8h_html"><div class="ttname"><a href="_generator_stab_form_8h.html">GeneratorStabForm.h</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
<div class="ttc" id="class_generator_stab_form_base_html"><div class="ttname"><a href="class_generator_stab_form_base.html">GeneratorStabFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00247">ElementForm.h:247</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_generator_stab_form_8h.html b/docs/doxygen/html/_generator_stab_form_8h.html
new file mode 100644
index 0000000..780c73c
--- /dev/null
+++ b/docs/doxygen/html/_generator_stab_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/GeneratorStabForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_generator_stab_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">GeneratorStabForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_generator_stab_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_generator_stab_form.html">GeneratorStabForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the synchronous generator data for electromechanical studies. <a href="class_generator_stab_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_generator_stab_form_8h.html">GeneratorStabForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_generator_stab_form_8h_source.html b/docs/doxygen/html/_generator_stab_form_8h_source.html
index bdea5a8..62ee696 100644
--- a/docs/doxygen/html/_generator_stab_form_8h_source.html
+++ b/docs/doxygen/html/_generator_stab_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,18 +88,18 @@ $(document).ready(function(){initNavTree('_generator_stab_form_8h_source.html','
<div class="title">GeneratorStabForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef GENERATORSTABFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define GENERATORSTABFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_generator_stab_form.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a> : <span class="keyword">public</span> <a class="code" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UseAVRClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UseSGClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnEditAVRButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSpeedGovernorButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSwitchingButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* m_syncGenerator = NULL;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif // GENERATORSTABFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00011">GeneratorStabForm.h:11</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
+<a href="_generator_stab_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GENERATORSTABFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define GENERATORSTABFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_editor.html">ControlEditor</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_generator_stab_form.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a> : <span class="keyword">public</span> <a class="code" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UseAVRClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UseSGClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnEditAVRButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSpeedGovernorButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSwitchingButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* m_syncGenerator = NULL;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // GENERATORSTABFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdoc">Form to edit the synchronous generator data for electromechanical studies. </div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00035">GeneratorStabForm.h:35</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
<div class="ttc" id="class_generator_stab_form_base_html"><div class="ttname"><a href="class_generator_stab_form_base.html">GeneratorStabFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00247">ElementForm.h:247</a></div></div>
-<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00067">ControlEditor.h:67</a></div></div>
+<div class="ttc" id="class_control_editor_html"><div class="ttname"><a href="class_control_editor.html">ControlEditor</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_editor_8h_source.html#l00091">ControlEditor.h:91</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>GeneratorStabForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_generator_stab_form_8h.html">GeneratorStabForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_graphical_element_8cpp_source.html b/docs/doxygen/html/_graphical_element_8cpp_source.html
index 8418df9..d5d8d72 100644
--- a/docs/doxygen/html/_graphical_element_8cpp_source.html
+++ b/docs/doxygen/html/_graphical_element_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,8 @@ $(document).ready(function(){initNavTree('_graphical_element_8cpp_source.html','
<div class="title">GraphicalElement.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;GraphicalElement.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;GraphicalElement::GraphicalElement() : <a class="code" href="class_element.html">Element</a>()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;}</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;GraphicalElement::~GraphicalElement()</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_graphical_element_8h.html">GraphicalElement.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;GraphicalElement::GraphicalElement() : <a class="code" href="class_element.html">Element</a>()</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;}</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;GraphicalElement::~GraphicalElement()</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;}</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_graphical_element_8h_html"><div class="ttname"><a href="_graphical_element_8h.html">GraphicalElement.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_graphical_element_8h.html b/docs/doxygen/html/_graphical_element_8h.html
new file mode 100644
index 0000000..362b0bf
--- /dev/null
+++ b/docs/doxygen/html/_graphical_element_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/GraphicalElement.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_graphical_element_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">GraphicalElement.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_element_8h_source.html">Element.h</a>&quot;</code><br />
+</div>
+<p><a href="_graphical_element_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_graphical_element.html">GraphicalElement</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class for graphical elements shown with power elements in workspace. <a href="class_graphical_element.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_graphical_element_8h.html">GraphicalElement.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_graphical_element_8h_source.html b/docs/doxygen/html/_graphical_element_8h_source.html
index a6fb132..3f28397 100644
--- a/docs/doxygen/html/_graphical_element_8h_source.html
+++ b/docs/doxygen/html/_graphical_element_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_graphical_element_8h_source.html','')
<div class="title">GraphicalElement.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef GRAPHICALELEMENT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define GRAPHICALELEMENT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_graphical_element.html"> 6</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_graphical_element.html">GraphicalElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_graphical_element.html">GraphicalElement</a>();</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; ~<a class="code" href="class_graphical_element.html">GraphicalElement</a>();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;};</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#endif // GRAPHICALELEMENT_H</span></div><div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00006">GraphicalElement.h:6</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
+<a href="_graphical_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef GRAPHICALELEMENT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define GRAPHICALELEMENT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_graphical_element.html"> 30</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_graphical_element.html">GraphicalElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="class_graphical_element.html">GraphicalElement</a>();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; ~<a class="code" href="class_graphical_element.html">GraphicalElement</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif // GRAPHICALELEMENT_H</span></div><div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdoc">Abstract class for graphical elements shown with power elements in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00030">GraphicalElement.h:30</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>GraphicalElement.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_graphical_element_8h.html">GraphicalElement.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_i_o_control_8cpp_source.html b/docs/doxygen/html/_i_o_control_8cpp_source.html
index b0d035a..22c79bf 100644
--- a/docs/doxygen/html/_i_o_control_8cpp_source.html
+++ b/docs/doxygen/html/_i_o_control_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,21 @@ $(document).ready(function(){initNavTree('_i_o_control_8cpp_source.html','');});
<div class="title">IOControl.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;IOControl.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;IOControlForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;IOControl::IOControl(<span class="keywordtype">int</span> ioFlags, <span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_ioFlags = ioFlags;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_node.html">Node</a>* node = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position, Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_nodeList.push_back(node);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IN_TERMINAL_VOLTAGE)</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; SetValue(IN_TERMINAL_VOLTAGE);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ioFlags &amp; IN_VELOCITY)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; SetValue(IN_VELOCITY);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; node-&gt;StartMove(m_position);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;}</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;IOControl::~IOControl() {}</div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4"> 19</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; std::vector&lt;wxPoint2DDouble&gt; pts;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize - 10, m_borderSize));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; pts.push_back(m_position + wxPoint2DDouble(m_width / 2 - m_borderSize, 0));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize - 10, -m_borderSize));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize - 10));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; pts.push_back(m_position + wxPoint2DDouble(0, m_height / 2 - m_borderSize));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize - 10));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize + 10, m_borderSize));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize + 10, -m_borderSize));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; pts.push_back(m_position + wxPoint2DDouble(-m_width / 2 + m_borderSize, 0));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; pts.push_back(m_position + wxPoint2DDouble(0, -m_height / 2 + m_borderSize));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize + 10));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize + 10));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::vector&lt;wxPoint2DDouble&gt; selPts = pts;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; selPts[2] += wxPoint2DDouble(1.5 * borderSize / 2, 0);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; selPts[3] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; selPts[3] += wxPoint2DDouble(0, 1.5 * borderSize / 2);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; selPts[3] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; selPts[4] += wxPoint2DDouble(-1.5 * borderSize / 2, 0);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; selPts[0] += wxPoint2DDouble(0, -1.5 * borderSize / 2);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; selPts[3] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(selPts, GL_POLYGON);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(pts, GL_POLYGON);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(pts, GL_LINE_LOOP);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_glStringValue-&gt;render(m_position.m_x - 5, m_position.m_y);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y - 5);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_glStringValue-&gt;render(m_position.m_x + 5, m_position.m_y);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y + 5);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; DrawNodes();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439"> 105</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="class_i_o_control_form.html">IOControlForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_i_o_control_form.html">IOControlForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9"> 116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; UpdatePoints();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;wxString IOControl::GenerateText()</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wxString omega = wxString::FromUTF8(<span class="stringliteral">&quot;\xCF\x89&quot;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">switch</span>(m_value) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> IN_TERMINAL_VOLTAGE: {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Vt&quot;</span>);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> IN_VELOCITY: {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> omega;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> IN_ACTIVE_POWER: {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Pe&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> IN_REACTIVE_POWER: {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Qe&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> OUT_FIELD_VOLTAGE: {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Vf&quot;</span>);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">case</span> OUT_MEC_POWER: {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Pm&quot;</span>);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keywordtype">void</span> IOControl::SetValue(IOFlags value)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_value = value;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; wxString text = GenerateText();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 10 + 2 * m_borderSize;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_height = m_glStringValue-&gt;getheight() + 10 + 2 * m_borderSize;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position); <span class="comment">// Update rectangle.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; UpdatePoints();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keywordtype">void</span> IOControl::UpdatePoints()</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="class_node.html">Node</a>* node = m_nodeList[0];</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != m_ioNodeType) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Rotate 180 degrees</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; node-&gt;Rotate();</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; node-&gt;Rotate();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; node-&gt;SetNodeType(m_ioNodeType);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 2, 0));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2 - 2));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(2 - m_width / 2, 0));</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, 2 - m_height / 2));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7"> 226</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a>()</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* copy = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(m_ioFlags, m_elementID);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00073">Element.cpp:73</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_i_o_control_html_a47a5633ed68ef0648623b9733dc5dab9"><div class="ttname"><a href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00116">IOControl.cpp:116</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_i_o_control_html_a99303b5e9bd32affaed8f4e4084fc9f7"><div class="ttname"><a href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00226">IOControl.cpp:226</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="class_i_o_control_html_abbd3054700825f9c4ac1b7c813f7b439"><div class="ttname"><a href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00105">IOControl.cpp:105</a></div></div>
-<div class="ttc" id="class_i_o_control_html_aa6aab56f8936a87f099241d9bad9fee4"><div class="ttname"><a href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00019">IOControl.cpp:19</a></div></div>
-<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00007">IOControlForm.h:7</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_8h.html">IOControl.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_form_8h.html">IOControlForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;IOControl::IOControl(<span class="keywordtype">int</span> ioFlags, <span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_ioFlags = ioFlags;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_node.html">Node</a>* node = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position, Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_nodeList.push_back(node);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IN_TERMINAL_VOLTAGE)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; SetValue(IN_TERMINAL_VOLTAGE);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(ioFlags &amp; IN_VELOCITY)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; SetValue(IN_VELOCITY);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; node-&gt;StartMove(m_position);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;IOControl::~IOControl() {}</div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4"> 36</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;wxPoint2DDouble&gt; pts;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize - 10, m_borderSize));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; pts.push_back(m_position + wxPoint2DDouble(m_width / 2 - m_borderSize, 0));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize - 10, -m_borderSize));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize - 10));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; pts.push_back(m_position + wxPoint2DDouble(0, m_height / 2 - m_borderSize));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize - 10));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize + 10, m_borderSize));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize + 10, -m_borderSize));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; pts.push_back(m_position + wxPoint2DDouble(-m_width / 2 + m_borderSize, 0));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; pts.push_back(m_position + wxPoint2DDouble(0, -m_height / 2 + m_borderSize));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; pts.push_back(m_rect.GetRightTop() + wxPoint2DDouble(-m_borderSize, m_borderSize + 10));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; pts.push_back(m_rect.GetRightBottom() + wxPoint2DDouble(-m_borderSize, -m_borderSize));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; pts.push_back(m_rect.GetLeftBottom() + wxPoint2DDouble(m_borderSize, -m_borderSize));</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; pts.push_back(m_rect.GetLeftTop() + wxPoint2DDouble(m_borderSize, m_borderSize + 10));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glColor4dv(m_selectionColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::vector&lt;wxPoint2DDouble&gt; selPts = pts;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; selPts[2] += wxPoint2DDouble(1.5 * borderSize / 2, 0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; selPts[3] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; selPts[3] += wxPoint2DDouble(0, 1.5 * borderSize / 2);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; selPts[0] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; selPts[3] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; selPts[4] += wxPoint2DDouble(-1.5 * borderSize / 2, 0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; selPts[0] += wxPoint2DDouble(0, -1.5 * borderSize / 2);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; selPts[1] += wxPoint2DDouble(borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; selPts[2] += wxPoint2DDouble(borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; selPts[3] += wxPoint2DDouble(-borderSize / 2, borderSize / 2);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; selPts[4] += wxPoint2DDouble(-borderSize / 2, -borderSize / 2);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(selPts, GL_POLYGON);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(pts, GL_POLYGON);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(pts, GL_LINE_LOOP);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Plot number.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_glStringValue-&gt;bind();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_glStringValue-&gt;render(m_position.m_x - 5, m_position.m_y);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y - 5);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_glStringValue-&gt;render(m_position.m_x + 5, m_position.m_y);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_glStringValue-&gt;render(m_position.m_x, m_position.m_y + 5);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; DrawNodes();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439"> 122</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_i_o_control_form.html">IOControlForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_i_o_control_form.html">IOControlForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9"> 133</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; UpdatePoints();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;wxString IOControl::GenerateText()</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; wxString omega = wxString::FromUTF8(<span class="stringliteral">&quot;\xCF\x89&quot;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">switch</span>(m_value) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> IN_TERMINAL_VOLTAGE: {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Vt&quot;</span>);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">case</span> IN_VELOCITY: {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">return</span> omega;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">case</span> IN_ACTIVE_POWER: {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Pe&quot;</span>);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> IN_REACTIVE_POWER: {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_ioNodeType = Node::NODE_OUT;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Qe&quot;</span>);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> OUT_FIELD_VOLTAGE: {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Vf&quot;</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> OUT_MEC_POWER: {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> _(<span class="stringliteral">&quot;Pm&quot;</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">void</span> IOControl::SetValue(IOFlags value)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; m_value = value;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; wxString text = GenerateText();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(m_glStringValue) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">delete</span> m_glStringValue;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_glStringValue = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(text);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_glStringValue-&gt;setFont(font);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_glStringValue-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_width = m_glStringValue-&gt;getWidth() + 10 + 2 * m_borderSize;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; m_height = m_glStringValue-&gt;getheight() + 10 + 2 * m_borderSize;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position); <span class="comment">// Update rectangle.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; UpdatePoints();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keywordtype">void</span> IOControl::UpdatePoints()</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() != 0) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="class_node.html">Node</a>* node = m_nodeList[0];</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != m_ioNodeType) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="comment">// Rotate 180 degrees</span></div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; node-&gt;Rotate();</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; node-&gt;Rotate();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; node-&gt;SetNodeType(m_ioNodeType);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 2, 0));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2 - 2));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(2 - m_width / 2, 0));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(m_ioNodeType == Node::NODE_IN)</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; node-&gt;SetPosition(m_position + wxPoint2DDouble(0, 2 - m_height / 2));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; }</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"><a class="line" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7"> 243</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a>()</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* copy = <span class="keyword">new</span> <a class="code" href="class_i_o_control.html">IOControl</a>(m_ioFlags, m_elementID);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_glStringValue = NULL;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; SetValue(m_value);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00089">Element.cpp:89</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_i_o_control_html_a47a5633ed68ef0648623b9733dc5dab9"><div class="ttname"><a href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00133">IOControl.cpp:133</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_i_o_control_form_8h_html"><div class="ttname"><a href="_i_o_control_form_8h.html">IOControlForm.h</a></div></div>
+<div class="ttc" id="class_i_o_control_html_a99303b5e9bd32affaed8f4e4084fc9f7"><div class="ttname"><a href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00243">IOControl.cpp:243</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="class_i_o_control_html_abbd3054700825f9c4ac1b7c813f7b439"><div class="ttname"><a href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00122">IOControl.cpp:122</a></div></div>
+<div class="ttc" id="class_i_o_control_html_aa6aab56f8936a87f099241d9bad9fee4"><div class="ttname"><a href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00036">IOControl.cpp:36</a></div></div>
+<div class="ttc" id="_i_o_control_8h_html"><div class="ttname"><a href="_i_o_control_8h.html">IOControl.h</a></div></div>
+<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdoc">Form to edit the input/output control data. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00031">IOControlForm.h:31</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_i_o_control_8h.html b/docs/doxygen/html/_i_o_control_8h.html
new file mode 100644
index 0000000..e4a200a
--- /dev/null
+++ b/docs/doxygen/html/_i_o_control_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/IOControl.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_i_o_control_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">IOControl.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &quot;wxGLString.h&quot;</code><br />
+</div>
+<p><a href="_i_o_control_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_control.html">IOControl</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provides the communication with the power element. <a href="class_i_o_control.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_i_o_control_8h.html">IOControl.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_i_o_control_8h_source.html b/docs/doxygen/html/_i_o_control_8h_source.html
index ab97414..4950e4d 100644
--- a/docs/doxygen/html/_i_o_control_8h_source.html
+++ b/docs/doxygen/html/_i_o_control_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,24 @@ $(document).ready(function(){initNavTree('_i_o_control_8h_source.html','');});
<div class="title">IOControl.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IOCONTROL_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IOCONTROL_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control_form.html">IOControlForm</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_i_o_control.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control.html">IOControl</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">enum</span> IOFlags {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; IN_TERMINAL_VOLTAGE = 1 &lt;&lt; 0,</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; IN_VELOCITY = 1 &lt;&lt; 1,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; IN_ACTIVE_POWER = 1 &lt;&lt; 2,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; IN_REACTIVE_POWER = 1 &lt;&lt; 3,</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; OUT_FIELD_VOLTAGE = 1 &lt;&lt; 4,</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; OUT_MEC_POWER = 1 &lt;&lt; 5</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; };</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>(<span class="keywordtype">int</span> ioFlags, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; ~<a class="code" href="class_i_o_control.html">IOControl</a>();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1"> 27</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90"> 28</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> wxString GenerateText();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> IOFlags GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(IOFlags value);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetIOFlags()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ioFlags; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> Node::NodeType GetType() { <span class="keywordflow">return</span> m_ioNodeType; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">GetCopy</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; IOFlags m_value;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">int</span> m_ioFlags;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; Node::NodeType m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // IOCONTROL_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_i_o_control_html_aa064c5d70e562334e2b374f919f42ef1"><div class="ttname"><a href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1">IOControl::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00027">IOControl.h:27</a></div></div>
-<div class="ttc" id="class_i_o_control_html_a47a5633ed68ef0648623b9733dc5dab9"><div class="ttname"><a href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00116">IOControl.cpp:116</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_i_o_control_html_adebd59a32fd699ba4dff4dff44dfbf90"><div class="ttname"><a href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90">IOControl::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00028">IOControl.h:28</a></div></div>
-<div class="ttc" id="class_i_o_control_html_a99303b5e9bd32affaed8f4e4084fc9f7"><div class="ttname"><a href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00226">IOControl.cpp:226</a></div></div>
-<div class="ttc" id="class_i_o_control_html_abbd3054700825f9c4ac1b7c813f7b439"><div class="ttname"><a href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00105">IOControl.cpp:105</a></div></div>
-<div class="ttc" id="class_i_o_control_html_aa6aab56f8936a87f099241d9bad9fee4"><div class="ttname"><a href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00019">IOControl.cpp:19</a></div></div>
-<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00007">IOControlForm.h:7</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_i_o_control_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef IOCONTROL_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define IOCONTROL_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control_form.html">IOControlForm</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_i_o_control.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control.html">IOControl</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">enum</span> IOFlags {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; IN_TERMINAL_VOLTAGE = 1 &lt;&lt; 0,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; IN_VELOCITY = 1 &lt;&lt; 1,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; IN_ACTIVE_POWER = 1 &lt;&lt; 2,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; IN_REACTIVE_POWER = 1 &lt;&lt; 3,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; OUT_FIELD_VOLTAGE = 1 &lt;&lt; 4,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; OUT_MEC_POWER = 1 &lt;&lt; 5</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; };</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>(<span class="keywordtype">int</span> ioFlags, <span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; ~<a class="code" href="class_i_o_control.html">IOControl</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"><a class="line" href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1"> 51</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90"> 52</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { SetValue(m_value); }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> wxString GenerateText();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> IOFlags GetValue()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_value; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetValue(IOFlags value);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">int</span> GetIOFlags()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_ioFlags; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> Node::NodeType GetType() { <span class="keywordflow">return</span> m_ioNodeType; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">GetCopy</a>();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; IOFlags m_value;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">int</span> m_ioFlags;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; Node::NodeType m_ioNodeType = Node::NODE_IN;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringValue = NULL;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // IOCONTROL_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_i_o_control_html_aa064c5d70e562334e2b374f919f42ef1"><div class="ttname"><a href="class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1">IOControl::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00051">IOControl.h:51</a></div></div>
+<div class="ttc" id="class_i_o_control_html_a47a5633ed68ef0648623b9733dc5dab9"><div class="ttname"><a href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00133">IOControl.cpp:133</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="class_i_o_control_html_adebd59a32fd699ba4dff4dff44dfbf90"><div class="ttname"><a href="class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90">IOControl::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00052">IOControl.h:52</a></div></div>
+<div class="ttc" id="class_i_o_control_html_a99303b5e9bd32affaed8f4e4084fc9f7"><div class="ttname"><a href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00243">IOControl.cpp:243</a></div></div>
+<div class="ttc" id="class_i_o_control_html_abbd3054700825f9c4ac1b7c813f7b439"><div class="ttname"><a href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00122">IOControl.cpp:122</a></div></div>
+<div class="ttc" id="class_i_o_control_html_aa6aab56f8936a87f099241d9bad9fee4"><div class="ttname"><a href="class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4">IOControl::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8cpp_source.html#l00036">IOControl.cpp:36</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdoc">Form to edit the input/output control data. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00031">IOControlForm.h:31</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>IOControl.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_i_o_control_8h.html">IOControl.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_i_o_control_form_8cpp_source.html b/docs/doxygen/html/_i_o_control_form_8cpp_source.html
index ef71759..7f17159 100644
--- a/docs/doxygen/html/_i_o_control_form_8cpp_source.html
+++ b/docs/doxygen/html/_i_o_control_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,9 @@ $(document).ready(function(){initNavTree('_i_o_control_form_8cpp_source.html',''
<div class="title">IOControlForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;IOControlForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;IOControlForm::IOControlForm(wxWindow* parent, <a class="code" href="class_i_o_control.html">IOControl</a>* ioControl) : <a class="code" href="class_i_o_control_form_base.html">IOControlFormBase</a>(parent)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; </div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_parent = parent;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_ioControl = ioControl;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">int</span> ioFlags = m_ioControl-&gt;GetIOFlags();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordtype">int</span> inChoiceNumber = -1;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">int</span> outChoiceNumber = -1;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_TERMINAL_VOLTAGE) {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Terminal voltage&quot;</span>));</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_inputFlags.push_back(IOControl::IN_TERMINAL_VOLTAGE);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_TERMINAL_VOLTAGE) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_VELOCITY) {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Velocity&quot;</span>));</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_inputFlags.push_back(IOControl::IN_VELOCITY);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_VELOCITY) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_ACTIVE_POWER) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_inputFlags.push_back(IOControl::IN_ACTIVE_POWER);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_ACTIVE_POWER) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_REACTIVE_POWER) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_inputFlags.push_back(IOControl::IN_REACTIVE_POWER);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_REACTIVE_POWER) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::OUT_FIELD_VOLTAGE) {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_choiceOutput-&gt;Append(_(<span class="stringliteral">&quot;Field voltage&quot;</span>));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_outputFlags.push_back(IOControl::OUT_FIELD_VOLTAGE);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::OUT_FIELD_VOLTAGE) outChoiceNumber = (<span class="keywordtype">int</span>)m_outputFlags.size() - 1;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::OUT_MEC_POWER) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_choiceOutput-&gt;Append(_(<span class="stringliteral">&quot;Mechanical power&quot;</span>));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_outputFlags.push_back(IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::OUT_MEC_POWER) outChoiceNumber = (<span class="keywordtype">int</span>)m_outputFlags.size() - 1;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(inChoiceNumber != -1) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_choiceInput-&gt;SetSelection(inChoiceNumber);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_choiceOutput-&gt;SetSelection(outChoiceNumber);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;IOControlForm::~IOControlForm() {}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">bool</span> IOControlForm::ValidateData()</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_checkBoxInput-&gt;GetValue() &amp;&amp; m_choiceInput-&gt;GetSelection() != -1) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_ioControl-&gt;SetValue(m_inputFlags[m_choiceInput-&gt;GetSelection()]);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_checkBoxOutput-&gt;GetValue() &amp;&amp; m_choiceOutput-&gt;GetSelection() != -1) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_ioControl-&gt;SetValue(m_outputFlags[m_choiceOutput-&gt;GetSelection()]);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnInputChecked(wxCommandEvent&amp; event)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnOutputChecked(wxCommandEvent&amp; event)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;{</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="ttc" id="class_i_o_control_form_base_html"><div class="ttname"><a href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00975">ElementForm.h:975</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_form_8h.html">IOControlForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;IOControlForm::IOControlForm(wxWindow* parent, <a class="code" href="class_i_o_control.html">IOControl</a>* ioControl) : <a class="code" href="class_i_o_control_form_base.html">IOControlFormBase</a>(parent)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_parent = parent;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_ioControl = ioControl;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">int</span> ioFlags = m_ioControl-&gt;GetIOFlags();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">int</span> inChoiceNumber = -1;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> outChoiceNumber = -1;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_TERMINAL_VOLTAGE) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Terminal voltage&quot;</span>));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_inputFlags.push_back(IOControl::IN_TERMINAL_VOLTAGE);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_TERMINAL_VOLTAGE) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_VELOCITY) {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Velocity&quot;</span>));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_inputFlags.push_back(IOControl::IN_VELOCITY);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_VELOCITY) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_ACTIVE_POWER) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_inputFlags.push_back(IOControl::IN_ACTIVE_POWER);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_ACTIVE_POWER) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::IN_REACTIVE_POWER) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_choiceInput-&gt;Append(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_inputFlags.push_back(IOControl::IN_REACTIVE_POWER);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::IN_REACTIVE_POWER) inChoiceNumber = (<span class="keywordtype">int</span>)m_inputFlags.size() - 1;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::OUT_FIELD_VOLTAGE) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_choiceOutput-&gt;Append(_(<span class="stringliteral">&quot;Field voltage&quot;</span>));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_outputFlags.push_back(IOControl::OUT_FIELD_VOLTAGE);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::OUT_FIELD_VOLTAGE) outChoiceNumber = (<span class="keywordtype">int</span>)m_outputFlags.size() - 1;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(ioFlags &amp; IOControl::OUT_MEC_POWER) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_choiceOutput-&gt;Append(_(<span class="stringliteral">&quot;Mechanical power&quot;</span>));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_outputFlags.push_back(IOControl::OUT_MEC_POWER);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(m_ioControl-&gt;GetValue() == IOControl::OUT_MEC_POWER) outChoiceNumber = (<span class="keywordtype">int</span>)m_outputFlags.size() - 1;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(inChoiceNumber != -1) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_choiceInput-&gt;SetSelection(inChoiceNumber);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceOutput-&gt;SetSelection(outChoiceNumber);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;IOControlForm::~IOControlForm() {}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">bool</span> IOControlForm::ValidateData()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(m_checkBoxInput-&gt;GetValue() &amp;&amp; m_choiceInput-&gt;GetSelection() != -1) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_ioControl-&gt;SetValue(m_inputFlags[m_choiceInput-&gt;GetSelection()]);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_checkBoxOutput-&gt;GetValue() &amp;&amp; m_choiceOutput-&gt;GetSelection() != -1) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_ioControl-&gt;SetValue(m_outputFlags[m_choiceOutput-&gt;GetSelection()]);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnInputChecked(wxCommandEvent&amp; event)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keywordtype">void</span> IOControlForm::OnOutputChecked(wxCommandEvent&amp; event)</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;{</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_checkBoxOutput-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_checkBoxInput-&gt;SetValue(<span class="keyword">false</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_choiceOutput-&gt;Enable(<span class="keyword">true</span>);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_choiceInput-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="ttc" id="class_i_o_control_form_base_html"><div class="ttname"><a href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00975">ElementForm.h:975</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_i_o_control_form_8h_html"><div class="ttname"><a href="_i_o_control_form_8h.html">IOControlForm.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_i_o_control_form_8h.html b/docs/doxygen/html/_i_o_control_form_8h.html
new file mode 100644
index 0000000..dac7afb
--- /dev/null
+++ b/docs/doxygen/html/_i_o_control_form_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/IOControlForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_i_o_control_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">IOControlForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>&quot;</code><br />
+</div>
+<p><a href="_i_o_control_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_i_o_control_form.html">IOControlForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the input/output control data. <a href="class_i_o_control_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_i_o_control_form_8h.html">IOControlForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_i_o_control_form_8h_source.html b/docs/doxygen/html/_i_o_control_form_8h_source.html
index d9e71ff..f24ff47 100644
--- a/docs/doxygen/html/_i_o_control_form_8h_source.html
+++ b/docs/doxygen/html/_i_o_control_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,16 @@ $(document).ready(function(){initNavTree('_i_o_control_form_8h_source.html','');
<div class="title">IOControlForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef IOCONTROLFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define IOCONTROLFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;IOControl.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_i_o_control_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control_form.html">IOControlForm</a> : <span class="keyword">public</span> <a class="code" href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_i_o_control_form.html">IOControlForm</a>(wxWindow* parent, <a class="code" href="class_i_o_control.html">IOControl</a>* ioControl);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_i_o_control_form.html">IOControlForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInputChecked(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOutputChecked(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_ioControl;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; std::vector&lt;IOControl::IOFlags&gt; m_inputFlags;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; std::vector&lt;IOControl::IOFlags&gt; m_outputFlags; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;};</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif // IOCONTROLFORM_H</span></div><div class="ttc" id="class_i_o_control_form_base_html"><div class="ttname"><a href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00975">ElementForm.h:975</a></div></div>
-<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00011">IOControl.h:11</a></div></div>
-<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00007">IOControlForm.h:7</a></div></div>
+<a href="_i_o_control_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef IOCONTROLFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define IOCONTROLFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_i_o_control_8h.html">IOControl.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_i_o_control_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_i_o_control_form.html">IOControlForm</a> : <span class="keyword">public</span> <a class="code" href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_i_o_control_form.html">IOControlForm</a>(wxWindow* parent, <a class="code" href="class_i_o_control.html">IOControl</a>* ioControl);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_i_o_control_form.html">IOControlForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInputChecked(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOutputChecked(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_i_o_control.html">IOControl</a>* m_ioControl;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;IOControl::IOFlags&gt; m_inputFlags;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::vector&lt;IOControl::IOFlags&gt; m_outputFlags;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // IOCONTROLFORM_H</span></div><div class="ttc" id="class_i_o_control_form_base_html"><div class="ttname"><a href="class_i_o_control_form_base.html">IOControlFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00975">ElementForm.h:975</a></div></div>
+<div class="ttc" id="class_i_o_control_html"><div class="ttname"><a href="class_i_o_control.html">IOControl</a></div><div class="ttdoc">Provides the communication with the power element. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_8h_source.html#l00035">IOControl.h:35</a></div></div>
+<div class="ttc" id="_i_o_control_8h_html"><div class="ttname"><a href="_i_o_control_8h.html">IOControl.h</a></div></div>
+<div class="ttc" id="class_i_o_control_form_html"><div class="ttname"><a href="class_i_o_control_form.html">IOControlForm</a></div><div class="ttdoc">Form to edit the input/output control data. </div><div class="ttdef"><b>Definition:</b> <a href="_i_o_control_form_8h_source.html#l00031">IOControlForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>IOControlForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_i_o_control_form_8h.html">IOControlForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_ind_motor_8cpp_source.html b/docs/doxygen/html/_ind_motor_8cpp_source.html
index 09512aa..3b97823 100644
--- a/docs/doxygen/html/_ind_motor_8cpp_source.html
+++ b/docs/doxygen/html/_ind_motor_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,25 +88,27 @@ $(document).ready(function(){initNavTree('_ind_motor_8cpp_source.html','');});
<div class="title">IndMotor.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;IndMotorForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;IndMotor::IndMotor()</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_machines.html">Machines</a>()</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;}</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;IndMotor::IndMotor(wxString name)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; : <a class="code" href="class_machines.html">Machines</a>()</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;IndMotor::~IndMotor() {}</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keywordtype">void</span> IndMotor::DrawSymbol()<span class="keyword"> const</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; std::vector&lt;wxPoint2DDouble&gt; mPts;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; mPts.push_back(wxPoint2DDouble(-10, 13) + m_position);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; mPts.push_back(wxPoint2DDouble(-10, -13) + m_position);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; mPts.push_back(wxPoint2DDouble(0, 2) + m_position);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; mPts.push_back(wxPoint2DDouble(10, -13) + m_position);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; mPts.push_back(wxPoint2DDouble(10, 13) + m_position);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(mPts);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59"> 25</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59">IndMotor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit induction motor&quot;</span>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">GeneralMenuItens</a>(menu);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286"> 32</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>* indMotorForm = <span class="keyword">new</span> <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(indMotorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; indMotorForm-&gt;Destroy();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; indMotorForm-&gt;Destroy();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;}</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> IndMotor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; data.activePower = data.activePower / systemPowerBase;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; data.activePower = (data.activePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; data.activePower = (data.activePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8"> 83</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor::GetCopy</a>()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;}</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532"> 90</a></span>&#160;wxString <a class="code" href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532">IndMotor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00073">Element.cpp:73</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_ind_motor_html_ae785c4055db23b4ae1ef03f00468a532"><div class="ttname"><a href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532">IndMotor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00090">IndMotor.cpp:90</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00228">Element.cpp:228</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_ind_motor_html_ace3ce34ba500ec33bf37b9216ad636a8"><div class="ttname"><a href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00083">IndMotor.cpp:83</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00007">IndMotorForm.h:7</a></div></div>
-<div class="ttc" id="class_ind_motor_html_add48c9a03d197a6279ca2e33af0fe286"><div class="ttname"><a href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00032">IndMotor.cpp:32</a></div></div>
-<div class="ttc" id="class_ind_motor_html_a87666565ae1380993d94e7886e9a1f59"><div class="ttname"><a href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59">IndMotor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00025">IndMotor.cpp:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_form_8h.html">IndMotorForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;IndMotor::IndMotor() : <a class="code" href="class_machines.html">Machines</a>() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;IndMotor::IndMotor(wxString name) : <a class="code" href="class_machines.html">Machines</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;IndMotor::~IndMotor() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> IndMotor::DrawSymbol()<span class="keyword"> const</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; std::vector&lt;wxPoint2DDouble&gt; mPts;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; mPts.push_back(wxPoint2DDouble(-10, 13) + m_position);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; mPts.push_back(wxPoint2DDouble(-10, -13) + m_position);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; mPts.push_back(wxPoint2DDouble(0, 2) + m_position);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; mPts.push_back(wxPoint2DDouble(10, -13) + m_position);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; mPts.push_back(wxPoint2DDouble(10, 13) + m_position);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_element.html#a103b3cb2670012b2695940b094f63ab3">DrawLine</a>(mPts);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;}</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59"> 35</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59">IndMotor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit induction motor&quot;</span>));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">GeneralMenuItens</a>(menu);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286"> 42</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>* indMotorForm = <span class="keyword">new</span> <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(indMotorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; indMotorForm-&gt;Destroy();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; indMotorForm-&gt;Destroy();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> IndMotor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; data.activePower = data.activePower / systemPowerBase;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; data.activePower = (data.activePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.activePower = (data.activePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8"> 93</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor::GetCopy</a>()</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532"> 100</a></span>&#160;wxString <a class="code" href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532">IndMotor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_ind_motor_form_8h_html"><div class="ttname"><a href="_ind_motor_form_8h.html">IndMotorForm.h</a></div></div>
+<div class="ttc" id="class_element_html_a103b3cb2670012b2695940b094f63ab3"><div class="ttname"><a href="class_element.html#a103b3cb2670012b2695940b094f63ab3">Element::DrawLine</a></div><div class="ttdeci">virtual void DrawLine(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_LINE_STRIP) const</div><div class="ttdoc">Draw line. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00089">Element.cpp:89</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_ind_motor_html_ae785c4055db23b4ae1ef03f00468a532"><div class="ttname"><a href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532">IndMotor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00100">IndMotor.cpp:100</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="class_element_html_a35f55626a29d5256f8dc07cf92655e64"><div class="ttname"><a href="class_element.html#a35f55626a29d5256f8dc07cf92655e64">Element::GeneralMenuItens</a></div><div class="ttdeci">virtual void GeneralMenuItens(wxMenu &amp;menu)</div><div class="ttdoc">Insert general itens to context menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00245">Element.cpp:245</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_ind_motor_html_ace3ce34ba500ec33bf37b9216ad636a8"><div class="ttname"><a href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00093">IndMotor.cpp:93</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdoc">Form to edit the induction motor power data. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00031">IndMotorForm.h:31</a></div></div>
+<div class="ttc" id="class_ind_motor_html_add48c9a03d197a6279ca2e33af0fe286"><div class="ttname"><a href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00042">IndMotor.cpp:42</a></div></div>
+<div class="ttc" id="class_ind_motor_html_a87666565ae1380993d94e7886e9a1f59"><div class="ttname"><a href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59">IndMotor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8cpp_source.html#l00035">IndMotor.cpp:35</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_ind_motor_8h.html b/docs/doxygen/html/_ind_motor_8h.html
new file mode 100644
index 0000000..eee2bbb
--- /dev/null
+++ b/docs/doxygen/html/_ind_motor_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/IndMotor.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_ind_motor_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">IndMotor.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_machines_8h_source.html">Machines.h</a>&quot;</code><br />
+</div>
+<p><a href="_ind_motor_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ind_motor.html">IndMotor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Induction motor power element. <a href="class_ind_motor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_ind_motor_8h.html">IndMotor.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_ind_motor_8h_source.html b/docs/doxygen/html/_ind_motor_8h_source.html
index ee9f487..cca021d 100644
--- a/docs/doxygen/html/_ind_motor_8h_source.html
+++ b/docs/doxygen/html/_ind_motor_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,20 +88,21 @@ $(document).ready(function(){initNavTree('_ind_motor_8h_source.html','');});
<div class="title">IndMotor.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INDMOTOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INDMOTOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Machines.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor_form.html">IndMotorForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="struct_ind_motor_electrical_data.html"> 8</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxString name;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;};</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_ind_motor.html"> 17</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>(wxString name);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; ~<a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;};</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif // INDMOTOR_H</span></div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00007">IndMotorForm.h:7</a></div></div>
+<a href="_ind_motor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef INDMOTOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define INDMOTOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_machines_8h.html">Machines.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor_form.html">IndMotorForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_ind_motor_electrical_data.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString name;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;};</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_ind_motor.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>(wxString name);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ~<a class="code" href="class_ind_motor.html">IndMotor</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="preprocessor">#endif // INDMOTOR_H</span></div><div class="ttc" id="_machines_8h_html"><div class="ttname"><a href="_machines_8h.html">Machines.h</a></div></div>
+<div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdoc">Form to edit the induction motor power data. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00031">IndMotorForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>IndMotor.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_ind_motor_8h.html">IndMotor.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_ind_motor_form_8cpp_source.html b/docs/doxygen/html/_ind_motor_form_8cpp_source.html
index 6d7b442..4113377 100644
--- a/docs/doxygen/html/_ind_motor_form_8cpp_source.html
+++ b/docs/doxygen/html/_ind_motor_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,19 @@ $(document).ready(function(){initNavTree('_ind_motor_form_8cpp_source.html','');
<div class="title">IndMotorForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;IndMotorForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;IndMotorForm::IndMotorForm(wxWindow* parent, <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor) : <a class="code" href="class_ind_motor_form_base.html">IndMotorFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_buttonStabButton-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">IndMotor::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">IndMotor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_parent = parent;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_indMotor = indMotor;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;}</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;IndMotorForm::~IndMotorForm() {}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> IndMotorForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> IndMotorForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// TODO: Induction motor stability form</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;}</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">bool</span> IndMotorForm::ValidateData()</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; </div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(!m_indMotor-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(!m_indMotor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_indMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_form_8h.html">IndMotorForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;IndMotorForm::IndMotorForm(wxWindow* parent, <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor) : <a class="code" href="class_ind_motor_form_base.html">IndMotorFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_buttonStabButton-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">IndMotor::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">IndMotor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_parent = parent;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_indMotor = indMotor;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;IndMotorForm::~IndMotorForm() {}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;<span class="keywordtype">void</span> IndMotorForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;{</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keywordtype">void</span> IndMotorForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="comment">// TODO: Induction motor stability form</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">bool</span> IndMotorForm::ValidateData()</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(!m_indMotor-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(!m_indMotor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_indMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="_ind_motor_form_8h_html"><div class="ttname"><a href="_ind_motor_form_8h.html">IndMotorForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
<div class="ttc" id="class_ind_motor_form_base_html"><div class="ttname"><a href="class_ind_motor_form_base.html">IndMotorFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00673">ElementForm.h:673</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_ind_motor_form_8h.html b/docs/doxygen/html/_ind_motor_form_8h.html
new file mode 100644
index 0000000..404c7ed
--- /dev/null
+++ b/docs/doxygen/html/_ind_motor_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/IndMotorForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_ind_motor_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">IndMotorForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_ind_motor_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_ind_motor_form.html">IndMotorForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the induction motor power data. <a href="class_ind_motor_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_ind_motor_form_8h.html">IndMotorForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_ind_motor_form_8h_source.html b/docs/doxygen/html/_ind_motor_form_8h_source.html
index 8c0868c..be88cab 100644
--- a/docs/doxygen/html/_ind_motor_form_8h_source.html
+++ b/docs/doxygen/html/_ind_motor_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_ind_motor_form_8h_source.html','');})
<div class="title">IndMotorForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INDMOTORFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INDMOTORFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_ind_motor_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor_form.html">IndMotorForm</a> : <span class="keyword">public</span> <a class="code" href="class_ind_motor_form_base.html">IndMotorFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>(wxWindow* parent, <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_ind_motor_form.html">IndMotorForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* m_indMotor = NULL;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif // INDMOTORFORM_H</span></div><div class="ttc" id="class_ind_motor_form_base_html"><div class="ttname"><a href="class_ind_motor_form_base.html">IndMotorFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00673">ElementForm.h:673</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00007">IndMotorForm.h:7</a></div></div>
+<a href="_ind_motor_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef INDMOTORFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define INDMOTORFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_ind_motor_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor_form.html">IndMotorForm</a> : <span class="keyword">public</span> <a class="code" href="class_ind_motor_form_base.html">IndMotorFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_ind_motor_form.html">IndMotorForm</a>(wxWindow* parent, <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_ind_motor_form.html">IndMotorForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* m_indMotor = NULL;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif // INDMOTORFORM_H</span></div><div class="ttc" id="class_ind_motor_form_base_html"><div class="ttname"><a href="class_ind_motor_form_base.html">IndMotorFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00673">ElementForm.h:673</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_ind_motor_form_html"><div class="ttname"><a href="class_ind_motor_form.html">IndMotorForm</a></div><div class="ttdoc">Form to edit the induction motor power data. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_form_8h_source.html#l00031">IndMotorForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>IndMotorForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_ind_motor_form_8h.html">IndMotorForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_inductor_8cpp_source.html b/docs/doxygen/html/_inductor_8cpp_source.html
index 6c47f4d..ec93e1b 100644
--- a/docs/doxygen/html/_inductor_8cpp_source.html
+++ b/docs/doxygen/html/_inductor_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,32 +88,34 @@ $(document).ready(function(){initNavTree('_inductor_8cpp_source.html','');});
<div class="title">Inductor.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ReactiveShuntElementForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Inductor::Inductor() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Inductor::Inductor(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;Inductor::~Inductor() {}</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5"> 7</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_width = 20.0;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_height = 70.0;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0, m_width, m_height);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0 - 10.0));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54"> 38</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54">Inductor::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glPushMatrix();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0), 10, 45, 270, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 25.0), 10, 45, 315, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 40.0), 10, 90, 315, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 50.0));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glPopMatrix();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Draw Load (layer 2).</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; DrawSwitches();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; glPushMatrix();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0), 10, 45, 270, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 25.0), 10, 45, 315, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 40.0), 10, 90, 315, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 50.0));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; glPopMatrix();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"><a class="line" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd"> 96</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2"> 108</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2">Inductor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Inductor&quot;</span>));</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60"> 115</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60">Inductor::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1"> 121</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1">Inductor::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0); }</div><div class="line"><a name="l00122"></a><span class="lineno"><a class="line" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9"> 122</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;{</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>* capacitorForm = <span class="keyword">new</span> <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; capacitorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Inductor&quot;</span>));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(capacitorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;<a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> Inductor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;}</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"><a class="line" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9"> 157</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor::GetCopy</a>()</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;{</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"><a class="line" href="class_inductor.html#ac16663899a076f0e84722b27193fe530"> 164</a></span>&#160;wxString <a class="code" href="class_inductor.html#ac16663899a076f0e84722b27193fe530">Inductor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="comment">// TODO: Avoid reactive power calculation.</span></div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(!m_online)</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; }</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_inductor_html_abfaf28fc70a71f3f85940eef7d1551c9"><div class="ttname"><a href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00122">Inductor.cpp:122</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_inductor_html_ac16663899a076f0e84722b27193fe530"><div class="ttname"><a href="class_inductor.html#ac16663899a076f0e84722b27193fe530">Inductor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00164">Inductor.cpp:164</a></div></div>
-<div class="ttc" id="class_inductor_html_ac3ba7de94a328b20ff86e968a6228f60"><div class="ttname"><a href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60">Inductor::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00115">Inductor.cpp:115</a></div></div>
-<div class="ttc" id="class_inductor_html_a801bb445c01059558902c0eca4d38cdd"><div class="ttname"><a href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00096">Inductor.cpp:96</a></div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="class_inductor_html_a4241ebd43388ebe88ec5888a15bc22d9"><div class="ttname"><a href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00157">Inductor.cpp:157</a></div></div>
-<div class="ttc" id="class_inductor_html_aa0ae00d91b40307141a8bd3aebf1a0c2"><div class="ttname"><a href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2">Inductor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00108">Inductor.cpp:108</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_inductor_html_a97761292fac4f0da7ae3dc6ca4b4de54"><div class="ttname"><a href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54">Inductor::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00038">Inductor.cpp:38</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_inductor_html_a4e404c6e15f206fe0f5de06fc19dedf5"><div class="ttname"><a href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00007">Inductor.cpp:7</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="class_inductor_html_a3d331d2a725275a12489401180d4c1d1"><div class="ttname"><a href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1">Inductor::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00121">Inductor.cpp:121</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00010">ReactiveShuntElementForm.h:10</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Inductor::Inductor() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;Inductor::Inductor(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Inductor::~Inductor() {}</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5"> 24</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_width = 20.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_height = 70.0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - m_width / 2.0, m_position.m_y - m_height / 2.0, m_width, m_height);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0 - 10.0));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -m_height / 2.0));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54">Inductor::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glPushMatrix();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0), 10, 45, 270, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 25.0), 10, 45, 315, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 40.0), 10, 90, 315, 30, GL_LINE_STRIP);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 50.0));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glPopMatrix();</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="comment">// Draw Load (layer 2).</span></div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; DrawSwitches();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; glPushMatrix();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 10.0), 10, 45, 270, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 25.0), 10, 45, 315, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; DrawArc(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 40.0), 10, 90, 315, 10, GL_LINE_STRIP);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; DrawGround(m_position + wxPoint2DDouble(0, -m_height / 2.0 + 50.0));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; glPopMatrix();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd"> 113</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2"> 125</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2">Inductor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Inductor&quot;</span>));</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60"> 132</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60">Inductor::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"><a class="line" href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1"> 138</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1">Inductor::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0); }</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9"> 139</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>* capacitorForm = <span class="keyword">new</span> <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; capacitorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Inductor&quot;</span>));</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(capacitorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; capacitorForm-&gt;Destroy();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> Inductor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9"> 174</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor::GetCopy</a>()</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_inductor.html#ac16663899a076f0e84722b27193fe530"> 181</a></span>&#160;wxString <a class="code" href="class_inductor.html#ac16663899a076f0e84722b27193fe530">Inductor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// TODO: Avoid reactive power calculation.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(!m_online)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; }</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_inductor_html_abfaf28fc70a71f3f85940eef7d1551c9"><div class="ttname"><a href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00139">Inductor.cpp:139</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_inductor_html_ac16663899a076f0e84722b27193fe530"><div class="ttname"><a href="class_inductor.html#ac16663899a076f0e84722b27193fe530">Inductor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00181">Inductor.cpp:181</a></div></div>
+<div class="ttc" id="_reactive_shunt_element_form_8h_html"><div class="ttname"><a href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a></div></div>
+<div class="ttc" id="class_inductor_html_ac3ba7de94a328b20ff86e968a6228f60"><div class="ttname"><a href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60">Inductor::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00132">Inductor.cpp:132</a></div></div>
+<div class="ttc" id="class_inductor_html_a801bb445c01059558902c0eca4d38cdd"><div class="ttname"><a href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00113">Inductor.cpp:113</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="class_inductor_html_a4241ebd43388ebe88ec5888a15bc22d9"><div class="ttname"><a href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00174">Inductor.cpp:174</a></div></div>
+<div class="ttc" id="class_inductor_html_aa0ae00d91b40307141a8bd3aebf1a0c2"><div class="ttname"><a href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2">Inductor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00125">Inductor.cpp:125</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="class_inductor_html_a97761292fac4f0da7ae3dc6ca4b4de54"><div class="ttname"><a href="class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54">Inductor::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00055">Inductor.cpp:55</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_inductor_html_a4e404c6e15f206fe0f5de06fc19dedf5"><div class="ttname"><a href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00024">Inductor.cpp:24</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="class_inductor_html_a3d331d2a725275a12489401180d4c1d1"><div class="ttname"><a href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1">Inductor::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8cpp_source.html#l00138">Inductor.cpp:138</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdoc">Form to edit the reactive shunt element power data. </div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00034">ReactiveShuntElementForm.h:34</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_inductor_8h.html b/docs/doxygen/html/_inductor_8h.html
new file mode 100644
index 0000000..6328d39
--- /dev/null
+++ b/docs/doxygen/html/_inductor_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Inductor.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_inductor_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Inductor.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_shunt_8h_source.html">Shunt.h</a>&quot;</code><br />
+</div>
+<p><a href="_inductor_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_inductor_electrical_data.html">InductorElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_inductor.html">Inductor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_inductor.html" title="Inductor shunt power element. ">Inductor</a> shunt power element. <a href="class_inductor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_inductor_8h.html">Inductor.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_inductor_8h_source.html b/docs/doxygen/html/_inductor_8h_source.html
index cabc03d..d663b20 100644
--- a/docs/doxygen/html/_inductor_8h_source.html
+++ b/docs/doxygen/html/_inductor_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,20 @@ $(document).ready(function(){initNavTree('_inductor_8h_source.html','');});
<div class="title">Inductor.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef INDUCTOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define INDUCTOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Shunt.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="struct_inductor_electrical_data.html"> 8</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxString name;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">double</span> reactivePower = 100.0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;};</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_inductor.html"> 14</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;{</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>(wxString name);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; ~<a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; </div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif // INDUCTOR_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00010">ReactiveShuntElementForm.h:10</a></div></div>
+<a href="_inductor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef INDUCTOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define INDUCTOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shunt_8h.html">Shunt.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_inductor_electrical_data.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString name;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> reactivePower = 100.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;};</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_inductor.html"> 38</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>(wxString name);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ~<a class="code" href="class_inductor.html">Inductor</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;};</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="preprocessor">#endif // INDUCTOR_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_shunt_8h_html"><div class="ttname"><a href="_shunt_8h.html">Shunt.h</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdoc">Form to edit the reactive shunt element power data. </div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00034">ReactiveShuntElementForm.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Inductor.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_inductor_8h.html">Inductor.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_limiter_8cpp_source.html b/docs/doxygen/html/_limiter_8cpp_source.html
index 912af4c..39c92ff 100644
--- a/docs/doxygen/html/_limiter_8cpp_source.html
+++ b/docs/doxygen/html/_limiter_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,17 @@ $(document).ready(function(){initNavTree('_limiter_8cpp_source.html','');});
<div class="title">Limiter.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Limiter.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;LimiterForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Limiter::Limiter(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;Limiter::~Limiter() {}</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242"> 17</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; std::vector&lt;wxPoint2DDouble&gt; limSymbol;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(10, -10));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(2, -10));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-2, 10));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; DrawLine(limSymbol);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DrawNodes();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;}</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3"> 44</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;{</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_limiter_form.html">LimiterForm</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter_form.html">LimiterForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(limiter-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; limiter-&gt;Destroy();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; limiter-&gt;Destroy();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25"> 55</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;{</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; UpdatePoints();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;<span class="keywordtype">void</span> Limiter::UpdatePoints()</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keywordtype">bool</span> Limiter::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_output = input;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(m_output &gt; m_upLimit) m_output = m_upLimit;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_output &lt; m_lowLimit) m_output = m_lowLimit;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; </div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245"> 100</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a>()</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* copy = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(m_elementID);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="ttc" id="class_limiter_html_a2e2960936ebfcc6589181b7948fba242"><div class="ttname"><a href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00017">Limiter.cpp:17</a></div></div>
-<div class="ttc" id="class_limiter_html_a6071e2308baa7b42f189f09fd1878245"><div class="ttname"><a href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00100">Limiter.cpp:100</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00007">LimiterForm.h:7</a></div></div>
-<div class="ttc" id="class_limiter_html_ab9c3aa47fd2fd4903be2dd600f658d25"><div class="ttname"><a href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00055">Limiter.cpp:55</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_limiter_html_a31fd227e010e7d39f1435a70709b14e3"><div class="ttname"><a href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00044">Limiter.cpp:44</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_8h.html">Limiter.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_form_8h.html">LimiterForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Limiter::Limiter(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;Limiter::~Limiter() {}</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242"> 34</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::vector&lt;wxPoint2DDouble&gt; limSymbol;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(10, -10));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(2, -10));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-2, 10));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; DrawLine(limSymbol);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; DrawNodes();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3"> 61</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_limiter_form.html">LimiterForm</a>* limiter = <span class="keyword">new</span> <a class="code" href="class_limiter_form.html">LimiterForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(limiter-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; limiter-&gt;Destroy();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; limiter-&gt;Destroy();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25"> 72</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; UpdatePoints();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;}</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;<span class="keywordtype">void</span> Limiter::UpdatePoints()</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;{</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;<span class="keywordtype">bool</span> Limiter::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_output = input;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(m_output &gt; m_upLimit)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_output = m_upLimit;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_output &lt; m_lowLimit)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_output = m_lowLimit;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245"> 119</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* copy = <span class="keyword">new</span> <a class="code" href="class_limiter.html">Limiter</a>(m_elementID);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="ttc" id="class_limiter_html_a2e2960936ebfcc6589181b7948fba242"><div class="ttname"><a href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00034">Limiter.cpp:34</a></div></div>
+<div class="ttc" id="class_limiter_html_a6071e2308baa7b42f189f09fd1878245"><div class="ttname"><a href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00119">Limiter.cpp:119</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdoc">Form to edit the limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00031">LimiterForm.h:31</a></div></div>
+<div class="ttc" id="class_limiter_html_ab9c3aa47fd2fd4903be2dd600f658d25"><div class="ttname"><a href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00072">Limiter.cpp:72</a></div></div>
+<div class="ttc" id="_limiter_form_8h_html"><div class="ttname"><a href="_limiter_form_8h.html">LimiterForm.h</a></div></div>
+<div class="ttc" id="_limiter_8h_html"><div class="ttname"><a href="_limiter_8h.html">Limiter.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_limiter_html_a31fd227e010e7d39f1435a70709b14e3"><div class="ttname"><a href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00061">Limiter.cpp:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_limiter_8h.html b/docs/doxygen/html/_limiter_8h.html
new file mode 100644
index 0000000..41e6b15
--- /dev/null
+++ b/docs/doxygen/html/_limiter_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Limiter.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_limiter_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Limiter.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_limiter_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limiter.html">Limiter</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Limits the input value by superior and inferior values. <a href="class_limiter.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_limiter_8h.html">Limiter.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_limiter_8h_source.html b/docs/doxygen/html/_limiter_8h_source.html
index 48280f2..5d47955 100644
--- a/docs/doxygen/html/_limiter_8h_source.html
+++ b/docs/doxygen/html/_limiter_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,23 @@ $(document).ready(function(){initNavTree('_limiter_8h_source.html','');});
<div class="title">Limiter.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LIMITER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LIMITER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter_form.html">LimiterForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_limiter.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_limiter.html">Limiter</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e"> 16</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> GetUpLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_upLimit; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">double</span> GetLowLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lowLimit; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> SetUpLimit(<span class="keywordtype">double</span> upLimit) { m_upLimit = upLimit; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> SetLowLimit(<span class="keywordtype">double</span> lowLimit) { m_lowLimit = lowLimit; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">GetCopy</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> m_upLimit = 5.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> m_lowLimit = -5.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;};</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif // LIMITER_H</span></div><div class="ttc" id="class_limiter_html_a2e2960936ebfcc6589181b7948fba242"><div class="ttname"><a href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00017">Limiter.cpp:17</a></div></div>
-<div class="ttc" id="class_limiter_html_a6071e2308baa7b42f189f09fd1878245"><div class="ttname"><a href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00100">Limiter.cpp:100</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
-<div class="ttc" id="class_limiter_html_ac6506d59da4ea682d9e556564ec3ad11"><div class="ttname"><a href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11">Limiter::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00015">Limiter.h:15</a></div></div>
-<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00007">LimiterForm.h:7</a></div></div>
-<div class="ttc" id="class_limiter_html_ac9c1858dfc3b4d30b2eca0c4767a9f0e"><div class="ttname"><a href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e">Limiter::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00016">Limiter.h:16</a></div></div>
-<div class="ttc" id="class_limiter_html_ab9c3aa47fd2fd4903be2dd600f658d25"><div class="ttname"><a href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00055">Limiter.cpp:55</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_limiter_html_a31fd227e010e7d39f1435a70709b14e3"><div class="ttname"><a href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00044">Limiter.cpp:44</a></div></div>
+<a href="_limiter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LIMITER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LIMITER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter_form.html">LimiterForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_limiter.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_limiter.html">Limiter</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e"> 40</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> GetUpLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_upLimit; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> GetLowLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lowLimit; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> SetUpLimit(<span class="keywordtype">double</span> upLimit) { m_upLimit = upLimit; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> SetLowLimit(<span class="keywordtype">double</span> lowLimit) { m_lowLimit = lowLimit; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">GetCopy</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> m_upLimit = 5.0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> m_lowLimit = -5.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="preprocessor">#endif // LIMITER_H</span></div><div class="ttc" id="class_limiter_html_a2e2960936ebfcc6589181b7948fba242"><div class="ttname"><a href="class_limiter.html#a2e2960936ebfcc6589181b7948fba242">Limiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00034">Limiter.cpp:34</a></div></div>
+<div class="ttc" id="class_limiter_html_a6071e2308baa7b42f189f09fd1878245"><div class="ttname"><a href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00119">Limiter.cpp:119</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
+<div class="ttc" id="class_limiter_html_ac6506d59da4ea682d9e556564ec3ad11"><div class="ttname"><a href="class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11">Limiter::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00039">Limiter.h:39</a></div></div>
+<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdoc">Form to edit the limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00031">LimiterForm.h:31</a></div></div>
+<div class="ttc" id="class_limiter_html_ac9c1858dfc3b4d30b2eca0c4767a9f0e"><div class="ttname"><a href="class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e">Limiter::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00040">Limiter.h:40</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_limiter_html_ab9c3aa47fd2fd4903be2dd600f658d25"><div class="ttname"><a href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00072">Limiter.cpp:72</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_limiter_html_a31fd227e010e7d39f1435a70709b14e3"><div class="ttname"><a href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8cpp_source.html#l00061">Limiter.cpp:61</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Limiter.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_limiter_8h.html">Limiter.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_limiter_form_8cpp_source.html b/docs/doxygen/html/_limiter_form_8cpp_source.html
index 4637d2b..df9af8c 100644
--- a/docs/doxygen/html/_limiter_form_8cpp_source.html
+++ b/docs/doxygen/html/_limiter_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_limiter_form_8cpp_source.html','');})
<div class="title">LimiterForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;LimiterForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Limiter.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;LimiterForm::LimiterForm(wxWindow* parent, <a class="code" href="class_limiter.html">Limiter</a>* limiter) : <a class="code" href="class_limiter_form_base.html">LimiterFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_limiter = limiter;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_parent = parent;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_textCtrlUpLimit-&gt;SetValue(m_limiter-&gt;StringFromDouble(m_limiter-&gt;GetUpLimit()));</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_textCtrlLowLimit-&gt;SetValue(m_limiter-&gt;StringFromDouble(m_limiter-&gt;GetLowLimit()));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;LimiterForm::~LimiterForm() {}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> LimiterForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keywordtype">bool</span> LimiterForm::ValidateData()</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> upLimit;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">double</span> lowLimit;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">if</span>(!m_limiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlUpLimit-&gt;GetValue(), upLimit,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Upper limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(!m_limiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlLowLimit-&gt;GetValue(), lowLimit,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Lower limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_form_8h.html">LimiterForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_limiter_8h.html">Limiter.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;LimiterForm::LimiterForm(wxWindow* parent, <a class="code" href="class_limiter.html">Limiter</a>* limiter) : <a class="code" href="class_limiter_form_base.html">LimiterFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_limiter = limiter;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_parent = parent;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlUpLimit-&gt;SetValue(m_limiter-&gt;StringFromDouble(m_limiter-&gt;GetUpLimit()));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlLowLimit-&gt;SetValue(m_limiter-&gt;StringFromDouble(m_limiter-&gt;GetLowLimit()));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;LimiterForm::~LimiterForm() {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> LimiterForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">bool</span> LimiterForm::ValidateData()</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> upLimit;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">double</span> lowLimit;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(!m_limiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlUpLimit-&gt;GetValue(), upLimit,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Upper limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(!m_limiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlLowLimit-&gt;GetValue(), lowLimit,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Lower limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_limiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_limiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;}</div><div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
<div class="ttc" id="class_limiter_form_base_html"><div class="ttname"><a href="class_limiter_form_base.html">LimiterFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00831">ElementForm.h:831</a></div></div>
+<div class="ttc" id="_limiter_form_8h_html"><div class="ttname"><a href="_limiter_form_8h.html">LimiterForm.h</a></div></div>
+<div class="ttc" id="_limiter_8h_html"><div class="ttname"><a href="_limiter_8h.html">Limiter.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_limiter_form_8h.html b/docs/doxygen/html/_limiter_form_8h.html
new file mode 100644
index 0000000..cca1910
--- /dev/null
+++ b/docs/doxygen/html/_limiter_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/LimiterForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_limiter_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">LimiterForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_limiter_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_limiter_form.html">LimiterForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the limit control data. <a href="class_limiter_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_limiter_form_8h.html">LimiterForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_limiter_form_8h_source.html b/docs/doxygen/html/_limiter_form_8h_source.html
index b79f2ed..e5f60e9 100644
--- a/docs/doxygen/html/_limiter_form_8h_source.html
+++ b/docs/doxygen/html/_limiter_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_limiter_form_8h_source.html','');});
<div class="title">LimiterForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LIMITERFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LIMITERFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_limiter_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter_form.html">LimiterForm</a> : <span class="keyword">public</span> <a class="code" href="class_limiter_form_base.html">LimiterFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_limiter_form.html">LimiterForm</a>(wxWindow* parent, <a class="code" href="class_limiter.html">Limiter</a>* limiter);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_limiter_form.html">LimiterForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* m_limiter = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // LIMITERFORM_H</span></div><div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00008">Limiter.h:8</a></div></div>
+<a href="_limiter_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LIMITERFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LIMITERFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter.html">Limiter</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_limiter_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_limiter_form.html">LimiterForm</a> : <span class="keyword">public</span> <a class="code" href="class_limiter_form_base.html">LimiterFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_limiter_form.html">LimiterForm</a>(wxWindow* parent, <a class="code" href="class_limiter.html">Limiter</a>* limiter);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_limiter_form.html">LimiterForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_limiter.html">Limiter</a>* m_limiter = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif // LIMITERFORM_H</span></div><div class="ttc" id="class_limiter_html"><div class="ttname"><a href="class_limiter.html">Limiter</a></div><div class="ttdoc">Limits the input value by superior and inferior values. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_8h_source.html#l00032">Limiter.h:32</a></div></div>
<div class="ttc" id="class_limiter_form_base_html"><div class="ttname"><a href="class_limiter_form_base.html">LimiterFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00831">ElementForm.h:831</a></div></div>
-<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00007">LimiterForm.h:7</a></div></div>
+<div class="ttc" id="class_limiter_form_html"><div class="ttname"><a href="class_limiter_form.html">LimiterForm</a></div><div class="ttdoc">Form to edit the limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_limiter_form_8h_source.html#l00031">LimiterForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>LimiterForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_limiter_form_8h.html">LimiterForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_line_8cpp_source.html b/docs/doxygen/html/_line_8cpp_source.html
index 93b0605..aace7c2 100644
--- a/docs/doxygen/html/_line_8cpp_source.html
+++ b/docs/doxygen/html/_line_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,50 +88,51 @@ $(document).ready(function(){initNavTree('_line_8cpp_source.html','');});
<div class="title">Line.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Line::Line() : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; }</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; }</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;}</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;Line::Line(wxString name) : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Line::~Line() {}</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_line.html#a05eb3761f198a058045f85d6e685ca97"> 22</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a05eb3761f198a058045f85d6e685ca97">Line::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(PointToLineDistance(position) &lt; 5.0) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_line.html#a297e12aa8ff0be5d344e245732487bdd"> 30</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a297e12aa8ff0be5d344e245732487bdd">Line::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;wxPoint2DDouble&gt; pointList = m_pointList;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(!m_inserted &amp;&amp; pointList.size() &gt; 0) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxPoint2DDouble secondPoint = m_position;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 2) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; secondPoint = pointList[2];</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; pointList[1] = GetSwitchPoint(m_parentList[0], pointList[0], secondPoint);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; pointList.push_back(m_position);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="comment">// Line selected (Layer 1).</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; DrawLine(pointList);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Draw nodes selection.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 0) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; DrawCircle(pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; DrawCircle(pointList[pointList.size() - 1], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Draw line (Layer 2)</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawLine(pointList);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; DrawSwitches();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Draw nodes.</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 0) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DrawCircle(pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DrawCircle(pointList[pointList.size() - 1], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Draw pickboxes (Layer 3).</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(m_showPickbox) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; glPushMatrix();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DrawPickbox(WorldToScreen(m_pointList[i], translation, scale));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glPopMatrix();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"><a class="line" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978"> 99</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0] &amp;&amp; !m_parentList[1]) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; }</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_line.html#a26c69f7f703dca718edc28d5093934a3"> 119</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() == 0) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_position = position;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// First point</span></div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_electricalData.nominalVoltage = parentBus-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_electricalData.nominalVoltageUnit = parentBus-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent != m_parentList[0]) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(m_electricalData.nominalVoltage != parentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_electricalData.nominalVoltageUnit != parentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; wxMessageDialog msgDialog(NULL, _(<span class="stringliteral">&quot;Unable to connect two buses with different nominal voltages.\n&quot;</span></div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="stringliteral">&quot;Use a transformer or edit the bus properties.&quot;</span>),</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Set first switch point.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; wxPoint2DDouble secondPoint = parentPt;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 2) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; secondPoint = m_pointList[2];</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], secondPoint);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// Set the second switch point.</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_pointList[m_pointList.size() - 1]));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// Last point.</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="class_line.html#a125581fc6d21c83565b902751af331dc"> 186</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a125581fc6d21c83565b902751af331dc">Line::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_pointList.begin(); it != m_pointList.end(); ++it) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(rect.Contains(*it)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;}</div><div class="line"><a name="l00193"></a><span class="lineno"><a class="line" href="class_line.html#afa67498961416e645e0aa5358959ef1d"> 193</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line::MovePickbox</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;{</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == i) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;}</div><div class="line"><a name="l00205"></a><span class="lineno"><a class="line" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4"> 205</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line::PickboxContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; wxRect2DDouble rect(m_pointList[i].m_x - 5.0, m_pointList[i].m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(rect.Contains(position)) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_activePickboxID = i;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;}</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"><a class="line" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f"> 217</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line::AddPoint</a>(wxPoint2DDouble point)</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;{</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() != 0) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_pointList.push_back(point);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;}</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"><a class="line" href="class_line.html#abb812387508a9971570bfa1d38e41041"> 224</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#abb812387508a9971570bfa1d38e41041">Line::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;{</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4"> 230</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// If the line is selected, move all the points, except the switches and buses points.</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="comment">// If parent is setted to NULL for the firts time, remove the parent child</span></div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; }</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;}</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;</div><div class="line"><a name="l00272"></a><span class="lineno"><a class="line" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f"> 272</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;{</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit line&quot;</span>));</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; wxMenuItem* addNodeItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>, _(<span class="stringliteral">&quot;Insert node&quot;</span>));</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; addNodeItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\addNode16.png&quot;</span>));</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; menu.Append(addNodeItem);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; wxMenuItem* addNodeItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>, _(<span class="stringliteral">&quot;Remove node&quot;</span>));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; addNodeItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\removeNode16.png&quot;</span>));</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; menu.Append(addNodeItem);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; wxMenuItem* deleteItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>, _(<span class="stringliteral">&quot;Delete&quot;</span>));</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; deleteItem-&gt;SetBitmap(wxImage(<span class="stringliteral">&quot;..\\data\\images\\menu\\delete16.png&quot;</span>));</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; menu.Append(deleteItem);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;}</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;<span class="keywordtype">void</span> Line::RemoveNode(wxPoint2DDouble point)</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;{</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(PickboxContains(point)) {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == i) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; m_pointList.erase(m_pointList.begin() + i);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keywordtype">void</span> Line::AddNode(wxPoint2DDouble point)</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordtype">int</span> segmentNumber = 0;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; PointToLineDistance(point, &amp;segmentNumber);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">if</span>(segmentNumber &gt; 0 &amp;&amp; segmentNumber &lt; (<span class="keywordtype">int</span>)m_pointList.size() - 2) {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_pointList.insert(m_pointList.begin() + segmentNumber + 1, point);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"><a class="line" href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0"> 315</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0">Line::CalculateBoundaries</a>(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom)<span class="keyword"> const</span></div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// Check points list boundaries.</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; leftUp = m_pointList[0];</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; rightBottom = m_pointList[0];</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &lt; leftUp.m_x) leftUp.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &lt; leftUp.m_y) leftUp.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; }</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;}</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160;</div><div class="line"><a name="l00330"></a><span class="lineno"><a class="line" href="class_line.html#a24c6a659148f063c78e080a18f4517a1"> 330</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;{</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <a class="code" href="class_line_form.html">LineForm</a>* lineForm = <span class="keyword">new</span> <a class="code" href="class_line_form.html">LineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span>(lineForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; lineForm-&gt;Destroy();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; lineForm-&gt;Destroy();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072"> 341</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072">Line::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;{</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;}</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"><a class="line" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb"> 349</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;{</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">// If the line has no parents set the new rated voltage, otherwise check if it&#39;s not connecting</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// two different voltages buses</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0] &amp;&amp; !m_parentList[1]) {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; m_electricalData.nominalVoltage = parentBus-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; m_electricalData.nominalVoltageUnit = parentBus-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_electricalData.nominalVoltage != parentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; m_electricalData.nominalVoltageUnit != parentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; wxMessageDialog msgDialog(NULL, _(<span class="stringliteral">&quot;Unable to connect two buses with different nominal voltages.\n&quot;</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="stringliteral">&quot;Use a transformer or edit the bus properties.&quot;</span>),</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; }</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;}</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"><a class="line" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e"> 429</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;{</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;}</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="keywordtype">void</span> Line::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;{</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>: {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>: {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)m_pointList.size() - 2; i &gt; 0; i--) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;}</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160;</div><div class="line"><a name="l00458"></a><span class="lineno"><a class="line" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7"> 458</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;{</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;}</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;</div><div class="line"><a name="l00472"></a><span class="lineno"><a class="line" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6"> 472</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a>(std::vector&lt;wxPoint2DDouble&gt; pointList)</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;{</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; m_pointList = pointList;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;}</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"><a class="line" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1"> 479</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line::GetCopy</a>()</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;{</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="class_line.html">Line</a>* copy = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;}</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"><a class="line" href="class_line.html#a51e7bff578cd280464a70200fc323efc"> 486</a></span>&#160;wxString <a class="code" href="class_line.html#a51e7bff578cd280464a70200fc323efc">Line::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordtype">int</span> busNumber[2];</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; busNumber[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; busNumber[1] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[1])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; }</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;}</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> Line::GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower)</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;{</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">double</span> lineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemBasePower;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordtype">double</span> lineBaseImpedance = (baseVoltage * baseVoltage) / lineBasePower;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="comment">// Resistance</span></div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordtype">double</span> r = data.resistance;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) r *= data.lineSize;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.resistance = (r * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; data.resistance = r / systemBaseImpedance;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="comment">// Inductive reactance</span></div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordtype">double</span> x = data.indReactance;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) x *= data.lineSize;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.indReactance = (x * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; data.indReactance = x / systemBaseImpedance;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; }</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Capacitive susceptance</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">double</span> b = data.capSusceptance;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>(data.capSusceptanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) b *= data.lineSize;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span>(data.capSusceptanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.capSusceptance = (b * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; data.capSusceptance = b / systemBaseImpedance;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// Zero seq. resistance</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordtype">double</span> r0 = data.zeroResistance;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroResistance = (r0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="comment">// Zero seq. ind. reactance</span></div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordtype">double</span> x0 = data.zeroIndReactance;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroIndReactance = (x0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">// Zero seq. cap. susceptance</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordtype">double</span> b0 = data.zeroCapSusceptance;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroCapSusceptance = (b0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; </div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; data.powerFlow[0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; data.powerFlow[1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; data.faultCurrent[0][0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; data.faultCurrent[0][1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; data.faultCurrent[0][2] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; data.faultCurrent[1][0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; data.faultCurrent[1][1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; data.faultCurrent[1][2] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_line_html_afa67498961416e645e0aa5358959ef1d"><div class="ttname"><a href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00193">Line.cpp:193</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_line_form_html"><div class="ttname"><a href="class_line_form.html">LineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_form_8h_source.html#l00008">LineForm.h:8</a></div></div>
-<div class="ttc" id="class_line_html_abb812387508a9971570bfa1d38e41041"><div class="ttname"><a href="class_line.html#abb812387508a9971570bfa1d38e41041">Line::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00224">Line.cpp:224</a></div></div>
-<div class="ttc" id="class_line_html_a05eb3761f198a058045f85d6e685ca97"><div class="ttname"><a href="class_line.html#a05eb3761f198a058045f85d6e685ca97">Line::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00022">Line.cpp:22</a></div></div>
-<div class="ttc" id="class_line_html_a6d35082da4d30bd432b73b72dd86fadb"><div class="ttname"><a href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00349">Line.cpp:349</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="class_line_html_ac8be7d7136d86830c262280f51b79ea4"><div class="ttname"><a href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00230">Line.cpp:230</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;Line::Line() : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Line::Line(wxString name) : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;Line::~Line() {}</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_line.html#a05eb3761f198a058045f85d6e685ca97"> 39</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a05eb3761f198a058045f85d6e685ca97">Line::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(PointToLineDistance(position) &lt; 5.0) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_line.html#a297e12aa8ff0be5d344e245732487bdd"> 47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a297e12aa8ff0be5d344e245732487bdd">Line::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;wxPoint2DDouble&gt; pointList = m_pointList;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(!m_inserted &amp;&amp; pointList.size() &gt; 0) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; wxPoint2DDouble secondPoint = m_position;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 2) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; secondPoint = pointList[2];</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; pointList[1] = GetSwitchPoint(m_parentList[0], pointList[0], secondPoint);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; pointList.push_back(m_position);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="comment">// Line selected (Layer 1).</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; DrawLine(pointList);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Draw nodes selection.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 0) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; DrawCircle(pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; DrawCircle(pointList[pointList.size() - 1], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Draw line (Layer 2)</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; DrawLine(pointList);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; DrawSwitches();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Draw nodes.</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(pointList.size() &gt; 0) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; DrawCircle(pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; DrawCircle(pointList[pointList.size() - 1], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Draw pickboxes (Layer 3).</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(m_showPickbox) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; glPushMatrix();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; DrawPickbox(WorldToScreen(m_pointList[i], translation, scale));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; glPopMatrix();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978"> 116</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]) {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; }</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0] &amp;&amp; !m_parentList[1]) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_line.html#a26c69f7f703dca718edc28d5093934a3"> 136</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() == 0) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_position = position;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// First point</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_electricalData.nominalVoltage = parentBus-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_electricalData.nominalVoltageUnit = parentBus-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent != m_parentList[0]) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(m_electricalData.nominalVoltage != parentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_electricalData.nominalVoltageUnit != parentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; wxMessageDialog msgDialog(NULL, _(<span class="stringliteral">&quot;Unable to connect two buses with different nominal voltages.\n&quot;</span></div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="stringliteral">&quot;Use a transformer or edit the bus properties.&quot;</span>),</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Set first switch point.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; wxPoint2DDouble secondPoint = parentPt;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 2) {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; secondPoint = m_pointList[2];</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], secondPoint);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Set the second switch point.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_pointList[m_pointList.size() - 1]));</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// Last point.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="class_line.html#a125581fc6d21c83565b902751af331dc"> 203</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a125581fc6d21c83565b902751af331dc">Line::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_pointList.begin(); it != m_pointList.end(); ++it) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(rect.Contains(*it)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;}</div><div class="line"><a name="l00210"></a><span class="lineno"><a class="line" href="class_line.html#afa67498961416e645e0aa5358959ef1d"> 210</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line::MovePickbox</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;{</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == i) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="line"><a name="l00222"></a><span class="lineno"><a class="line" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4"> 222</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line::PickboxContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;{</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; wxRect2DDouble rect(m_pointList[i].m_x - 5.0, m_pointList[i].m_y - 5.0, 10.0, 10.0);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(rect.Contains(position)) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_activePickboxID = i;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;}</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"><a class="line" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f"> 234</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line::AddPoint</a>(wxPoint2DDouble point)</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;{</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() != 0) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_pointList.push_back(point);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"><a class="line" href="class_line.html#abb812387508a9971570bfa1d38e41041"> 241</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#abb812387508a9971570bfa1d38e41041">Line::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;{</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"><a class="line" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4"> 247</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="comment">// If the line is selected, move all the points, except the switches and buses points.</span></div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; }</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="comment">// If parent is setted to NULL for the firts time, remove the parent child</span></div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;}</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;</div><div class="line"><a name="l00289"></a><span class="lineno"><a class="line" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f"> 289</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;{</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; wxFileName exeFileName(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; wxString exePath = exeFileName.GetPath();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit line&quot;</span>));</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == <a class="code" href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a>) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; wxMenuItem* addNodeItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>, _(<span class="stringliteral">&quot;Insert node&quot;</span>));</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; addNodeItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\addNode16.png&quot;</span>));</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; menu.Append(addNodeItem);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; wxMenuItem* addNodeItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>, _(<span class="stringliteral">&quot;Remove node&quot;</span>));</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; addNodeItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\removeNode16.png&quot;</span>));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; menu.Append(addNodeItem);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; wxMenuItem* deleteItem = <span class="keyword">new</span> wxMenuItem(&amp;menu, <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>, _(<span class="stringliteral">&quot;Delete&quot;</span>));</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; deleteItem-&gt;SetBitmap(wxImage(exePath + <span class="stringliteral">&quot;\\..\\data\\images\\menu\\delete16.png&quot;</span>));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; menu.Append(deleteItem);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;}</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="keywordtype">void</span> Line::RemoveNode(wxPoint2DDouble point)</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span>(PickboxContains(point)) {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">if</span>(m_activePickboxID == i) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_pointList.erase(m_pointList.begin() + i);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;<span class="keywordtype">void</span> Line::AddNode(wxPoint2DDouble point)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordtype">int</span> segmentNumber = 0;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; PointToLineDistance(point, &amp;segmentNumber);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span>(segmentNumber &gt; 0 &amp;&amp; segmentNumber &lt; (<span class="keywordtype">int</span>)m_pointList.size() - 2) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; m_pointList.insert(m_pointList.begin() + segmentNumber + 1, point);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"><a class="line" href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0"> 335</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0">Line::CalculateBoundaries</a>(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom)<span class="keyword"> const</span></div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="comment">// Check points list boundaries.</span></div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; leftUp = m_pointList[0];</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; rightBottom = m_pointList[0];</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &lt; leftUp.m_x) leftUp.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &lt; leftUp.m_y) leftUp.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_x &gt; rightBottom.m_x) rightBottom.m_x = m_pointList[i].m_x;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span>(m_pointList[i].m_y &gt; rightBottom.m_y) rightBottom.m_y = m_pointList[i].m_y;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; }</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;}</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"><a class="line" href="class_line.html#a24c6a659148f063c78e080a18f4517a1"> 350</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160;{</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <a class="code" href="class_line_form.html">LineForm</a>* lineForm = <span class="keyword">new</span> <a class="code" href="class_line_form.html">LineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">if</span>(lineForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; lineForm-&gt;Destroy();</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; lineForm-&gt;Destroy();</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"><a class="line" href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072"> 361</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072">Line::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;}</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160;</div><div class="line"><a name="l00369"></a><span class="lineno"><a class="line" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb"> 369</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;{</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="comment">// If the line has no parents set the new rated voltage, otherwise check if it&#39;s not connecting</span></div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// two different voltages buses</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parentBus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(parent);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0] &amp;&amp; !m_parentList[1]) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; m_electricalData.nominalVoltage = parentBus-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; m_electricalData.nominalVoltageUnit = parentBus-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_electricalData.nominalVoltage != parentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_electricalData.nominalVoltageUnit != parentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; wxMessageDialog msgDialog(NULL, _(<span class="stringliteral">&quot;Unable to connect two buses with different nominal voltages.\n&quot;</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="stringliteral">&quot;Use a transformer or edit the bus properties.&quot;</span>),</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; }</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; }</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;}</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;</div><div class="line"><a name="l00449"></a><span class="lineno"><a class="line" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e"> 449</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160;{</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="keywordtype">void</span> Line::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>: {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; }</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>: {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)m_pointList.size() - 2; i &gt; 0; i--) {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; }</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;}</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"><a class="line" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7"> 478</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; }</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160;}</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"><a class="line" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6"> 492</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a>(std::vector&lt;wxPoint2DDouble&gt; pointList)</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;{</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; m_pointList = pointList;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;}</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160;</div><div class="line"><a name="l00499"></a><span class="lineno"><a class="line" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1"> 499</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line::GetCopy</a>()</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;{</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <a class="code" href="class_line.html">Line</a>* copy = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160;}</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"><a class="line" href="class_line.html#a51e7bff578cd280464a70200fc323efc"> 506</a></span>&#160;wxString <a class="code" href="class_line.html#a51e7bff578cd280464a70200fc323efc">Line::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">int</span> busNumber[2];</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; busNumber[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; busNumber[1] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[1])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160;}</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160;<a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> Line::GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower)</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;{</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="keywordtype">double</span> lineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemBasePower;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordtype">double</span> lineBaseImpedance = (baseVoltage * baseVoltage) / lineBasePower;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="comment">// Resistance</span></div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordtype">double</span> r = data.resistance;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) r *= data.lineSize;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.resistance = (r * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; data.resistance = r / systemBaseImpedance;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; }</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="comment">// Inductive reactance</span></div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordtype">double</span> x = data.indReactance;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) x *= data.lineSize;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.indReactance = (x * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; data.indReactance = x / systemBaseImpedance;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">// Capacitive susceptance</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordtype">double</span> b = data.capSusceptance;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">if</span>(data.capSusceptanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>) b *= data.lineSize;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>(data.capSusceptanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.capSusceptance = (b * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; data.capSusceptance = b / systemBaseImpedance;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="comment">// Zero seq. resistance</span></div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordtype">double</span> r0 = data.zeroResistance;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroResistance = (r0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="comment">// Zero seq. ind. reactance</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordtype">double</span> x0 = data.zeroIndReactance;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroIndReactance = (x0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="comment">// Zero seq. cap. susceptance</span></div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordtype">double</span> b0 = data.zeroCapSusceptance;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">if</span>(data.useLinePower) data.zeroCapSusceptance = (b0 * lineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; data.powerFlow[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; data.powerFlow[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; data.faultCurrent[0][0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; data.faultCurrent[0][1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; data.faultCurrent[0][2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; data.faultCurrent[1][0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; data.faultCurrent[1][1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; data.faultCurrent[1][2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; }</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_line_html_afa67498961416e645e0aa5358959ef1d"><div class="ttname"><a href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00210">Line.cpp:210</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_line_form_html"><div class="ttname"><a href="class_line_form.html">LineForm</a></div><div class="ttdoc">Form to edit the line power data. </div><div class="ttdef"><b>Definition:</b> <a href="_line_form_8h_source.html#l00032">LineForm.h:32</a></div></div>
+<div class="ttc" id="class_line_html_abb812387508a9971570bfa1d38e41041"><div class="ttname"><a href="class_line.html#abb812387508a9971570bfa1d38e41041">Line::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00241">Line.cpp:241</a></div></div>
+<div class="ttc" id="class_line_html_a05eb3761f198a058045f85d6e685ca97"><div class="ttname"><a href="class_line.html#a05eb3761f198a058045f85d6e685ca97">Line::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00039">Line.cpp:39</a></div></div>
+<div class="ttc" id="class_line_html_a6d35082da4d30bd432b73b72dd86fadb"><div class="ttname"><a href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00369">Line.cpp:369</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="class_line_html_ac8be7d7136d86830c262280f51b79ea4"><div class="ttname"><a href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00247">Line.cpp:247</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00034">Element.h:34</a></div></div>
-<div class="ttc" id="class_line_html_acac760d9d67d9c4d007e03592d0e96b4"><div class="ttname"><a href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00205">Line.cpp:205</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_line_html_a26c69f7f703dca718edc28d5093934a3"><div class="ttname"><a href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00119">Line.cpp:119</a></div></div>
-<div class="ttc" id="class_line_html_a24c6a659148f063c78e080a18f4517a1"><div class="ttname"><a href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00330">Line.cpp:330</a></div></div>
-<div class="ttc" id="class_line_html_aa146d6b0c7f3b74204f2c88dcbd7f4b0"><div class="ttname"><a href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0">Line::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00315">Line.cpp:315</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00027">PowerElement.h:27</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
-<div class="ttc" id="class_line_html_a3eabf6de2af4ee71f72ce4f091c69978"><div class="ttname"><a href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00099">Line.cpp:99</a></div></div>
-<div class="ttc" id="class_line_html_a297e12aa8ff0be5d344e245732487bdd"><div class="ttname"><a href="class_line.html#a297e12aa8ff0be5d344e245732487bdd">Line::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00030">Line.cpp:30</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_line_html_ab73d74778b5aa9807d21f156d15fadf7"><div class="ttname"><a href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00458">Line.cpp:458</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00066">PowerElement.h:66</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00035">Element.h:35</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="class_line_html_af9a931bdb7e0693cacae010a19b744e6"><div class="ttname"><a href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00472">Line.cpp:472</a></div></div>
-<div class="ttc" id="class_line_html_a125581fc6d21c83565b902751af331dc"><div class="ttname"><a href="class_line.html#a125581fc6d21c83565b902751af331dc">Line::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00186">Line.cpp:186</a></div></div>
-<div class="ttc" id="class_line_html_a978de0ff06b6f57401ade84045e1a55f"><div class="ttname"><a href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00272">Line.cpp:272</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
-<div class="ttc" id="class_line_html_a1f3ef94716c52a357ecbcbdf00b0e072"><div class="ttname"><a href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072">Line::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00341">Line.cpp:341</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_line_html_afc4916268d2a32014e4ab0f8308165a1"><div class="ttname"><a href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00479">Line.cpp:479</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00065">PowerElement.h:65</a></div></div>
-<div class="ttc" id="class_line_html_a400c8d0397ecdfe6c0a8380ee6bc7e1e"><div class="ttname"><a href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00429">Line.cpp:429</a></div></div>
-<div class="ttc" id="class_line_html_a046a7b2ebff50f237f73dbc182f7ff6f"><div class="ttname"><a href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00217">Line.cpp:217</a></div></div>
-<div class="ttc" id="class_line_html_a51e7bff578cd280464a70200fc323efc"><div class="ttname"><a href="class_line.html#a51e7bff578cd280464a70200fc323efc">Line::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00486">Line.cpp:486</a></div></div>
-<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00019">Element.h:19</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
-<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00007">Branch.h:7</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00053">Element.h:53</a></div></div>
+<div class="ttc" id="class_line_html_acac760d9d67d9c4d007e03592d0e96b4"><div class="ttname"><a href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00222">Line.cpp:222</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="class_line_html_a26c69f7f703dca718edc28d5093934a3"><div class="ttname"><a href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00136">Line.cpp:136</a></div></div>
+<div class="ttc" id="class_line_html_a24c6a659148f063c78e080a18f4517a1"><div class="ttname"><a href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00350">Line.cpp:350</a></div></div>
+<div class="ttc" id="class_line_html_aa146d6b0c7f3b74204f2c88dcbd7f4b0"><div class="ttname"><a href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0">Line::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00335">Line.cpp:335</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00057">Element.h:57</a></div></div>
+<div class="ttc" id="class_line_html_a3eabf6de2af4ee71f72ce4f091c69978"><div class="ttname"><a href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00116">Line.cpp:116</a></div></div>
+<div class="ttc" id="class_line_html_a297e12aa8ff0be5d344e245732487bdd"><div class="ttname"><a href="class_line.html#a297e12aa8ff0be5d344e245732487bdd">Line::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00047">Line.cpp:47</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_line_html_ab73d74778b5aa9807d21f156d15fadf7"><div class="ttname"><a href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00478">Line.cpp:478</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00083">PowerElement.h:83</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00054">Element.h:54</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="class_line_html_af9a931bdb7e0693cacae010a19b744e6"><div class="ttname"><a href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line::SetPointList</a></div><div class="ttdeci">virtual void SetPointList(std::vector&lt; wxPoint2DDouble &gt; pointList)</div><div class="ttdoc">Set the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00492">Line.cpp:492</a></div></div>
+<div class="ttc" id="class_line_html_a125581fc6d21c83565b902751af331dc"><div class="ttname"><a href="class_line.html#a125581fc6d21c83565b902751af331dc">Line::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00203">Line.cpp:203</a></div></div>
+<div class="ttc" id="class_line_html_a978de0ff06b6f57401ade84045e1a55f"><div class="ttname"><a href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00289">Line.cpp:289</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00079">PowerElement.h:79</a></div></div>
+<div class="ttc" id="class_line_html_a1f3ef94716c52a357ecbcbdf00b0e072"><div class="ttname"><a href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072">Line::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00361">Line.cpp:361</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_line_html_afc4916268d2a32014e4ab0f8308165a1"><div class="ttname"><a href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00499">Line.cpp:499</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00082">PowerElement.h:82</a></div></div>
+<div class="ttc" id="class_line_html_a400c8d0397ecdfe6c0a8380ee6bc7e1e"><div class="ttname"><a href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00449">Line.cpp:449</a></div></div>
+<div class="ttc" id="class_line_html_a046a7b2ebff50f237f73dbc182f7ff6f"><div class="ttname"><a href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00234">Line.cpp:234</a></div></div>
+<div class="ttc" id="class_line_html_a51e7bff578cd280464a70200fc323efc"><div class="ttname"><a href="class_line.html#a51e7bff578cd280464a70200fc323efc">Line::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8cpp_source.html#l00506">Line.cpp:506</a></div></div>
+<div class="ttc" id="_element_8h_html_a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433"><div class="ttname"><a href="_element_8h.html#a7b88da333c092757d91d7492dfa8e316a2efa051c0a3f23f2324cef5bc930f433">ID_PB_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
+<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdoc">Abstract class for branch power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00031">Branch.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_line_8h.html b/docs/doxygen/html/_line_8h.html
new file mode 100644
index 0000000..56bcb24
--- /dev/null
+++ b/docs/doxygen/html/_line_8h.html
@@ -0,0 +1,118 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Line.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_line_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Line.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_line_form_8h_source.html">LineForm.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_branch_8h_source.html">Branch.h</a>&quot;</code><br />
+</div>
+<p><a href="_line_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_line_electrical_data.html">LineElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_line.html">Line</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Power line element. <a href="class_line.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_line_8h.html">Line.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_line_8h_source.html b/docs/doxygen/html/_line_8h_source.html
index 82d22e5..46b6918 100644
--- a/docs/doxygen/html/_line_8h_source.html
+++ b/docs/doxygen/html/_line_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,24 @@ $(document).ready(function(){initNavTree('_line_8h_source.html','');});
<div class="title">Line.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LINE_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LINE_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;LineForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Branch.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="struct_line_electrical_data.html"> 7</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 138.0;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">double</span> resistance = 0.0;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">double</span> indReactance = 1.0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> capSusceptance = 0.0;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> lineSize = 100.0;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">bool</span> useLinePower = <span class="keyword">false</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; std::complex&lt;double&gt; current[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; std::complex&lt;double&gt; powerFlow[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> zeroIndReactance = 1.0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> zeroCapSusceptance = 0.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; std::complex&lt;double&gt; faultCurrent[2][3];</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_line.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a> : <span class="keyword">public</span> <a class="code" href="class_branch.html">Branch</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_line.html">Line</a>(wxString name);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; ~<a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MoveNode(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetNodeParent(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9"> 47</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_SIZING; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MovePickbox(wxPoint2DDouble position);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> PickboxContains(wxPoint2DDouble position);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddPoint(wxPoint2DDouble point);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveNode(wxPoint2DDouble point);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddNode(wxPoint2DDouble point);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateNode(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculateBoundaries(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom) <span class="keyword">const</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPowerFlowDirection(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPointList(std::vector&lt;wxPoint2DDouble&gt; pointList);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> m_electricalData;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;<span class="preprocessor">#endif // LINE_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_line_html_a7c72fc585eb96bf9565cca0ce300cfd9"><div class="ttname"><a href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">Line::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00047">Line.h:47</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00007">Branch.h:7</a></div></div>
+<a href="_line_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LINE_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LINE_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_form_8h.html">LineForm.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_branch_8h.html">Branch.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="struct_line_electrical_data.html"> 24</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 138.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> resistance = 0.0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> indReactance = 1.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> capSusceptance = 0.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> lineSize = 100.0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">bool</span> useLinePower = <span class="keyword">false</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::complex&lt;double&gt; current[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::complex&lt;double&gt; powerFlow[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> zeroIndReactance = 1.0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> zeroCapSusceptance = 0.0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; std::complex&lt;double&gt; faultCurrent[2][3];</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_line.html"> 59</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a> : <span class="keyword">public</span> <a class="code" href="class_branch.html">Branch</a></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <a class="code" href="class_line.html">Line</a>(wxString name);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ~<a class="code" href="class_line.html">Line</a>();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MoveNode(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetNodeParent(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9"> 71</a></span>&#160; <span class="keyword">virtual</span> wxCursor <a class="code" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">GetBestPickboxCursor</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> wxCURSOR_SIZING; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MovePickbox(wxPoint2DDouble position);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> PickboxContains(wxPoint2DDouble position);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddPoint(wxPoint2DDouble point);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RemoveNode(wxPoint2DDouble point);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> AddNode(wxPoint2DDouble point);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateNode(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculateBoundaries(wxPoint2DDouble&amp; leftUp, wxPoint2DDouble&amp; rightBottom) <span class="keyword">const</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPowerFlowDirection(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPointList(std::vector&lt;wxPoint2DDouble&gt; pointList);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> m_electricalData;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;};</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;<span class="preprocessor">#endif // LINE_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_line_form_8h_html"><div class="ttname"><a href="_line_form_8h.html">LineForm.h</a></div></div>
+<div class="ttc" id="class_line_html_a7c72fc585eb96bf9565cca0ce300cfd9"><div class="ttname"><a href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">Line::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00071">Line.h:71</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="_branch_8h_html"><div class="ttname"><a href="_branch_8h.html">Branch.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdoc">Abstract class for branch power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00031">Branch.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Line.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_line_8h.html">Line.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_line_form_8cpp_source.html b/docs/doxygen/html/_line_form_8cpp_source.html
index 8a4aac0..1c97d7b 100644
--- a/docs/doxygen/html/_line_form_8cpp_source.html
+++ b/docs/doxygen/html/_line_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,21 +88,24 @@ $(document).ready(function(){initNavTree('_line_form_8cpp_source.html','');});
<div class="title">LineForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;LineForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;LineForm::LineForm(wxWindow* parent, <a class="code" href="class_line.html">Line</a>* line) : <a class="code" href="class_line_form_base.html">LineFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_choiceResistance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_choiceResistance-&gt;SetString(2, (wxString)L<span class="stringliteral">&#39;\u03A9&#39;</span> + <span class="stringliteral">&quot;/km&quot;</span>);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_choiceResistance-&gt;SetInitialSize();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_textCtrlResistance-&gt;SetInitialSize();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_choiceReactance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_choiceReactance-&gt;SetString(2, (wxString)L<span class="stringliteral">&#39;\u03A9&#39;</span> + <span class="stringliteral">&quot;/km&quot;</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceReactance-&gt;SetInitialSize();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_textCtrlReactance-&gt;SetInitialSize();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroSusceptance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; Layout();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_parent = parent;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_line = line;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; wxString nominalVoltageStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.nominalVoltage);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">switch</span>(data.nominalVoltageUnit) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; nominalVoltageStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; nominalVoltageStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_staticTextNominalVoltageValue-&gt;SetLabel(nominalVoltageStr);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_textCtrlNominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_textCtrlResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.resistance));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">switch</span>(data.resistanceUnit) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_choiceResistance-&gt;SetSelection(0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceResistance-&gt;SetSelection(1);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>: {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceResistance-&gt;SetSelection(2);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_textCtrlReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.indReactance));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">switch</span>(data.indReactanceUnit) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_choiceReactance-&gt;SetSelection(0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_choiceReactance-&gt;SetSelection(1);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>: {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_choiceReactance-&gt;SetSelection(2);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_textCtrlSusceptance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.capSusceptance));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">switch</span>(data.capSusceptanceUnit) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_choiceSusceptance-&gt;SetSelection(0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>: {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_choiceSusceptance-&gt;SetSelection(1);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>: {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_choiceSusceptance-&gt;SetSelection(2);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_textCtrlLineSize-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.lineSize));</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_checkUseLinePower-&gt;SetValue(data.useLinePower);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroIndReactance));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_textCtrlZeroSusceptance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroCapSusceptance));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;LineForm::~LineForm() {}</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;<span class="keywordtype">void</span> LineForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keywordtype">void</span> LineForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;{</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keywordtype">void</span> LineForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_line);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Line: Switching&quot;</span>));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keywordtype">void</span> LineForm::ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; wxString label = staticText-&gt;GetLabel();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; label[label.length() - 2] = newChar;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; staticText-&gt;SetLabel(label);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keywordtype">bool</span> LineForm::ValidateData()</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = m_line-&gt;GetElectricalData();</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlNominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlResistance-&gt;GetValue(), data.resistance,</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">switch</span>(m_choiceResistance-&gt;GetSelection()) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlReactance-&gt;GetValue(), data.indReactance,</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Indutive Reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactance-&gt;GetSelection()) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlSusceptance-&gt;GetValue(), data.capSusceptance,</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Capacitive Susceptance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">switch</span>(m_choiceSusceptance-&gt;GetSelection()) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlLineSize-&gt;GetValue(), data.lineSize,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Line size\&quot;.&quot;</span>)))</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; data.useLinePower = m_checkUseLinePower-&gt;GetValue();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroIndReactance,</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroSusceptance-&gt;GetValue(), data.zeroCapSusceptance,</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence capacitive susceptance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00026">PowerElement.h:26</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_form_8h.html">LineForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;LineForm::LineForm(wxWindow* parent, <a class="code" href="class_line.html">Line</a>* line) : <a class="code" href="class_line_form_base.html">LineFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_choiceResistance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceResistance-&gt;SetString(2, (wxString)L<span class="stringliteral">&#39;\u03A9&#39;</span> + <span class="stringliteral">&quot;/km&quot;</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_choiceResistance-&gt;SetInitialSize();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlResistance-&gt;SetInitialSize();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_choiceReactance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_choiceReactance-&gt;SetString(2, (wxString)L<span class="stringliteral">&#39;\u03A9&#39;</span> + <span class="stringliteral">&quot;/km&quot;</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceReactance-&gt;SetInitialSize();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_textCtrlReactance-&gt;SetInitialSize();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroSusceptance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; Layout();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_parent = parent;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_line = line;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxString nominalVoltageStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.nominalVoltage);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">switch</span>(data.nominalVoltageUnit) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; nominalVoltageStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; nominalVoltageStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_staticTextNominalVoltageValue-&gt;SetLabel(nominalVoltageStr);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_textCtrlNominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_textCtrlResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.resistance));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">switch</span>(data.resistanceUnit) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_choiceResistance-&gt;SetSelection(0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_choiceResistance-&gt;SetSelection(1);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>: {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_choiceResistance-&gt;SetSelection(2);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_textCtrlReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.indReactance));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">switch</span>(data.indReactanceUnit) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_choiceReactance-&gt;SetSelection(0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_choiceReactance-&gt;SetSelection(1);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>: {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_choiceReactance-&gt;SetSelection(2);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_textCtrlSusceptance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.capSusceptance));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">switch</span>(data.capSusceptanceUnit) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_choiceSusceptance-&gt;SetSelection(0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>: {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_choiceSusceptance-&gt;SetSelection(1);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>: {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_choiceSusceptance-&gt;SetSelection(2);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_textCtrlLineSize-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.lineSize));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_checkUseLinePower-&gt;SetValue(data.useLinePower);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroIndReactance));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_textCtrlZeroSusceptance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Line::StringFromDouble</a>(data.zeroCapSusceptance));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;LineForm::~LineForm() {}</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;<span class="keywordtype">void</span> LineForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">void</span> LineForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keywordtype">void</span> LineForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_line);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Line: Switching&quot;</span>));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">void</span> LineForm::ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; wxString label = staticText-&gt;GetLabel();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; label[label.length() - 2] = newChar;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; staticText-&gt;SetLabel(label);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keywordtype">bool</span> LineForm::ValidateData()</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = m_line-&gt;GetElectricalData();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlNominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlResistance-&gt;GetValue(), data.resistance,</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">switch</span>(m_choiceResistance-&gt;GetSelection()) {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlReactance-&gt;GetValue(), data.indReactance,</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Indutive Reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactance-&gt;GetSelection()) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlSusceptance-&gt;GetValue(), data.capSusceptance,</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Capacitive Susceptance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">switch</span>(m_choiceSusceptance-&gt;GetSelection()) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; data.capSusceptanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlLineSize-&gt;GetValue(), data.lineSize,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Line size\&quot;.&quot;</span>)))</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; data.useLinePower = m_checkUseLinePower-&gt;GetValue();</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroIndReactance,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(!m_line-&gt;DoubleFromString(m_parent, m_textCtrlZeroSusceptance-&gt;GetValue(), data.zeroCapSusceptance,</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero-sequence capacitive susceptance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_line-&gt;SetElectricalData(data);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
<div class="ttc" id="class_line_form_base_html"><div class="ttname"><a href="class_line_form_base.html">LineFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00374">ElementForm.h:374</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00027">PowerElement.h:27</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_line_form_8h_html"><div class="ttname"><a href="_line_form_8h.html">LineForm.h</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00045">PowerElement.h:45</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00046">PowerElement.h:46</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_line_form_8h.html b/docs/doxygen/html/_line_form_8h.html
new file mode 100644
index 0000000..10dd01f
--- /dev/null
+++ b/docs/doxygen/html/_line_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/LineForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_line_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">LineForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_line_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_line_form.html">LineForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the line power data. <a href="class_line_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_line_form_8h.html">LineForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_line_form_8h_source.html b/docs/doxygen/html/_line_form_8h_source.html
index dc850a8..911327d 100644
--- a/docs/doxygen/html/_line_form_8h_source.html
+++ b/docs/doxygen/html/_line_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_line_form_8h_source.html','');});
<div class="title">LineForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LINEFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LINEFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_line_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_line_form.html">LineForm</a> : <span class="keyword">public</span> <a class="code" href="class_line_form_base.html">LineFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_line_form.html">LineForm</a>(wxWindow* parent, <a class="code" href="class_line.html">Line</a>* line);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_line_form.html">LineForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="class_line.html">Line</a>* m_line = NULL;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; </div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;};</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif // LINEFORM_H</span></div><div class="ttc" id="class_line_form_html"><div class="ttname"><a href="class_line_form.html">LineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_form_8h_source.html#l00008">LineForm.h:8</a></div></div>
-<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
+<a href="_line_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LINEFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LINEFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_line_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_line_form.html">LineForm</a> : <span class="keyword">public</span> <a class="code" href="class_line_form_base.html">LineFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_line_form.html">LineForm</a>(wxWindow* parent, <a class="code" href="class_line.html">Line</a>* line);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_line_form.html">LineForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_line.html">Line</a>* m_line = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif // LINEFORM_H</span></div><div class="ttc" id="class_line_form_html"><div class="ttname"><a href="class_line_form.html">LineForm</a></div><div class="ttdoc">Form to edit the line power data. </div><div class="ttdef"><b>Definition:</b> <a href="_line_form_8h_source.html#l00032">LineForm.h:32</a></div></div>
+<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
<div class="ttc" id="class_line_form_base_html"><div class="ttname"><a href="class_line_form_base.html">LineFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00374">ElementForm.h:374</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>LineForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_line_form_8h.html">LineForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_load_8cpp_source.html b/docs/doxygen/html/_load_8cpp_source.html
index 4c8752f..0dd68df 100644
--- a/docs/doxygen/html/_load_8cpp_source.html
+++ b/docs/doxygen/html/_load_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,34 +88,35 @@ $(document).ready(function(){initNavTree('_load_8cpp_source.html','');});
<div class="title">Load.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Load::Load() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Load::Load(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Load::~Load() {}</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_load.html#ac9f449be9b919b36924a844324bf37ee"> 6</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_width = m_height = 20.0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - 10.0, m_position.m_y - 10.0, m_width, m_height);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -20.0));</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -10.0));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_triangPts.push_back(wxPoint2DDouble(-m_width / 2.0, -m_height / 2.0));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_triangPts.push_back(wxPoint2DDouble(m_width / 2.0, -m_height / 2.0));</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_triangPts.push_back(wxPoint2DDouble(0.0, m_height / 2.0));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_pfDirection = <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181"> 42</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181">Load::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Draw Selection (layer 1).</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;wxPoint2DDouble&gt; selTriangPts;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; selTriangPts.push_back(m_triangPts[0] + m_position +</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxPoint2DDouble(-m_borderSize / scale, -m_borderSize / scale));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; selTriangPts.push_back(m_triangPts[1] + m_position +</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxPoint2DDouble(m_borderSize / scale, -m_borderSize / scale));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; selTriangPts.push_back(m_triangPts[2] + m_position + wxPoint2DDouble(0.0, m_borderSize / scale));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; glPushMatrix();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; DrawTriangle(selTriangPts);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glPopMatrix();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Draw Load (layer 2).</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Draw node.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; DrawSwitches();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;wxPoint2DDouble&gt; triangPts;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; triangPts.push_back(m_triangPts[i] + m_position);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; glPushMatrix();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; DrawTriangle(triangPts);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glPopMatrix();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"><a class="line" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3"> 104</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_load.html#a25b4a3e553f8400114ac8effa11287da"> 117</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#a25b4a3e553f8400114ac8effa11287da">Load::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Load&quot;</span>));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_load.html#a792367f35c97324328816fee156e5ecf"> 124</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#a792367f35c97324328816fee156e5ecf">Load::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <a class="code" href="class_load_form.html">LoadForm</a>* loadForm = <span class="keyword">new</span> <a class="code" href="class_load_form.html">LoadForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(loadForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; loadForm-&gt;Destroy();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; loadForm-&gt;Destroy();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;}</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> Load::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;{</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; data.activePower = data.activePower / systemPowerBase;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; data.activePower = (data.activePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; data.activePower = (data.activePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"><a class="line" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2"> 174</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load::GetCopy</a>()</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;{</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_load.html">Load</a>* copy = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_load.html#a00acfbf7dc907e5de79ceb4803632279"> 181</a></span>&#160;wxString <a class="code" href="class_load.html#a00acfbf7dc907e5de79ceb4803632279">Load::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="comment">// TODO: Avoid power calculation.</span></div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; activePower = 0.0;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(m_online &amp;&amp; m_electricalData.loadType == CONST_IMPEDANCE) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; activePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_load_html_a46e9f2e0935ecca77b3a46568404d8e3"><div class="ttname"><a href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00104">Load.cpp:104</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00064">PowerElement.h:64</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_load_html_a27309c24b2c70bde37ba6afbb9679da2"><div class="ttname"><a href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00174">Load.cpp:174</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_load_html_a25b4a3e553f8400114ac8effa11287da"><div class="ttname"><a href="class_load.html#a25b4a3e553f8400114ac8effa11287da">Load::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00117">Load.cpp:117</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_load_html_aaef52b18cc53fa2db996fb9cad5db181"><div class="ttname"><a href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181">Load::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00042">Load.cpp:42</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="class_load_form_html"><div class="ttname"><a href="class_load_form.html">LoadForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_form_8h_source.html#l00008">LoadForm.h:8</a></div></div>
-<div class="ttc" id="class_load_html_a00acfbf7dc907e5de79ceb4803632279"><div class="ttname"><a href="class_load.html#a00acfbf7dc907e5de79ceb4803632279">Load::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00181">Load.cpp:181</a></div></div>
-<div class="ttc" id="class_load_html_ac9f449be9b919b36924a844324bf37ee"><div class="ttname"><a href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00006">Load.cpp:6</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
-<div class="ttc" id="class_load_html_a792367f35c97324328816fee156e5ecf"><div class="ttname"><a href="class_load.html#a792367f35c97324328816fee156e5ecf">Load::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00124">Load.cpp:124</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;Load::Load() : <a class="code" href="class_shunt.html">Shunt</a>() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Load::Load(wxString name) : <a class="code" href="class_shunt.html">Shunt</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;Load::~Load() {}</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_load.html#ac9f449be9b919b36924a844324bf37ee"> 23</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_position = parentPt + wxPoint2DDouble(0.0, 100.0); <span class="comment">// Shifts the position to the down of the bus.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_width = m_height = 20.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - 10.0, m_position.m_y - 10.0, m_width, m_height);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -20.0));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(0.0, -10.0));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_triangPts.push_back(wxPoint2DDouble(-m_width / 2.0, -m_height / 2.0));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_triangPts.push_back(wxPoint2DDouble(m_width / 2.0, -m_height / 2.0));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_triangPts.push_back(wxPoint2DDouble(0.0, m_height / 2.0));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_pfDirection = <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181"> 59</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181">Load::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Draw Selection (layer 1).</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;wxPoint2DDouble&gt; selTriangPts;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; selTriangPts.push_back(m_triangPts[0] + m_position +</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxPoint2DDouble(-m_borderSize / scale, -m_borderSize / scale));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; selTriangPts.push_back(m_triangPts[1] + m_position +</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxPoint2DDouble(m_borderSize / scale, -m_borderSize / scale));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; selTriangPts.push_back(m_triangPts[2] + m_position + wxPoint2DDouble(0.0, m_borderSize / scale));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; glPushMatrix();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; DrawTriangle(selTriangPts);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glPopMatrix();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Draw Load (layer 2).</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Draw node.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; DrawSwitches();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; std::vector&lt;wxPoint2DDouble&gt; triangPts;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; triangPts.push_back(m_triangPts[i] + m_position);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; glPushMatrix();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; DrawTriangle(triangPts);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; glPopMatrix();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;}</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"><a class="line" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3"> 121</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;}</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_load.html#a25b4a3e553f8400114ac8effa11287da"> 134</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#a25b4a3e553f8400114ac8effa11287da">Load::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Load&quot;</span>));</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_load.html#a792367f35c97324328816fee156e5ecf"> 141</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_load.html#a792367f35c97324328816fee156e5ecf">Load::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="class_load_form.html">LoadForm</a>* loadForm = <span class="keyword">new</span> <a class="code" href="class_load_form.html">LoadForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(loadForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; loadForm-&gt;Destroy();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; loadForm-&gt;Destroy();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;}</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;<a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> Load::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;{</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; data.activePower = data.activePower / systemPowerBase;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data.activePower = (data.activePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; data.activePower = (data.activePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; data.reactivePower = data.reactivePower / systemPowerBase;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; data.reactivePower = (data.reactivePower * 1e3) / systemPowerBase;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; data.reactivePower = (data.reactivePower * 1e6) / systemPowerBase;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2"> 191</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load::GetCopy</a>()</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;{</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <a class="code" href="class_load.html">Load</a>* copy = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;}</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_load.html#a00acfbf7dc907e5de79ceb4803632279"> 198</a></span>&#160;wxString <a class="code" href="class_load.html#a00acfbf7dc907e5de79ceb4803632279">Load::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// TODO: Avoid power calculation.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; activePower = 0.0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; reactivePower = 0.0;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(m_online &amp;&amp; m_electricalData.loadType == CONST_IMPEDANCE) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; reactivePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; activePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; }</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_load_html_a46e9f2e0935ecca77b3a46568404d8e3"><div class="ttname"><a href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00121">Load.cpp:121</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00081">PowerElement.h:81</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_load_html_a27309c24b2c70bde37ba6afbb9679da2"><div class="ttname"><a href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00191">Load.cpp:191</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_load_html_a25b4a3e553f8400114ac8effa11287da"><div class="ttname"><a href="class_load.html#a25b4a3e553f8400114ac8effa11287da">Load::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00134">Load.cpp:134</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_load_html_aaef52b18cc53fa2db996fb9cad5db181"><div class="ttname"><a href="class_load.html#aaef52b18cc53fa2db996fb9cad5db181">Load::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00059">Load.cpp:59</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="class_load_form_html"><div class="ttname"><a href="class_load_form.html">LoadForm</a></div><div class="ttdoc">Form to edit the load power data. </div><div class="ttdef"><b>Definition:</b> <a href="_load_form_8h_source.html#l00032">LoadForm.h:32</a></div></div>
+<div class="ttc" id="class_load_html_a00acfbf7dc907e5de79ceb4803632279"><div class="ttname"><a href="class_load.html#a00acfbf7dc907e5de79ceb4803632279">Load::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00198">Load.cpp:198</a></div></div>
+<div class="ttc" id="class_load_html_ac9f449be9b919b36924a844324bf37ee"><div class="ttname"><a href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00023">Load.cpp:23</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
+<div class="ttc" id="class_load_html_a792367f35c97324328816fee156e5ecf"><div class="ttname"><a href="class_load.html#a792367f35c97324328816fee156e5ecf">Load::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8cpp_source.html#l00141">Load.cpp:141</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_load_8h.html b/docs/doxygen/html/_load_8h.html
new file mode 100644
index 0000000..af11d9f
--- /dev/null
+++ b/docs/doxygen/html/_load_8h.html
@@ -0,0 +1,126 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Load.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_load_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Load.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_load_form_8h_source.html">LoadForm.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_shunt_8h_source.html">Shunt.h</a>&quot;</code><br />
+</div>
+<p><a href="_load_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_load_electrical_data.html">LoadElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_load.html">Load</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Loas shunt power element. <a href="class_load.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a23ef47ba052bffd629011885a72be6ae"><td class="memItemLeft" align="right" valign="top"><a id="a23ef47ba052bffd629011885a72be6ae"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>LoadType</b> { <b>CONST_POWER</b> = 0,
+<b>CONST_IMPEDANCE</b>
+ }</td></tr>
+<tr class="separator:a23ef47ba052bffd629011885a72be6ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_load_8h.html">Load.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_load_8h.js b/docs/doxygen/html/_load_8h.js
new file mode 100644
index 0000000..31f1d49
--- /dev/null
+++ b/docs/doxygen/html/_load_8h.js
@@ -0,0 +1,9 @@
+var _load_8h =
+[
+ [ "LoadElectricalData", "struct_load_electrical_data.html", "struct_load_electrical_data" ],
+ [ "Load", "class_load.html", "class_load" ],
+ [ "LoadType", "_load_8h.html#a23ef47ba052bffd629011885a72be6ae", [
+ [ "CONST_POWER", "_load_8h.html#a23ef47ba052bffd629011885a72be6aea050d3b412b1a323ad9b62e94a7e8386f", null ],
+ [ "CONST_IMPEDANCE", "_load_8h.html#a23ef47ba052bffd629011885a72be6aea3030768ede9894e4595833f464783de6", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_load_8h_source.html b/docs/doxygen/html/_load_8h_source.html
index 307dd3e..468482b 100644
--- a/docs/doxygen/html/_load_8h_source.html
+++ b/docs/doxygen/html/_load_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,21 @@ $(document).ready(function(){initNavTree('_load_8h_source.html','');});
<div class="title">Load.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LOAD_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LOAD_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;LoadForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Shunt.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">enum</span> LoadType</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; CONST_POWER = 0,</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; CONST_IMPEDANCE</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;};</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="struct_load_electrical_data.html"> 13</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; wxString name;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; LoadType loadType = CONST_POWER;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_load.html"> 23</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_load.html">Load</a>(wxString name);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; ~<a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; </div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triangPts;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> m_electricalData;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif // LOAD_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
+<a href="_load_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LOAD_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LOAD_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_form_8h.html">LoadForm.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shunt_8h.html">Shunt.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">enum</span> LoadType { CONST_POWER = 0, CONST_IMPEDANCE };</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="struct_load_electrical_data.html"> 26</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxString name;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; LoadType loadType = CONST_POWER;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_load.html"> 42</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a> : <span class="keyword">public</span> <a class="code" href="class_shunt.html">Shunt</a></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_load.html">Load</a>(wxString name);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; ~<a class="code" href="class_load.html">Load</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_triangPts;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> m_electricalData;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;};</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="preprocessor">#endif // LOAD_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_shunt_8h_html"><div class="ttname"><a href="_shunt_8h.html">Shunt.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_load_form_8h_html"><div class="ttname"><a href="_load_form_8h.html">LoadForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Load.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_load_8h.html">Load.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_load_form_8cpp_source.html b/docs/doxygen/html/_load_form_8cpp_source.html
index 2cce217..ff86191 100644
--- a/docs/doxygen/html/_load_form_8cpp_source.html
+++ b/docs/doxygen/html/_load_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,18 +88,21 @@ $(document).ready(function(){initNavTree('_load_form_8cpp_source.html','');});
<div class="title">LoadForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;LoadForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;LoadForm::LoadForm(wxWindow* parent, <a class="code" href="class_load.html">Load</a>* load) : <a class="code" href="class_load_form_base.html">LoadFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Load::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Load::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">switch</span>(data.loadType) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> CONST_POWER: {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceType-&gt;SetSelection(0);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> CONST_IMPEDANCE: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_choiceType-&gt;SetSelection(1);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_parent = parent;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_load = load;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;LoadForm::~LoadForm() {}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;<span class="keywordtype">void</span> LoadForm::OnOnButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;{</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;<span class="keywordtype">void</span> LoadForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_load);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Load: Switching&quot;</span>));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;<span class="keywordtype">bool</span> LoadForm::ValidateData()</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(!m_load-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(!m_load-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">switch</span>(m_choiceType-&gt;GetSelection()) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; data.loadType = CONST_POWER;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; data.loadType = CONST_IMPEDANCE;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_load-&gt;SetElectricalData(data);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_form_8h.html">LoadForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;LoadForm::LoadForm(wxWindow* parent, <a class="code" href="class_load.html">Load</a>* load) : <a class="code" href="class_load_form_base.html">LoadFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetElectricalData();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Load::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Load::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">switch</span>(data.loadType) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> CONST_POWER: {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_choiceType-&gt;SetSelection(0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> CONST_IMPEDANCE: {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_choiceType-&gt;SetSelection(1);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_parent = parent;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_load = load;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;LoadForm::~LoadForm() {}</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">void</span> LoadForm::OnOnButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> LoadForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_load);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Load: Switching&quot;</span>));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keywordtype">bool</span> LoadForm::ValidateData()</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(!m_load-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(!m_load-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">switch</span>(m_choiceType-&gt;GetSelection()) {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; data.loadType = CONST_POWER;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data.loadType = CONST_IMPEDANCE;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_load-&gt;SetElectricalData(data);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_load_form_8h_html"><div class="ttname"><a href="_load_form_8h.html">LoadForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
<div class="ttc" id="class_load_form_base_html"><div class="ttname"><a href="class_load_form_base.html">LoadFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00552">ElementForm.h:552</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_load_form_8h.html b/docs/doxygen/html/_load_form_8h.html
new file mode 100644
index 0000000..8e881d7
--- /dev/null
+++ b/docs/doxygen/html/_load_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/LoadForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_load_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">LoadForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_load_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_load_form.html">LoadForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the load power data. <a href="class_load_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_load_form_8h.html">LoadForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_load_form_8h_source.html b/docs/doxygen/html/_load_form_8h_source.html
index 210e4ca..47a70cd 100644
--- a/docs/doxygen/html/_load_form_8h_source.html
+++ b/docs/doxygen/html/_load_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_load_form_8h_source.html','');});
<div class="title">LoadForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef LOADFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define LOADFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_load_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_load_form.html">LoadForm</a> : <span class="keyword">public</span> <a class="code" href="class_load_form_base.html">LoadFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_load_form.html">LoadForm</a>(wxWindow* parent, <a class="code" href="class_load.html">Load</a>* load);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_load_form.html">LoadForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOnButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_load.html">Load</a>* m_load = NULL;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;};</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif // LOADFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
+<a href="_load_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef LOADFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define LOADFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_load_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_load_form.html">LoadForm</a> : <span class="keyword">public</span> <a class="code" href="class_load_form_base.html">LoadFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_load_form.html">LoadForm</a>(wxWindow* parent, <a class="code" href="class_load.html">Load</a>* load);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_load_form.html">LoadForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOnButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_load.html">Load</a>* m_load = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif // LOADFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
<div class="ttc" id="class_load_form_base_html"><div class="ttname"><a href="class_load_form_base.html">LoadFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00552">ElementForm.h:552</a></div></div>
-<div class="ttc" id="class_load_form_html"><div class="ttname"><a href="class_load_form.html">LoadForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_form_8h_source.html#l00008">LoadForm.h:8</a></div></div>
+<div class="ttc" id="class_load_form_html"><div class="ttname"><a href="class_load_form.html">LoadForm</a></div><div class="ttdoc">Form to edit the load power data. </div><div class="ttdef"><b>Definition:</b> <a href="_load_form_8h_source.html#l00032">LoadForm.h:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>LoadForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_load_form_8h.html">LoadForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_machines_8cpp_source.html b/docs/doxygen/html/_machines_8cpp_source.html
index b7899fe..51a16f2 100644
--- a/docs/doxygen/html/_machines_8cpp_source.html
+++ b/docs/doxygen/html/_machines_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,31 +88,34 @@ $(document).ready(function(){initNavTree('_machines_8cpp_source.html','');});
<div class="title">Machines.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Machines.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElementSolver.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;Machines::Machines() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;Machines::~Machines() {}</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3"> 8</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_position = parentPt + wxPoint2DDouble(-100.0, 0.0); <span class="comment">// Shifts the position to the left of the bus.</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_width = m_height = 50.0;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - 25.0, m_position.m_y - 25.0, m_width, m_height);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(35.0, 0.0));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(25.0, 0.0));</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;}</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c"> 37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Draw Selection (layer 1).</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawCircle(m_position, 25.0 + (m_borderSize + 1.5) / scale, 20, GL_POLYGON);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Draw Machines (layer 2).</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Draw node.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; DrawSwitches();</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; DrawCircle(m_position, 25.0, 20, GL_POLYGON);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; DrawCircle(m_position, 25.0, 20);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Draw machine symbol.</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; DrawSymbol();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> Machines::UpdateSwitchesPosition()</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44"> 94</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="class_machines.html#aeab8436c33f74a10e252b418028ec491"> 107</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position)</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(element) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(element == m_parentList[0]) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"><a class="line" href="class_machines.html#acbefe76cd5161b5684a27205b155e797"> 129</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_machines.html#a914faa054440402cad74c3b70f62ad92"> 136</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;}</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"><a class="line" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026"> 148</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;}</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"><a class="line" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff"> 158</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;{</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(nodeRect.Contains(position)) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"><a class="line" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901"> 172</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;{</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;}</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"><a class="line" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7"> 199</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a>()</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;{</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a"> 215</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keywordtype">void</span> Machines::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;{</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>: {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>: {</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; }</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;}</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"><a class="line" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3"> 250</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;{</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00129">Machines.cpp:129</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00094">Machines.cpp:94</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_machines_8h.html">Machines.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_solver_8h.html">ControlElementSolver.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;Machines::Machines() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;Machines::~Machines() {}</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3"> 25</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_position = parentPt + wxPoint2DDouble(-100.0, 0.0); <span class="comment">// Shifts the position to the left of the bus.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_width = m_height = 50.0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_rect = wxRect2DDouble(m_position.m_x - 25.0, m_position.m_y - 25.0, m_width, m_height);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pointList.push_back(parentPt);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(35.0, 0.0));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_pointList.push_back(m_position + wxPoint2DDouble(25.0, 0.0));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_switchRect.push_back(genRect); <span class="comment">// Push a general rectangle.</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;}</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c"> 54</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Draw Selection (layer 1).</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawCircle(m_position, 25.0 + (m_borderSize + 1.5) / scale, 20, GL_POLYGON);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Draw node selection.</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Draw Machines (layer 2).</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Draw node.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; DrawSwitches();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; DrawCircle(m_position, 25.0, 20, GL_POLYGON);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; DrawCircle(m_position, 25.0, 20);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="comment">// Draw machine symbol.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; DrawSymbol();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;}</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keywordtype">void</span> Machines::UpdateSwitchesPosition()</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;{</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44"> 111</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_machines.html#aeab8436c33f74a10e252b418028ec491"> 124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(element) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(element == m_parentList[0]) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"><a class="line" href="class_machines.html#acbefe76cd5161b5684a27205b155e797"> 146</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"><a class="line" href="class_machines.html#a914faa054440402cad74c3b70f62ad92"> 153</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026"> 165</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; }</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;}</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff"> 175</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;{</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(nodeRect.Contains(position)) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"><a class="line" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901"> 189</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;{</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; }</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"><a class="line" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7"> 216</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a>()</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a"> 232</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_pointList[2] = RotateAtPosition(m_pointList[2], rotAngle);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_pointList[3] = RotateAtPosition(m_pointList[3], rotAngle);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;<span class="keywordtype">void</span> Machines::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;{</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>: {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>: {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; }</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;}</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;</div><div class="line"><a name="l00267"></a><span class="lineno"><a class="line" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3"> 267</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;{</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="_machines_8h_html"><div class="ttname"><a href="_machines_8h.html">Machines.h</a></div></div>
+<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00146">Machines.cpp:146</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00111">Machines.cpp:111</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_machines_html_a63597b82a1db17a9e4aac9f1058d7dff"><div class="ttname"><a href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00158">Machines.cpp:158</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00064">PowerElement.h:64</a></div></div>
-<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00250">Machines.cpp:250</a></div></div>
-<div class="ttc" id="class_machines_html_a914faa054440402cad74c3b70f62ad92"><div class="ttname"><a href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00136">Machines.cpp:136</a></div></div>
-<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00008">Machines.cpp:8</a></div></div>
-<div class="ttc" id="class_machines_html_aed7664d5b85585fc13f4a1ad48457901"><div class="ttname"><a href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00172">Machines.cpp:172</a></div></div>
-<div class="ttc" id="class_machines_html_a51d79bffa4471eb29c223aaa180839f7"><div class="ttname"><a href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00199">Machines.cpp:199</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00215">Machines.cpp:215</a></div></div>
-<div class="ttc" id="class_machines_html_af3279663c82de88e12f0487bfc633f7c"><div class="ttname"><a href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00037">Machines.cpp:37</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00063">PowerElement.h:63</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00148">Machines.cpp:148</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_machines_html_aeab8436c33f74a10e252b418028ec491"><div class="ttname"><a href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00107">Machines.cpp:107</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="ttc" id="class_machines_html_a63597b82a1db17a9e4aac9f1058d7dff"><div class="ttname"><a href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00175">Machines.cpp:175</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00081">PowerElement.h:81</a></div></div>
+<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00267">Machines.cpp:267</a></div></div>
+<div class="ttc" id="class_machines_html_a914faa054440402cad74c3b70f62ad92"><div class="ttname"><a href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00153">Machines.cpp:153</a></div></div>
+<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00025">Machines.cpp:25</a></div></div>
+<div class="ttc" id="class_machines_html_aed7664d5b85585fc13f4a1ad48457901"><div class="ttname"><a href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00189">Machines.cpp:189</a></div></div>
+<div class="ttc" id="class_machines_html_a51d79bffa4471eb29c223aaa180839f7"><div class="ttname"><a href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00216">Machines.cpp:216</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00232">Machines.cpp:232</a></div></div>
+<div class="ttc" id="class_machines_html_af3279663c82de88e12f0487bfc633f7c"><div class="ttname"><a href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00054">Machines.cpp:54</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00080">PowerElement.h:80</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00079">PowerElement.h:79</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="_control_element_solver_8h_html"><div class="ttname"><a href="_control_element_solver_8h.html">ControlElementSolver.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00165">Machines.cpp:165</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_machines_html_aeab8436c33f74a10e252b418028ec491"><div class="ttname"><a href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00124">Machines.cpp:124</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_machines_8h.html b/docs/doxygen/html/_machines_8h.html
new file mode 100644
index 0000000..7c8209e
--- /dev/null
+++ b/docs/doxygen/html/_machines_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Machines.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_machines_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Machines.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_machines_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_machines.html">Machines</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class for rotary machines power elements. <a href="class_machines.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_machines_8h.html">Machines.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_machines_8h_source.html b/docs/doxygen/html/_machines_8h_source.html
index ea9370b..1310bfd 100644
--- a/docs/doxygen/html/_machines_8h_source.html
+++ b/docs/doxygen/html/_machines_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,33 +88,33 @@ $(document).ready(function(){initNavTree('_machines_8h_source.html','');});
<div class="title">Machines.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef MACHINES_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define MACHINES_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_machines.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_machines.html">Machines</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">enum</span> SyncMachineModel { SM_MODEL_1 = 0, SM_MODEL_2, SM_MODEL_3, SM_MODEL_4, SM_MODEL_5 };</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_machines.html">Machines</a>();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; ~<a class="code" href="class_machines.html">Machines</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4"> 20</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#aeab8436c33f74a10e252b418028ec491">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a914faa054440402cad74c3b70f62ad92">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">UpdateNodes</a>();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol()<span class="keyword"> const </span>{}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;};</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#endif // MACHINES_H</span></div><div class="ttc" id="class_machines_html_acda27b0ea8a7b0fb00d647d8744f346e"><div class="ttname"><a href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e">Machines::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00018">Machines.h:18</a></div></div>
-<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00129">Machines.cpp:129</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00094">Machines.cpp:94</a></div></div>
-<div class="ttc" id="class_machines_html_a63597b82a1db17a9e4aac9f1058d7dff"><div class="ttname"><a href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00158">Machines.cpp:158</a></div></div>
-<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00250">Machines.cpp:250</a></div></div>
-<div class="ttc" id="class_machines_html_a914faa054440402cad74c3b70f62ad92"><div class="ttname"><a href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00136">Machines.cpp:136</a></div></div>
-<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00008">Machines.cpp:8</a></div></div>
-<div class="ttc" id="class_machines_html_aed7664d5b85585fc13f4a1ad48457901"><div class="ttname"><a href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00172">Machines.cpp:172</a></div></div>
-<div class="ttc" id="class_machines_html_a51d79bffa4471eb29c223aaa180839f7"><div class="ttname"><a href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00199">Machines.cpp:199</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00215">Machines.cpp:215</a></div></div>
-<div class="ttc" id="class_machines_html_af3279663c82de88e12f0487bfc633f7c"><div class="ttname"><a href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00037">Machines.cpp:37</a></div></div>
-<div class="ttc" id="class_machines_html_a0a825ccdbd5059f9ae9f869d4b6e3ec4"><div class="ttname"><a href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4">Machines::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00020">Machines.h:20</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00148">Machines.cpp:148</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_machines_html_aeab8436c33f74a10e252b418028ec491"><div class="ttname"><a href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00107">Machines.cpp:107</a></div></div>
+<a href="_machines_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef MACHINES_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define MACHINES_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_container.html">ControlElementContainer</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_control_element_solver.html">ControlElementSolver</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_machines.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_machines.html">Machines</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">enum</span> SyncMachineModel { SM_MODEL_1 = 0, SM_MODEL_2, SM_MODEL_3, SM_MODEL_4, SM_MODEL_5 };</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_machines.html">Machines</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ~<a class="code" href="class_machines.html">Machines</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e"> 42</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4"> 44</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#aeab8436c33f74a10e252b418028ec491">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a914faa054440402cad74c3b70f62ad92">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">UpdateNodes</a>();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol()<span class="keyword"> const </span>{}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif // MACHINES_H</span></div><div class="ttc" id="class_machines_html_acda27b0ea8a7b0fb00d647d8744f346e"><div class="ttname"><a href="class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e">Machines::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00042">Machines.h:42</a></div></div>
+<div class="ttc" id="class_machines_html_acbefe76cd5161b5684a27205b155e797"><div class="ttname"><a href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00146">Machines.cpp:146</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_machines_html_a2f7450283dd36f4fc0847dfd50385c44"><div class="ttname"><a href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00111">Machines.cpp:111</a></div></div>
+<div class="ttc" id="class_machines_html_a63597b82a1db17a9e4aac9f1058d7dff"><div class="ttname"><a href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00175">Machines.cpp:175</a></div></div>
+<div class="ttc" id="class_machines_html_a293cb955dcacaaebca564b8a91ce57d3"><div class="ttname"><a href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00267">Machines.cpp:267</a></div></div>
+<div class="ttc" id="class_machines_html_a914faa054440402cad74c3b70f62ad92"><div class="ttname"><a href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00153">Machines.cpp:153</a></div></div>
+<div class="ttc" id="class_machines_html_aaaf1b86dcbfd8f4a4c082a77d72b1fe3"><div class="ttname"><a href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00025">Machines.cpp:25</a></div></div>
+<div class="ttc" id="class_machines_html_aed7664d5b85585fc13f4a1ad48457901"><div class="ttname"><a href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00189">Machines.cpp:189</a></div></div>
+<div class="ttc" id="class_machines_html_a51d79bffa4471eb29c223aaa180839f7"><div class="ttname"><a href="class_machines.html#a51d79bffa4471eb29c223aaa180839f7">Machines::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00216">Machines.cpp:216</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_machines_html_acff264f0c80d97a966ff97401f2f142a"><div class="ttname"><a href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00232">Machines.cpp:232</a></div></div>
+<div class="ttc" id="class_machines_html_af3279663c82de88e12f0487bfc633f7c"><div class="ttname"><a href="class_machines.html#af3279663c82de88e12f0487bfc633f7c">Machines::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00054">Machines.cpp:54</a></div></div>
+<div class="ttc" id="class_machines_html_a0a825ccdbd5059f9ae9f869d4b6e3ec4"><div class="ttname"><a href="class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4">Machines::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00044">Machines.h:44</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_machines_html_a002d852ddd0d73502a6bd819b5545026"><div class="ttname"><a href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00165">Machines.cpp:165</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_machines_html_aeab8436c33f74a10e252b418028ec491"><div class="ttname"><a href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8cpp_source.html#l00124">Machines.cpp:124</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Machines.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_machines_8h.html">Machines.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_main_frame_8cpp_source.html b/docs/doxygen/html/_main_frame_8cpp_source.html
index a371fc9..849dbb5 100644
--- a/docs/doxygen/html/_main_frame_8cpp_source.html
+++ b/docs/doxygen/html/_main_frame_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,31 +88,51 @@ $(document).ready(function(){initNavTree('_main_frame_8cpp_source.html','');});
<div class="title">MainFrame.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;MainFrame.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ArtMetro.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;Workspace.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;FileHanding.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;GeneralPropertiesForm.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;SimulationsSettingsForm.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;ChartView.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;DataReport.h&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;AboutForm.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;MainFrame::MainFrame() : <a class="code" href="class_main_frame_base.html">MainFrameBase</a>(NULL) {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;MainFrame::MainFrame(wxWindow* parent, wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* initProperties) : <a class="code" href="class_main_frame_base.html">MainFrameBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_locale = locale;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_generalProperties = initProperties;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; Init();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;MainFrame::~MainFrame()</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// if(m_artMetro) delete m_artMetro;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(m_addElementsMenu) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_addElementsMenu-&gt;Disconnect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnAddElementsClick),</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">delete</span> m_addElementsMenu;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(m_locale) <span class="keyword">delete</span> m_locale;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(m_generalProperties) <span class="keyword">delete</span> m_generalProperties;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keywordtype">void</span> MainFrame::Init()</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; this-&gt;SetSize(800, 600);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; CreateAddElementsMenu();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; EnableCurrentProjectRibbon(<span class="keyword">false</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_artMetro = <span class="keyword">new</span> <a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_ribbonBar-&gt;SetArtProvider(m_artMetro);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_ribbonBar-&gt;Realize();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; this-&gt;Layout();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> MainFrame::EnableCurrentProjectRibbon(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ADDELEMENT, enable);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_CHARTS, enable);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_CLOSE, enable);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_COPY, enable);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_DATAREPORT, enable);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_DELETE, enable);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_DISABLESOL, enable);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_DRAG, enable);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_ENABLESOL, enable);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_FAULT, enable);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_FIT, enable);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_MOVE, enable);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_PASTE, enable);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_POWERFLOW, enable);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_REDO, enable);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_RESETVOLT, enable);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_RUNSTAB, enable);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_SAVE, enable);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_SAVEAS, enable);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_SCPOWER, enable);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_PROJSETTINGS, enable);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_SNAPSHOT, enable);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_SIMULSETTINGS, enable);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_UNDO, enable);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ROTATEC, enable);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ROTATECC, enable);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keywordtype">void</span> MainFrame::CreateAddElementsMenu()</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_addElementsMenu = <span class="keyword">new</span> wxMenu();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; wxMenuItem* busElement =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_BUS, _(<span class="stringliteral">&quot;&amp;Bus\tB&quot;</span>), _(<span class="stringliteral">&quot;Adds a bus at the circuit&quot;</span>));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="comment">// busElement-&gt;SetBitmap(wxArtProvider::GetBitmap(wxART_WARNING));</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; wxMenuItem* lineElement =</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_LINE, _(<span class="stringliteral">&quot;&amp;Line\tL&quot;</span>), _(<span class="stringliteral">&quot;Adds a power line at the circuit&quot;</span>));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; wxMenuItem* transformerElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_TRANSFORMER, _(<span class="stringliteral">&quot;&amp;Transformer\tT&quot;</span>),</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; _(<span class="stringliteral">&quot;Adds a transformer at the circuit&quot;</span>));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; wxMenuItem* generatorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_GENERATOR, _(<span class="stringliteral">&quot;&amp;Generator\tG&quot;</span>),</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; _(<span class="stringliteral">&quot;Adds a generator at the circuit&quot;</span>));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; wxMenuItem* indMotorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDMOTOR, _(<span class="stringliteral">&quot;&amp;Induction motor\tI&quot;</span>),</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; _(<span class="stringliteral">&quot;Adds an induction motor at the circuit&quot;</span>));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxMenuItem* syncCompElement =</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_SYNCCOMP, _(<span class="stringliteral">&quot;&amp;Synchronous compensator \tK&quot;</span>),</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _(<span class="stringliteral">&quot;Adds an induction motor at the circuit&quot;</span>));</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; wxMenuItem* loadElement =</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_LOAD, _(<span class="stringliteral">&quot;&amp;Load\tShift-L&quot;</span>), _(<span class="stringliteral">&quot;Adds a load at the circuit&quot;</span>));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxMenuItem* capacitorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_CAPACITOR, _(<span class="stringliteral">&quot;&amp;Capacitor\tShift-C&quot;</span>),</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; _(<span class="stringliteral">&quot;Adds a shunt capacitor at the circuit&quot;</span>));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; wxMenuItem* inductorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDUCTOR, _(<span class="stringliteral">&quot;&amp;Inductor\tShift-I&quot;</span>),</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; _(<span class="stringliteral">&quot;Adds a shunt inductor at the circuit&quot;</span>));</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_addElementsMenu-&gt;Append(busElement);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_addElementsMenu-&gt;Append(lineElement);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_addElementsMenu-&gt;Append(transformerElement);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_addElementsMenu-&gt;Append(generatorElement);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_addElementsMenu-&gt;Append(indMotorElement);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_addElementsMenu-&gt;Append(syncCompElement);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_addElementsMenu-&gt;Append(loadElement);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_addElementsMenu-&gt;Append(capacitorElement);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_addElementsMenu-&gt;Append(inductorElement);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_addElementsMenu-&gt;Bind(wxEVT_COMMAND_MENU_SELECTED, &amp;MainFrame::OnAddElementsClick, <span class="keyword">this</span>);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;<span class="keywordtype">void</span> MainFrame::OnNewClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; EnableCurrentProjectRibbon();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* newWorkspace =</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">new</span> <a class="code" href="class_workspace.html">Workspace</a>(<span class="keyword">this</span>, wxString::Format(_(<span class="stringliteral">&quot;New project %d&quot;</span>), m_projectNumber), this-&gt;GetStatusBar());</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_workspaceList.push_back(newWorkspace);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_auiNotebook-&gt;AddPage(newWorkspace, newWorkspace-&gt;GetName(), <span class="keyword">true</span>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; newWorkspace-&gt;Redraw();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_projectNumber++;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAboutClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="class_about_form.html">AboutForm</a> about(<span class="keyword">this</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; about.ShowModal();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAddElementDropdown(wxRibbonButtonBarEvent&amp; event) { <span class="keyword">event</span>.PopupMenu(m_addElementsMenu); }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;<span class="keywordtype">void</span> MainFrame::OnChartsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; std::vector&lt;ElementPlotData&gt; plotDataList;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetElementList();</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_power_element.html">PowerElement</a>* powerElement = dynamic_cast&lt;PowerElement*&gt;(*it)) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> plotData;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(powerElement-&gt;GetPlotData(plotData)) plotDataList.push_back(plotData);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(workspace, plotDataList, workspace-&gt;GetStabilityTimeVector());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keywordtype">void</span> MainFrame::OnCloseClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> MainFrame::OnCopyClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDataReportClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <a class="code" href="class_data_report.html">DataReport</a>* dataReport = <span class="keyword">new</span> <a class="code" href="class_data_report.html">DataReport</a>(workspace, workspace);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; dataReport-&gt;Show();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;}</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDeleteClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; workspace-&gt;DeleteSelectedElements();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;}</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; workspace-&gt;SetContinuousCalculationActive(<span class="keyword">false</span>);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDragClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;<span class="keywordtype">void</span> MainFrame::OnEnableSolutionClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; workspace-&gt;SetContinuousCalculationActive(<span class="keyword">true</span>);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; workspace-&gt;RunStaticStudies();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;}</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;<span class="keywordtype">void</span> MainFrame::OnExpImpClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;<span class="keywordtype">void</span> MainFrame::OnFaultClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;{</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; workspace-&gt;RunFault();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;}</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;<span class="keywordtype">void</span> MainFrame::OnFitClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;{</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; workspace-&gt;Fit();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;}</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;<span class="keywordtype">void</span> MainFrame::OnMoveClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;{</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetAllElements();</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="comment">// Calculate the average position of selected elements.</span></div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; wxPoint2DDouble averagePos(0, 0);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordtype">int</span> numSelElements = 0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; averagePos += element-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>();</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; numSelElements++;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; }</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; }</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; averagePos = wxPoint2DDouble(averagePos.m_x / <span class="keywordtype">double</span>(numSelElements), averagePos.m_y / <span class="keywordtype">double</span>(numSelElements));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Set the move position to the average of selected elements.</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(averagePos);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; }</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; workspace-&gt;SetWorkspaceMode(Workspace::MODE_MOVE_ELEMENT);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;}</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="keywordtype">void</span> MainFrame::OnOpenClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;{</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; wxFileDialog openFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; wxFD_OPEN | wxFD_FILE_MUST_EXIST);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">if</span>(openFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; wxFileName fileName(openFileDialog.GetPath());</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; EnableCurrentProjectRibbon();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* newWorkspace = <span class="keyword">new</span> <a class="code" href="class_workspace.html">Workspace</a>(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open project&quot;</span>), this-&gt;GetStatusBar());</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(newWorkspace);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(fileHandling.OpenProject(fileName)) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; newWorkspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_workspaceList.push_back(newWorkspace);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_auiNotebook-&gt;AddPage(newWorkspace, newWorkspace-&gt;GetName(), <span class="keyword">true</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_auiNotebook-&gt;Layout();</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; newWorkspace-&gt;Redraw();</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; newWorkspace-&gt;SetJustOpened(<span class="keyword">true</span>);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_projectNumber++;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keyword">delete</span> newWorkspace;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;}</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPSPGuideClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPasteClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPowerFlowClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;{</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; workspace-&gt;RunPowerFlow();</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRedoClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keywordtype">void</span> MainFrame::OnResetVoltagesClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRunStabilityClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;{</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; workspace-&gt;RunStability();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;}</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSCPowerClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160;{</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; workspace-&gt;RunSCPower();</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSaveAsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(workspace);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; fileHandling.SaveProject(saveFileDialog.GetPath());</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; workspace-&gt;SetName(fileName.GetName());</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; m_auiNotebook-&gt;SetPageText(m_auiNotebook-&gt;GetPageIndex(workspace), workspace-&gt;GetName());</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; workspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160;}</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSaveClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;{</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(workspace);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span>(workspace-&gt;GetSavedPath().IsOk()) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; fileHandling.SaveProject(workspace-&gt;GetSavedPath());</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; fileHandling.SaveProject(saveFileDialog.GetPath());</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; workspace-&gt;SetName(fileName.GetName());</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; m_auiNotebook-&gt;SetPageText(m_auiNotebook-&gt;GetPageIndex(workspace), workspace-&gt;GetName());</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; workspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;}</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSnapshotClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;<span class="keywordtype">void</span> MainFrame::OnUndoClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAddElementsClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160;{</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(workspace-&gt;GetWorkspaceMode() != Workspace::MODE_INSERT) {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetElementList();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; wxString statusBarText = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordtype">bool</span> newElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">switch</span>(event.GetId()) {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_BUS: {</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(0, 0),</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Bus %d&quot;</span>), workspace-&gt;GetElementNumber(ID_BUS)));</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; workspace-&gt;IncrementElementNumber(ID_BUS);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; elementList.push_back(newBus);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Bus: Click to insert, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_LINE: {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <a class="code" href="class_line.html">Line</a>* newLine = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>(wxString::Format(_(<span class="stringliteral">&quot;Line %d&quot;</span>), workspace-&gt;GetElementNumber(ID_LINE)));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; elementList.push_back(newLine);</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; workspace-&gt;IncrementElementNumber(ID_LINE);</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Line: Click on two buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_TRANSFORMER: {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* newTransformer = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>(</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Transformer %d&quot;</span>), workspace-&gt;GetElementNumber(ID_TRANSFORMER)));</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; workspace-&gt;IncrementElementNumber(ID_TRANSFORMER);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; elementList.push_back(newTransformer);</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Transformer: Click on two buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_GENERATOR: {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* newGenerator = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>(</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Generator %d&quot;</span>), workspace-&gt;GetElementNumber(ID_SYNCGENERATOR)));</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; workspace-&gt;IncrementElementNumber(ID_SYNCGENERATOR);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; elementList.push_back(newGenerator);</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Generator: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_LOAD: {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <a class="code" href="class_load.html">Load</a>* newLoad = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>(wxString::Format(_(<span class="stringliteral">&quot;Load %d&quot;</span>), workspace-&gt;GetElementNumber(ID_LOAD)));</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; workspace-&gt;IncrementElementNumber(ID_LOAD);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; elementList.push_back(newLoad);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Load: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_CAPACITOR: {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* newCapacitor =</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>(wxString::Format(_(<span class="stringliteral">&quot;Capacitor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_CAPACITOR)));</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; workspace-&gt;IncrementElementNumber(ID_CAPACITOR);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; elementList.push_back(newCapacitor);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Capacitor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_INDUCTOR: {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* newInductor =</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>(wxString::Format(_(<span class="stringliteral">&quot;Inductor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_INDUCTOR)));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; workspace-&gt;IncrementElementNumber(ID_INDUCTOR);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; elementList.push_back(newInductor);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Inductor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_INDMOTOR: {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* newIndMotor = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>(</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Induction motor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_INDMOTOR)));</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; workspace-&gt;IncrementElementNumber(ID_INDMOTOR);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; elementList.push_back(newIndMotor);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Induction Motor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_SYNCCOMP: {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* newSyncCondenser = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>(</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Synchronous condenser %d&quot;</span>), workspace-&gt;GetElementNumber(ID_SYNCMOTOR)));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; workspace-&gt;IncrementElementNumber(ID_SYNCMOTOR);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; elementList.push_back(newSyncCondenser);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Synchronous Condenser: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">if</span>(newElement) {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; workspace-&gt;SetElementList(elementList);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; workspace-&gt;SetWorkspaceMode(Workspace::MODE_INSERT);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; workspace-&gt;SetStatusBarText(statusBarText);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; workspace-&gt;Redraw();</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; }</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160;}</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160;<span class="keywordtype">void</span> MainFrame::NotebookPageClosed(wxAuiNotebookEvent&amp; event)</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;{</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span>(m_auiNotebook-&gt;GetPageCount() == 0) EnableCurrentProjectRibbon(<span class="keyword">false</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;}</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160;<span class="keywordtype">void</span> MainFrame::NotebookPageClosing(wxAuiNotebookEvent&amp; event)</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;{</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">auto</span> it = m_workspaceList.begin();</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">while</span>(it != m_workspaceList.end()) {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>(*it == m_auiNotebook-&gt;GetCurrentPage()) {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; m_workspaceList.erase(it);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; }</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; it++;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; }</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;}</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRotClockClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;{</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; workspace-&gt;RotateSelectedElements();</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;}</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRotCounterClockClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;{</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; workspace-&gt;RotateSelectedElements(<span class="keyword">false</span>);</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; }</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;}</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;<span class="keywordtype">void</span> MainFrame::OnGeneralSettingsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;{</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a> genPropForm(<span class="keyword">this</span>, m_generalProperties);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; genPropForm.SetInitialSize();</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; genPropForm.ShowModal();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;}</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSimulationSettingsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;{</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a> simulSettingsForm(<span class="keyword">this</span>, workspace-&gt;GetProperties());</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; simulSettingsForm.SetInitialSize();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; simulSettingsForm.ShowModal();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; }</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_main_frame_8h.html">MainFrame.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;ArtMetro.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_workspace_8h.html">Workspace.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_file_handing_8h.html">FileHanding.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_chart_view_8h.html">ChartView.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_data_report_8h.html">DataReport.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_about_form_8h.html">AboutForm.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995"> 38</a></span>&#160;<a class="code" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame::MainFrame</a>() : <a class="code" href="class_main_frame_base.html">MainFrameBase</a>(NULL) {}</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8"> 39</a></span>&#160;<a class="code" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame::MainFrame</a>(wxWindow* parent, wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* initProperties, wxString openPath)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; : <a class="code" href="class_main_frame_base.html">MainFrameBase</a>(parent)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_locale = locale;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_generalProperties = initProperties;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; Init();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(openPath != <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; EnableCurrentProjectRibbon();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* newWorkspace = <span class="keyword">new</span> <a class="code" href="class_workspace.html">Workspace</a>(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open project&quot;</span>), this-&gt;GetStatusBar());</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(newWorkspace);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(fileHandling.OpenProject(openPath)) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; newWorkspace-&gt;SetSavedPath(openPath);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_workspaceList.push_back(newWorkspace);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_auiNotebook-&gt;AddPage(newWorkspace, newWorkspace-&gt;GetName(), <span class="keyword">true</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_auiNotebook-&gt;Layout();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; newWorkspace-&gt;Redraw();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; newWorkspace-&gt;SetJustOpened(<span class="keyword">true</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_projectNumber++;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11"> 69</a></span>&#160;<a class="code" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">MainFrame::~MainFrame</a>()</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// if(m_artMetro) delete m_artMetro;</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_addElementsMenu) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_addElementsMenu-&gt;Disconnect(wxEVT_COMMAND_MENU_SELECTED, wxCommandEventHandler(MainFrame::OnAddElementsClick),</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">delete</span> m_addElementsMenu;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(m_locale) <span class="keyword">delete</span> m_locale;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">if</span>(m_generalProperties) <span class="keyword">delete</span> m_generalProperties;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> MainFrame::Init()</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; this-&gt;SetSize(800, 600);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; CreateAddElementsMenu();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; EnableCurrentProjectRibbon(<span class="keyword">false</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_artMetro = <span class="keyword">new</span> <a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_ribbonBar-&gt;SetArtProvider(m_artMetro);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_ribbonBar-&gt;Realize();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; this-&gt;Layout();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keywordtype">void</span> MainFrame::EnableCurrentProjectRibbon(<span class="keywordtype">bool</span> enable)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ADDELEMENT, enable);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_CHARTS, enable);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_CLOSE, enable);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_COPY, enable);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_DATAREPORT, enable);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_DELETE, enable);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_DISABLESOL, enable);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_DRAG, enable);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_ENABLESOL, enable);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_FAULT, enable);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_FIT, enable);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_MOVE, enable);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_PASTE, enable);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_POWERFLOW, enable);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_REDO, enable);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_ribbonButtonBarContinuous-&gt;EnableButton(ID_RIBBON_RESETVOLT, enable);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_RUNSTAB, enable);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_SAVE, enable);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_ribbonButtonBarCProject-&gt;EnableButton(ID_RIBBON_SAVEAS, enable);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_SCPOWER, enable);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_PROJSETTINGS, enable);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_ribbonButtonBarReports-&gt;EnableButton(ID_RIBBON_SNAPSHOT, enable);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_ribbonButtonBarSimulations-&gt;EnableButton(ID_RIBBON_SIMULSETTINGS, enable);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_ribbonButtonBarClipboard-&gt;EnableButton(ID_RIBBON_UNDO, enable);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ROTATEC, enable);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_ribbonButtonBarCircuit-&gt;EnableButton(ID_RIBBON_ROTATECC, enable);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;<span class="keywordtype">void</span> MainFrame::CreateAddElementsMenu()</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_addElementsMenu = <span class="keyword">new</span> wxMenu();</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; wxMenuItem* busElement =</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_BUS, _(<span class="stringliteral">&quot;&amp;Bus\tB&quot;</span>), _(<span class="stringliteral">&quot;Adds a bus at the circuit&quot;</span>));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="comment">// busElement-&gt;SetBitmap(wxArtProvider::GetBitmap(wxART_WARNING));</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; wxMenuItem* lineElement =</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_LINE, _(<span class="stringliteral">&quot;&amp;Line\tL&quot;</span>), _(<span class="stringliteral">&quot;Adds a power line at the circuit&quot;</span>));</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; wxMenuItem* transformerElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_TRANSFORMER, _(<span class="stringliteral">&quot;&amp;Transformer\tT&quot;</span>),</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; _(<span class="stringliteral">&quot;Adds a transformer at the circuit&quot;</span>));</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wxMenuItem* generatorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_GENERATOR, _(<span class="stringliteral">&quot;&amp;Generator\tG&quot;</span>),</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; _(<span class="stringliteral">&quot;Adds a generator at the circuit&quot;</span>));</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; wxMenuItem* indMotorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDMOTOR, _(<span class="stringliteral">&quot;&amp;Induction motor\tI&quot;</span>),</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; _(<span class="stringliteral">&quot;Adds an induction motor at the circuit&quot;</span>));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; wxMenuItem* syncCompElement =</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_SYNCCOMP, _(<span class="stringliteral">&quot;&amp;Synchronous compensator \tK&quot;</span>),</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; _(<span class="stringliteral">&quot;Adds an induction motor at the circuit&quot;</span>));</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; wxMenuItem* loadElement =</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_LOAD, _(<span class="stringliteral">&quot;&amp;Load\tShift-L&quot;</span>), _(<span class="stringliteral">&quot;Adds a load at the circuit&quot;</span>));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; wxMenuItem* capacitorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_CAPACITOR, _(<span class="stringliteral">&quot;&amp;Capacitor\tShift-C&quot;</span>),</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; _(<span class="stringliteral">&quot;Adds a shunt capacitor at the circuit&quot;</span>));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; wxMenuItem* inductorElement = <span class="keyword">new</span> wxMenuItem(m_addElementsMenu, ID_ADDMENU_INDUCTOR, _(<span class="stringliteral">&quot;&amp;Inductor\tShift-I&quot;</span>),</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; _(<span class="stringliteral">&quot;Adds a shunt inductor at the circuit&quot;</span>));</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_addElementsMenu-&gt;Append(busElement);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_addElementsMenu-&gt;Append(lineElement);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_addElementsMenu-&gt;Append(transformerElement);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_addElementsMenu-&gt;Append(generatorElement);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_addElementsMenu-&gt;Append(indMotorElement);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_addElementsMenu-&gt;Append(syncCompElement);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_addElementsMenu-&gt;Append(loadElement);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_addElementsMenu-&gt;Append(capacitorElement);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_addElementsMenu-&gt;Append(inductorElement);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_addElementsMenu-&gt;Bind(wxEVT_COMMAND_MENU_SELECTED, &amp;MainFrame::OnAddElementsClick, <span class="keyword">this</span>);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keywordtype">void</span> MainFrame::OnNewClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; EnableCurrentProjectRibbon();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* newWorkspace =</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keyword">new</span> <a class="code" href="class_workspace.html">Workspace</a>(<span class="keyword">this</span>, wxString::Format(_(<span class="stringliteral">&quot;New project %d&quot;</span>), m_projectNumber), this-&gt;GetStatusBar());</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_workspaceList.push_back(newWorkspace);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_auiNotebook-&gt;AddPage(newWorkspace, newWorkspace-&gt;GetName(), <span class="keyword">true</span>);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; newWorkspace-&gt;Redraw();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_projectNumber++;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;}</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAboutClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;{</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <a class="code" href="class_about_form.html">AboutForm</a> about(<span class="keyword">this</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; about.ShowModal();</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;}</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAddElementDropdown(wxRibbonButtonBarEvent&amp; event) { <span class="keyword">event</span>.PopupMenu(m_addElementsMenu); }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keywordtype">void</span> MainFrame::OnChartsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; std::vector&lt;ElementPlotData&gt; plotDataList;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetElementList();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_power_element.html">PowerElement</a>* powerElement = dynamic_cast&lt;PowerElement*&gt;(*it)) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> plotData;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">if</span>(powerElement-&gt;GetPlotData(plotData)) plotDataList.push_back(plotData);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(workspace, plotDataList, workspace-&gt;GetStabilityTimeVector());</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; }</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;}</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;<span class="keywordtype">void</span> MainFrame::OnCloseClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keywordtype">void</span> MainFrame::OnCopyClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDataReportClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;{</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <a class="code" href="class_data_report.html">DataReport</a>* dataReport = <span class="keyword">new</span> <a class="code" href="class_data_report.html">DataReport</a>(workspace, workspace);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; dataReport-&gt;Show();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDeleteClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; workspace-&gt;DeleteSelectedElements();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDisableSolutionClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;{</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; workspace-&gt;SetContinuousCalculationActive(<span class="keyword">false</span>);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="keywordtype">void</span> MainFrame::OnDragClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;<span class="keywordtype">void</span> MainFrame::OnEnableSolutionClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;{</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; workspace-&gt;SetContinuousCalculationActive(<span class="keyword">true</span>);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; workspace-&gt;RunStaticStudies();</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;}</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;<span class="keywordtype">void</span> MainFrame::OnExpImpClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;<span class="keywordtype">void</span> MainFrame::OnFaultClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;{</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_workspace.html">Workspace</a>* workspace = dynamic_cast&lt;Workspace*&gt;(m_auiNotebook-&gt;GetCurrentPage())) {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; workspace-&gt;RunFault();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;}</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;<span class="keywordtype">void</span> MainFrame::OnFitClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;{</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; workspace-&gt;Fit();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;<span class="keywordtype">void</span> MainFrame::OnMoveClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;{</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetAllElements();</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="comment">// Calculate the average position of selected elements.</span></div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; wxPoint2DDouble averagePos(0, 0);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">int</span> numSelElements = 0;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; averagePos += element-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; numSelElements++;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; averagePos = wxPoint2DDouble(averagePos.m_x / <span class="keywordtype">double</span>(numSelElements), averagePos.m_y / <span class="keywordtype">double</span>(numSelElements));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// Set the move position to the average of selected elements.</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(averagePos);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; workspace-&gt;SetWorkspaceMode(Workspace::MODE_MOVE_ELEMENT);</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;<span class="keywordtype">void</span> MainFrame::OnOpenClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;{</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; wxFileDialog openFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; wxFD_OPEN | wxFD_FILE_MUST_EXIST);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span>(openFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; wxFileName fileName(openFileDialog.GetPath());</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; EnableCurrentProjectRibbon();</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* newWorkspace = <span class="keyword">new</span> <a class="code" href="class_workspace.html">Workspace</a>(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Open project&quot;</span>), this-&gt;GetStatusBar());</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(newWorkspace);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">if</span>(fileHandling.OpenProject(fileName)) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; newWorkspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; m_workspaceList.push_back(newWorkspace);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_DISABLESOL, <span class="keyword">true</span>);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; m_ribbonButtonBarContinuous-&gt;ToggleButton(ID_RIBBON_ENABLESOL, <span class="keyword">false</span>);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_auiNotebook-&gt;AddPage(newWorkspace, newWorkspace-&gt;GetName(), <span class="keyword">true</span>);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; m_auiNotebook-&gt;Layout();</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; newWorkspace-&gt;Redraw();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; newWorkspace-&gt;SetJustOpened(<span class="keyword">true</span>);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; m_projectNumber++;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to open the selected file.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keyword">delete</span> newWorkspace;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;}</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPSPGuideClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPasteClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;<span class="keywordtype">void</span> MainFrame::OnPowerFlowClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;{</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; workspace-&gt;RunPowerFlow();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;}</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRedoClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keywordtype">void</span> MainFrame::OnResetVoltagesClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRunStabilityClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; workspace-&gt;RunStability();</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;}</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSCPowerClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;{</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; workspace-&gt;RunSCPower();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSaveAsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(workspace);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; fileHandling.SaveProject(saveFileDialog.GetPath());</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; workspace-&gt;SetName(fileName.GetName());</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; m_auiNotebook-&gt;SetPageText(m_auiNotebook-&gt;GetPageIndex(workspace), workspace-&gt;GetName());</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; workspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160;}</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSaveClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160;{</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="class_file_handing.html">FileHanding</a> fileHandling(workspace);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">if</span>(workspace-&gt;GetSavedPath().IsOk()) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; fileHandling.SaveProject(workspace-&gt;GetSavedPath());</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; wxFileDialog saveFileDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Save PSP file&quot;</span>), <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;&quot;</span>, <span class="stringliteral">&quot;PSP files (*.psp)|*.psp&quot;</span>,</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; wxFD_SAVE | wxFD_OVERWRITE_PROMPT);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(saveFileDialog.ShowModal() == wxID_CANCEL) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; fileHandling.SaveProject(saveFileDialog.GetPath());</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; wxFileName fileName(saveFileDialog.GetPath());</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; workspace-&gt;SetName(fileName.GetName());</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; m_auiNotebook-&gt;SetPageText(m_auiNotebook-&gt;GetPageIndex(workspace), workspace-&gt;GetName());</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; workspace-&gt;SetSavedPath(fileName);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160;}</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSnapshotClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;<span class="keywordtype">void</span> MainFrame::OnUndoClick(wxRibbonButtonBarEvent&amp; event) {}</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;<span class="keywordtype">void</span> MainFrame::OnAddElementsClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;{</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(workspace-&gt;GetWorkspaceMode() != Workspace::MODE_INSERT) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keyword">auto</span> elementList = workspace-&gt;GetElementList();</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; wxString statusBarText = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordtype">bool</span> newElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160;</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">switch</span>(event.GetId()) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_BUS: {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(wxPoint2DDouble(0, 0),</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Bus %d&quot;</span>), workspace-&gt;GetElementNumber(ID_BUS)));</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; workspace-&gt;IncrementElementNumber(ID_BUS);</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; elementList.push_back(newBus);</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Bus: Click to insert, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_LINE: {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <a class="code" href="class_line.html">Line</a>* newLine = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>(wxString::Format(_(<span class="stringliteral">&quot;Line %d&quot;</span>), workspace-&gt;GetElementNumber(ID_LINE)));</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; elementList.push_back(newLine);</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; workspace-&gt;IncrementElementNumber(ID_LINE);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Line: Click on two buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_TRANSFORMER: {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* newTransformer = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>(</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Transformer %d&quot;</span>), workspace-&gt;GetElementNumber(ID_TRANSFORMER)));</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; workspace-&gt;IncrementElementNumber(ID_TRANSFORMER);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; elementList.push_back(newTransformer);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Transformer: Click on two buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_GENERATOR: {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* newGenerator = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>(</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Generator %d&quot;</span>), workspace-&gt;GetElementNumber(ID_SYNCGENERATOR)));</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; workspace-&gt;IncrementElementNumber(ID_SYNCGENERATOR);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; elementList.push_back(newGenerator);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Generator: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_LOAD: {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="class_load.html">Load</a>* newLoad = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>(wxString::Format(_(<span class="stringliteral">&quot;Load %d&quot;</span>), workspace-&gt;GetElementNumber(ID_LOAD)));</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; workspace-&gt;IncrementElementNumber(ID_LOAD);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; elementList.push_back(newLoad);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Load: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_CAPACITOR: {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* newCapacitor =</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>(wxString::Format(_(<span class="stringliteral">&quot;Capacitor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_CAPACITOR)));</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; workspace-&gt;IncrementElementNumber(ID_CAPACITOR);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; elementList.push_back(newCapacitor);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Capacitor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_INDUCTOR: {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* newInductor =</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>(wxString::Format(_(<span class="stringliteral">&quot;Inductor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_INDUCTOR)));</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; workspace-&gt;IncrementElementNumber(ID_INDUCTOR);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; elementList.push_back(newInductor);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Inductor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_INDMOTOR: {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* newIndMotor = <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>(</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Induction motor %d&quot;</span>), workspace-&gt;GetElementNumber(ID_INDMOTOR)));</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; workspace-&gt;IncrementElementNumber(ID_INDMOTOR);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; elementList.push_back(newIndMotor);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Induction Motor: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> ID_ADDMENU_SYNCCOMP: {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* newSyncCondenser = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>(</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Synchronous condenser %d&quot;</span>), workspace-&gt;GetElementNumber(ID_SYNCMOTOR)));</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; workspace-&gt;IncrementElementNumber(ID_SYNCMOTOR);</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; elementList.push_back(newSyncCondenser);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; statusBarText = _(<span class="stringliteral">&quot;Insert Synchronous Condenser: Click on a buses, ESC to cancel.&quot;</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; newElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; }</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">if</span>(newElement) {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; workspace-&gt;SetElementList(elementList);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; workspace-&gt;SetWorkspaceMode(Workspace::MODE_INSERT);</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; workspace-&gt;SetStatusBarText(statusBarText);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; workspace-&gt;Redraw();</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160;}</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;<span class="keywordtype">void</span> MainFrame::NotebookPageClosed(wxAuiNotebookEvent&amp; event)</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;{</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">if</span>(m_auiNotebook-&gt;GetPageCount() == 0) EnableCurrentProjectRibbon(<span class="keyword">false</span>);</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;}</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;<span class="keywordtype">void</span> MainFrame::NotebookPageClosing(wxAuiNotebookEvent&amp; event)</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160;{</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keyword">auto</span> it = m_workspaceList.begin();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">while</span>(it != m_workspaceList.end()) {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span>(*it == m_auiNotebook-&gt;GetCurrentPage()) {</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; m_workspaceList.erase(it);</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; }</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; it++;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;}</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRotClockClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;{</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; workspace-&gt;RotateSelectedElements();</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; }</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;}</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;<span class="keywordtype">void</span> MainFrame::OnRotCounterClockClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;{</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; workspace-&gt;RotateSelectedElements(<span class="keyword">false</span>);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; }</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160;}</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;<span class="keywordtype">void</span> MainFrame::OnGeneralSettingsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160;{</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a> genPropForm(<span class="keyword">this</span>, m_generalProperties);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; genPropForm.SetInitialSize();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; genPropForm.ShowModal();</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;}</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;<span class="keywordtype">void</span> MainFrame::OnSimulationSettingsClick(wxRibbonButtonBarEvent&amp; event)</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;{</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>* workspace = <span class="keyword">static_cast&lt;</span><a class="code" href="class_workspace.html">Workspace</a>*<span class="keyword">&gt;</span>(m_auiNotebook-&gt;GetCurrentPage());</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>(workspace) {</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a> simulSettingsForm(<span class="keyword">this</span>, workspace-&gt;GetProperties());</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; simulSettingsForm.SetInitialSize();</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; simulSettingsForm.ShowModal();</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; }</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
<div class="ttc" id="class_main_frame_base_html"><div class="ttname"><a href="class_main_frame_base.html">MainFrameBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_base_8h_source.html#l00041">MainFrameBase.h:41</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00019">FileHanding.h:19</a></div></div>
-<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00011">GeneralPropertiesForm.h:11</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_workspace_8h_html"><div class="ttname"><a href="_workspace_8h.html">Workspace.h</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="class_main_frame_html_a0cfd88ece4836e0ea5430bd55370bf11"><div class="ttname"><a href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">MainFrame::~MainFrame</a></div><div class="ttdeci">~MainFrame()</div><div class="ttdoc">Default destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8cpp_source.html#l00069">MainFrame.cpp:69</a></div></div>
+<div class="ttc" id="_main_frame_8h_html"><div class="ttname"><a href="_main_frame_8h.html">MainFrame.h</a></div></div>
+<div class="ttc" id="_data_report_8h_html"><div class="ttname"><a href="_data_report_8h.html">DataReport.h</a></div></div>
+<div class="ttc" id="_simulations_settings_form_8h_html"><div class="ttname"><a href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a></div></div>
+<div class="ttc" id="class_main_frame_html_a667b44053cae174a361cfd21124ef995"><div class="ttname"><a href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame::MainFrame</a></div><div class="ttdeci">MainFrame()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8cpp_source.html#l00038">MainFrame.cpp:38</a></div></div>
+<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdoc">Save and opens the projects created on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00043">FileHanding.h:43</a></div></div>
+<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdoc">Form to edit the software&amp;#39;s general data. </div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00035">GeneralPropertiesForm.h:35</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="_chart_view_8h_html"><div class="ttname"><a href="_chart_view_8h.html">ChartView.h</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
<div class="ttc" id="classwx_ribbon_metro_art_provider_html"><div class="ttname"><a href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a></div><div class="ttdef"><b>Definition:</b> <a href="_art_metro_8h_source.html#l00028">ArtMetro.h:28</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00008">SimulationsSettingsForm.h:8</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00189">Element.h:189</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00009">DataReport.h:9</a></div></div>
-<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00101">Element.cpp:101</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00007">AboutForm.h:7</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="_file_handing_8h_html"><div class="ttname"><a href="_file_handing_8h.html">FileHanding.h</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="_about_form_8h_html"><div class="ttname"><a href="_about_form_8h.html">AboutForm.h</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdoc">Form to edit the simulation data. </div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00032">SimulationsSettingsForm.h:32</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00202">Element.h:202</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="_general_properties_form_8h_html"><div class="ttname"><a href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdoc">Form that shows the results of power flow and fault calculations. </div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00033">DataReport.h:33</a></div></div>
+<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00117">Element.cpp:117</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdoc">Form to show some informations. </div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00032">AboutForm.h:32</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_main_frame_8h.html b/docs/doxygen/html/_main_frame_8h.html
new file mode 100644
index 0000000..0239390
--- /dev/null
+++ b/docs/doxygen/html/_main_frame_8h.html
@@ -0,0 +1,137 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/MainFrame.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_main_frame_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">MainFrame.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;wx/menu.h&gt;</code><br />
+<code>#include &lt;wx/msgdlg.h&gt;</code><br />
+<code>#include &lt;wx/filedlg.h&gt;</code><br />
+<code>#include &quot;MainFrameBase.h&quot;</code><br />
+</div>
+<p><a href="_main_frame_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_frame.html">MainFrame</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main frame of the program. This class manage the ribbon menu and the notebook behavior. <a href="class_main_frame.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memItemLeft" align="right" valign="top"><a id="adf764cbdea00d65edcd07bb9953ad2b7"></a>enum &#160;</td><td class="memItemRight" valign="bottom">{ <br />
+&#160;&#160;<b>ID_ADDMENU_BUS</b> = 20000,
+<b>ID_ADDMENU_LINE</b>,
+<b>ID_ADDMENU_TRANSFORMER</b>,
+<b>ID_ADDMENU_GENERATOR</b>,
+<br />
+&#160;&#160;<b>ID_ADDMENU_LOAD</b>,
+<b>ID_ADDMENU_CAPACITOR</b>,
+<b>ID_ADDMENU_INDUCTOR</b>,
+<b>ID_ADDMENU_INDMOTOR</b>,
+<br />
+&#160;&#160;<b>ID_ADDMENU_SYNCCOMP</b>
+<br />
+ }</td></tr>
+<tr class="separator:adf764cbdea00d65edcd07bb9953ad2b7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_main_frame_8h.html">MainFrame.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_main_frame_8h.js b/docs/doxygen/html/_main_frame_8h.js
new file mode 100644
index 0000000..f2a8e51
--- /dev/null
+++ b/docs/doxygen/html/_main_frame_8h.js
@@ -0,0 +1,13 @@
+var _main_frame_8h =
+[
+ [ "MainFrame", "class_main_frame.html", "class_main_frame" ],
+ [ "ID_ADDMENU_BUS", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a972a4490c2c106d50fad31bf61c954ee", null ],
+ [ "ID_ADDMENU_LINE", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a8f622d047e7be05ca22e68cf3c495891", null ],
+ [ "ID_ADDMENU_TRANSFORMER", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ac723eda89da3d08df66556102f04fb3f", null ],
+ [ "ID_ADDMENU_GENERATOR", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a78ef6f7d5925a2d3f66fb4b985cde4c8", null ],
+ [ "ID_ADDMENU_LOAD", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a0448f71ade0850cce41f666113d61646", null ],
+ [ "ID_ADDMENU_CAPACITOR", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a19b41804a810ff58604d9a2e98a12d9b", null ],
+ [ "ID_ADDMENU_INDUCTOR", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ae8447bb338d69f233187fa7ecddb269b", null ],
+ [ "ID_ADDMENU_INDMOTOR", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a88478f64002d3686cd141ab42431c654", null ],
+ [ "ID_ADDMENU_SYNCCOMP", "_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a713348ad9d91573d5729b0a8b8e66e04", null ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_main_frame_8h_source.html b/docs/doxygen/html/_main_frame_8h_source.html
index 18f8eb9..3ac55b9 100644
--- a/docs/doxygen/html/_main_frame_8h_source.html
+++ b/docs/doxygen/html/_main_frame_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,25 @@ $(document).ready(function(){initNavTree('_main_frame_8h_source.html','');});
<div class="title">MainFrame.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef MAINFRAME_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define MAINFRAME_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/menu.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/filedlg.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;MainFrameBase.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">class </span><a class="code" href="class_main_frame_base.html">MainFrameBase</a>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">class </span><a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">class </span><a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">class </span><a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">class </span><a class="code" href="class_data_report.html">DataReport</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="keyword">class </span><a class="code" href="class_about_form.html">AboutForm</a>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; ID_ADDMENU_BUS = 20000,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; ID_ADDMENU_LINE,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; ID_ADDMENU_TRANSFORMER,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; ID_ADDMENU_GENERATOR,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; ID_ADDMENU_LOAD,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; ID_ADDMENU_CAPACITOR,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; ID_ADDMENU_INDUCTOR,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; ID_ADDMENU_INDMOTOR,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; ID_ADDMENU_SYNCCOMP</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;};</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_main_frame.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_main_frame.html">MainFrame</a> : <span class="keyword">public</span> <a class="code" href="class_main_frame_base.html">MainFrameBase</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_main_frame.html">MainFrame</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_main_frame.html">MainFrame</a>(wxWindow* parent, wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* initProperties);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; ~<a class="code" href="class_main_frame.html">MainFrame</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnGeneralSettingsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSimulationSettingsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRotClockClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRotCounterClockClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> NotebookPageClosed(wxAuiNotebookEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> NotebookPageClosing(wxAuiNotebookEvent&amp; event);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnAboutClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnAddElementDropdown(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnChartsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCloseClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCopyClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDataReportClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDeleteClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDisableSolutionClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDragClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnEnableSolutionClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExitClick(wxRibbonButtonBarEvent&amp; event) { this-&gt;Close(); };</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExpImpClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFitClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMoveClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOpenClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPSPGuideClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPasteClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPowerFlowClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRedoClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnResetVoltagesClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRunStabilityClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSCPowerClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSaveAsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSaveClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSnapshotClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUndoClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNewClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; std::vector&lt;Workspace*&gt; m_workspaceList;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">int</span> m_projectNumber = 1;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>* m_artMetro = NULL;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; wxMenu* m_addElementsMenu = NULL;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxLocale* m_locale = NULL;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_generalProperties = NULL;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">void</span> EnableCurrentProjectRibbon(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">void</span> CreateAddElementsMenu();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">void</span> OnAddElementsClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;};</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="preprocessor">#endif // MAINFRAME_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
+<a href="_main_frame_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef MAINFRAME_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define MAINFRAME_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/menu.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/filedlg.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;MainFrameBase.h&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_main_frame_base.html">MainFrameBase</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_file_handing.html">FileHanding</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_general_properties_form.html">GeneralPropertiesForm</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">class </span><a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_data_report.html">DataReport</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span><a class="code" href="class_about_form.html">AboutForm</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">enum</span> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; ID_ADDMENU_BUS = 20000,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; ID_ADDMENU_LINE,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; ID_ADDMENU_TRANSFORMER,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; ID_ADDMENU_GENERATOR,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ID_ADDMENU_LOAD,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ID_ADDMENU_CAPACITOR,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ID_ADDMENU_INDUCTOR,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ID_ADDMENU_INDMOTOR,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; ID_ADDMENU_SYNCCOMP</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_main_frame.html"> 57</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_main_frame.html">MainFrame</a> : <span class="keyword">public</span> <a class="code" href="class_main_frame_base.html">MainFrameBase</a></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a>();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <a class="code" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a>(wxWindow* parent, wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* initProperties, wxString openPath = <span class="stringliteral">&quot;&quot;</span>);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">~MainFrame</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnGeneralSettingsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSimulationSettingsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRotClockClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRotCounterClockClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> NotebookPageClosed(wxAuiNotebookEvent&amp; event);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> NotebookPageClosing(wxAuiNotebookEvent&amp; event);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnAboutClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnAddElementDropdown(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnChartsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCloseClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCopyClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDataReportClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDeleteClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDisableSolutionClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDragClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnEnableSolutionClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExitClick(wxRibbonButtonBarEvent&amp; event) { this-&gt;Close(); };</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnExpImpClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFaultClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFitClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMoveClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOpenClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPSPGuideClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPasteClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPowerFlowClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRedoClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnResetVoltagesClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRunStabilityClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSCPowerClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSaveAsClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSaveClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSnapshotClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUndoClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNewClick(wxRibbonButtonBarEvent&amp; event);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; std::vector&lt;Workspace*&gt; m_workspaceList;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">int</span> m_projectNumber = 1;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>* m_artMetro = NULL;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; wxMenu* m_addElementsMenu = NULL;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; wxLocale* m_locale = NULL;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_generalProperties = NULL;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">void</span> EnableCurrentProjectRibbon(<span class="keywordtype">bool</span> enable = <span class="keyword">true</span>);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">void</span> CreateAddElementsMenu();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">void</span> OnAddElementsClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;};</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="preprocessor">#endif // MAINFRAME_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
<div class="ttc" id="class_main_frame_base_html"><div class="ttname"><a href="class_main_frame_base.html">MainFrameBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_base_8h_source.html#l00041">MainFrameBase.h:41</a></div></div>
-<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00019">FileHanding.h:19</a></div></div>
-<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00011">GeneralPropertiesForm.h:11</a></div></div>
-<div class="ttc" id="class_main_frame_html"><div class="ttname"><a href="class_main_frame.html">MainFrame</a></div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8h_source.html#l00033">MainFrame.h:33</a></div></div>
+<div class="ttc" id="class_main_frame_html_a0cfd88ece4836e0ea5430bd55370bf11"><div class="ttname"><a href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">MainFrame::~MainFrame</a></div><div class="ttdeci">~MainFrame()</div><div class="ttdoc">Default destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8cpp_source.html#l00069">MainFrame.cpp:69</a></div></div>
+<div class="ttc" id="class_main_frame_html_a667b44053cae174a361cfd21124ef995"><div class="ttname"><a href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame::MainFrame</a></div><div class="ttdeci">MainFrame()</div><div class="ttdoc">Default constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8cpp_source.html#l00038">MainFrame.cpp:38</a></div></div>
+<div class="ttc" id="class_file_handing_html"><div class="ttname"><a href="class_file_handing.html">FileHanding</a></div><div class="ttdoc">Save and opens the projects created on disk. </div><div class="ttdef"><b>Definition:</b> <a href="_file_handing_8h_source.html#l00043">FileHanding.h:43</a></div></div>
+<div class="ttc" id="class_general_properties_form_html"><div class="ttname"><a href="class_general_properties_form.html">GeneralPropertiesForm</a></div><div class="ttdoc">Form to edit the software&amp;#39;s general data. </div><div class="ttdef"><b>Definition:</b> <a href="_general_properties_form_8h_source.html#l00035">GeneralPropertiesForm.h:35</a></div></div>
+<div class="ttc" id="class_main_frame_html"><div class="ttname"><a href="class_main_frame.html">MainFrame</a></div><div class="ttdoc">Main frame of the program. This class manage the ribbon menu and the notebook behavior. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8h_source.html#l00057">MainFrame.h:57</a></div></div>
<div class="ttc" id="classwx_ribbon_metro_art_provider_html"><div class="ttname"><a href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a></div><div class="ttdef"><b>Definition:</b> <a href="_art_metro_8h_source.html#l00028">ArtMetro.h:28</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00008">SimulationsSettingsForm.h:8</a></div></div>
-<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00009">DataReport.h:9</a></div></div>
-<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00007">AboutForm.h:7</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdoc">Form to edit the simulation data. </div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00032">SimulationsSettingsForm.h:32</a></div></div>
+<div class="ttc" id="class_data_report_html"><div class="ttname"><a href="class_data_report.html">DataReport</a></div><div class="ttdoc">Form that shows the results of power flow and fault calculations. </div><div class="ttdef"><b>Definition:</b> <a href="_data_report_8h_source.html#l00033">DataReport.h:33</a></div></div>
+<div class="ttc" id="class_about_form_html"><div class="ttname"><a href="class_about_form.html">AboutForm</a></div><div class="ttdoc">Form to show some informations. </div><div class="ttdef"><b>Definition:</b> <a href="_about_form_8h_source.html#l00032">AboutForm.h:32</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>MainFrame.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_main_frame_8h.html">MainFrame.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_main_frame_base_8cpp_source.html b/docs/doxygen/html/_main_frame_base_8cpp_source.html
index 1f18727..70a4db0 100644
--- a/docs/doxygen/html/_main_frame_base_8cpp_source.html
+++ b/docs/doxygen/html/_main_frame_base_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_main_frame_base_8h_source.html b/docs/doxygen/html/_main_frame_base_8h_source.html
index 69cf43c..703d9fc 100644
--- a/docs/doxygen/html/_main_frame_base_8h_source.html
+++ b/docs/doxygen/html/_main_frame_base_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_main_frame_bitmaps_8cpp_source.html b/docs/doxygen/html/_main_frame_bitmaps_8cpp_source.html
index d9903d8..61747d5 100644
--- a/docs/doxygen/html/_main_frame_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_main_frame_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_multiplier_8cpp_source.html b/docs/doxygen/html/_multiplier_8cpp_source.html
index f6f18f7..ca5ebdd 100644
--- a/docs/doxygen/html/_multiplier_8cpp_source.html
+++ b/docs/doxygen/html/_multiplier_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,14 +88,16 @@ $(document).ready(function(){initNavTree('_multiplier_8cpp_source.html','');});
<div class="title">Multiplier.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Multiplier.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Multiplier::Multiplier(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, -9), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; nodeIn1-&gt;StartMove(m_position);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn2 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 9), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nodeIn2-&gt;StartMove(m_position);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_nodeList.push_back(nodeIn1);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_nodeList.push_back(nodeIn2);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;}</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;Multiplier::~Multiplier() {}</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3"> 20</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="comment">// Plot x.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; std::vector&lt;wxPoint2DDouble&gt; xSymbol;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(-5, -5));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(5, 5));</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(-5, 5));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(5, -5));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DrawLine(xSymbol, GL_LINES);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DrawNodes();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1"> 47</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; UpdatePoints();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> Multiplier::UpdatePoints()</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, -9));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 9));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(9, -18));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-9, -18));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 9));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, -9));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-9, 18));</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(9, 18));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="keywordtype">bool</span> Multiplier::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;{</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::vector&lt;double&gt; inputVector;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = m_nodeList.begin(), itNEnd = m_nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != Node::NODE_OUT) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(!node-&gt;IsConnected()) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; inputVector.push_back(1.0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = m_childList.begin(), itCEnd = m_childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(childNode == node) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; inputVector.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_output = 1.0;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; inputVector.size(); ++i) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_output *= inputVector[i];</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;}</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"><a class="line" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77"> 119</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a>()</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* copy = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(m_elementID);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;}</div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_multiplier_html_ae01f155ed56925cb87d71a860882a3a1"><div class="ttname"><a href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00047">Multiplier.cpp:47</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_multiplier_html_ae854fd981a98aca93b286081cc9c19f3"><div class="ttname"><a href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00020">Multiplier.cpp:20</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_multiplier_html_ab487232a96ed3c3f3a7c3628ddaa4c77"><div class="ttname"><a href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00119">Multiplier.cpp:119</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_multiplier_8h.html">Multiplier.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Multiplier::Multiplier(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, -9), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; nodeIn1-&gt;StartMove(m_position);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn2 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 9), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; nodeIn2-&gt;StartMove(m_position);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_nodeList.push_back(nodeIn1);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_nodeList.push_back(nodeIn2);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;Multiplier::~Multiplier() {}</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3"> 37</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// Plot x.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::vector&lt;wxPoint2DDouble&gt; xSymbol;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(-5, -5));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(5, 5));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(-5, 5));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; xSymbol.push_back(m_position + wxPoint2DDouble(5, -5));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; DrawLine(xSymbol, GL_LINES);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; DrawNodes();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1"> 64</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; UpdatePoints();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;}</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> Multiplier::UpdatePoints()</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, -9));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 9));</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(9, -18));</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-9, -18));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 9));</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, -9));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-9, 18));</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(9, 18));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_nodeList[2]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;<span class="keywordtype">bool</span> Multiplier::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;{</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::vector&lt;double&gt; inputVector;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = m_nodeList.begin(), itNEnd = m_nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != Node::NODE_OUT) {</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(!node-&gt;IsConnected()) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; inputVector.push_back(1.0);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = m_childList.begin(), itCEnd = m_childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(childNode == node) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; inputVector.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_output = 1.0;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; inputVector.size(); ++i) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_output *= inputVector[i];</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"><a class="line" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77"> 136</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a>()</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>* copy = <span class="keyword">new</span> <a class="code" href="class_multiplier.html">Multiplier</a>(m_elementID);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;}</div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_multiplier_html_ae01f155ed56925cb87d71a860882a3a1"><div class="ttname"><a href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00064">Multiplier.cpp:64</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="_multiplier_8h_html"><div class="ttname"><a href="_multiplier_8h.html">Multiplier.h</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="class_multiplier_html_ae854fd981a98aca93b286081cc9c19f3"><div class="ttname"><a href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00037">Multiplier.cpp:37</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_multiplier_html_ab487232a96ed3c3f3a7c3628ddaa4c77"><div class="ttname"><a href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00136">Multiplier.cpp:136</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_multiplier_8h.html b/docs/doxygen/html/_multiplier_8h.html
new file mode 100644
index 0000000..cddba01
--- /dev/null
+++ b/docs/doxygen/html/_multiplier_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Multiplier.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_multiplier_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Multiplier.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_multiplier_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_multiplier.html">Multiplier</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiplies two inputs. <a href="class_multiplier.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_multiplier_8h.html">Multiplier.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_multiplier_8h_source.html b/docs/doxygen/html/_multiplier_8h_source.html
index 3077bd1..befa79b 100644
--- a/docs/doxygen/html/_multiplier_8h_source.html
+++ b/docs/doxygen/html/_multiplier_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,23 @@ $(document).ready(function(){initNavTree('_multiplier_8h_source.html','');});
<div class="title">Multiplier.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef MULTIPLIER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define MULTIPLIER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_multiplier.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_multiplier.html">Multiplier</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca"> 16</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d"> 17</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">GetCopy</a>();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;};</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif // MULTIPLIER_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00008">Multiplier.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_multiplier_html_ae01f155ed56925cb87d71a860882a3a1"><div class="ttname"><a href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00047">Multiplier.cpp:47</a></div></div>
-<div class="ttc" id="class_multiplier_html_a4fa1206b47c626930db753a70e01680d"><div class="ttname"><a href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">Multiplier::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00017">Multiplier.h:17</a></div></div>
-<div class="ttc" id="class_multiplier_html_acee6216a03b550f3a9cad2bef3963a18"><div class="ttname"><a href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18">Multiplier::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00015">Multiplier.h:15</a></div></div>
-<div class="ttc" id="class_multiplier_html_ae854fd981a98aca93b286081cc9c19f3"><div class="ttname"><a href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00020">Multiplier.cpp:20</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_multiplier_html_aba53ef763812fbff891cdf0b89c7fcca"><div class="ttname"><a href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca">Multiplier::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00016">Multiplier.h:16</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_multiplier_html_ab487232a96ed3c3f3a7c3628ddaa4c77"><div class="ttname"><a href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00119">Multiplier.cpp:119</a></div></div>
+<a href="_multiplier_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef MULTIPLIER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define MULTIPLIER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_multiplier.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_multiplier.html">Multiplier</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_multiplier.html">Multiplier</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_multiplier.html">Multiplier</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca"> 40</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d"> 41</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">GetCopy</a>();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // MULTIPLIER_H</span></div><div class="ttc" id="class_multiplier_html"><div class="ttname"><a href="class_multiplier.html">Multiplier</a></div><div class="ttdoc">Multiplies two inputs. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00032">Multiplier.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_multiplier_html_ae01f155ed56925cb87d71a860882a3a1"><div class="ttname"><a href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00064">Multiplier.cpp:64</a></div></div>
+<div class="ttc" id="class_multiplier_html_a4fa1206b47c626930db753a70e01680d"><div class="ttname"><a href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">Multiplier::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00041">Multiplier.h:41</a></div></div>
+<div class="ttc" id="class_multiplier_html_acee6216a03b550f3a9cad2bef3963a18"><div class="ttname"><a href="class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18">Multiplier::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00039">Multiplier.h:39</a></div></div>
+<div class="ttc" id="class_multiplier_html_ae854fd981a98aca93b286081cc9c19f3"><div class="ttname"><a href="class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3">Multiplier::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00037">Multiplier.cpp:37</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_multiplier_html_aba53ef763812fbff891cdf0b89c7fcca"><div class="ttname"><a href="class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca">Multiplier::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8h_source.html#l00040">Multiplier.h:40</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_multiplier_html_ab487232a96ed3c3f3a7c3628ddaa4c77"><div class="ttname"><a href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_multiplier_8cpp_source.html#l00136">Multiplier.cpp:136</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Multiplier.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_multiplier_8h.html">Multiplier.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_power_element_8cpp_source.html b/docs/doxygen/html/_power_element_8cpp_source.html
index 0dd4bf7..bc7ca72 100644
--- a/docs/doxygen/html/_power_element_8cpp_source.html
+++ b/docs/doxygen/html/_power_element_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,33 +88,33 @@ $(document).ready(function(){initNavTree('_power_element_8cpp_source.html','');}
<div class="title">PowerElement.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"><a class="line" href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e"> 6</a></span>&#160;<a class="code" href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e">PowerElement::PowerElement</a>() : <a class="code" href="class_element.html">Element</a>()</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_busColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_onlineElementColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.2, 0.2, 0.2, 1.0);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_offlineElementColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.5, 0.5, 0.5, 1.0);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_closedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.4, 0.0, 1.0);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_openedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.1, 0.1, 1.0);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_powerFlowArrowColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.51, 0.0, 1.0);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_dynamicEventColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.51, 0.0, 1.0);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf"> 17</a></span>&#160;<a class="code" href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf">PowerElement::~PowerElement</a>() {}</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4"> 18</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;{</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8"> 22</a></span>&#160;wxPoint2DDouble <a class="code" href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8">PowerElement::GetSwitchPoint</a>(<a class="code" href="class_element.html">Element</a>* parent,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; wxPoint2DDouble parentPoint,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; wxPoint2DDouble secondPoint)<span class="keyword"> const</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">double</span> swLineSize = 25.0;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxPoint2DDouble swPoint = wxPoint2DDouble(parentPoint.m_x, parentPoint.m_y - swLineSize);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// Rotate the second point (to compare).</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> angle = parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; secondPoint =</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; wxPoint2DDouble(std::cos(wxDegToRad(-angle)) * (secondPoint.m_x - parentPoint.m_x) -</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; std::sin(wxDegToRad(-angle)) * (secondPoint.m_y - parentPoint.m_y) + parentPoint.m_x,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; std::sin(wxDegToRad(-angle)) * (secondPoint.m_x - parentPoint.m_x) +</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; std::cos(wxDegToRad(-angle)) * (secondPoint.m_y - parentPoint.m_y) + parentPoint.m_y);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// Rotate</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(secondPoint.m_y &gt; parentPoint.m_y) angle -= 180.0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(std::cos(wxDegToRad(angle)) * (swPoint.m_x - parentPoint.m_x) -</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::sin(wxDegToRad(angle)) * (swPoint.m_y - parentPoint.m_y) + parentPoint.m_x,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::sin(wxDegToRad(angle)) * (swPoint.m_x - parentPoint.m_x) +</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; std::cos(wxDegToRad(angle)) * (swPoint.m_y - parentPoint.m_y) + parentPoint.m_y);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d"> 46</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_switchRect.size(); i++) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(m_parentList[i]) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(m_switchRect[i].<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(position)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_power_element.html#abd2cee52270374e17951782bdb571dce"> 56</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#abd2cee52270374e17951782bdb571dce">PowerElement::UpdateSwitches</a>()</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// General method, to one switch only.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wxPoint2DDouble swCenter = wxPoint2DDouble((m_pointList[0].m_x + m_pointList[1].m_x) / 2.0,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; (m_pointList[0].m_y + m_pointList[1].m_y) / 2.0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_switchRect[0] = wxRect2DDouble(swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0, m_switchSize,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_switchSize);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="class_power_element.html#ab5799bdf1bff481670285d763572453c"> 65</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#ab5799bdf1bff481670285d763572453c">PowerElement::DrawSwitches</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); it++) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *it;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glColor4dv(m_closedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glColor4dv(m_openedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; glPushMatrix();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; glTranslated(m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x + m_switchSize / 2.0,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y + m_switchSize / 2.0, 0.0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; glRotated(parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>(), 0.0, 0.0, 1.0);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; glTranslated(-m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x - m_switchSize / 2.0,</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; -m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y - m_switchSize / 2.0, 0.0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>() + wxPoint2DDouble(m_switchSize / 2.0, m_switchSize / 2.0),</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_switchSize, m_switchSize);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glPopMatrix();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; i++;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e"> 93</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement::CalculatePowerFlowPts</a>(std::vector&lt;wxPoint2DDouble&gt; edges)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">double</span> arrowRate = 100.0; <span class="comment">// One arrow to each &quot;arrowRate&quot; distance in pixels.</span></div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(edges.size() &lt; 2) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Clear all power flow points</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_powerFlowArrow.size(); i++) m_powerFlowArrow[i].clear();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)edges.size(); i++) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxPoint2DDouble pt1 = edges[i - 1];</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; wxPoint2DDouble pt2 = edges[i];</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">double</span> angle = std::atan2(pt2.m_y - pt1.m_y, pt2.m_x - pt1.m_x);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; wxPoint2DDouble rotPt2(</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; std::cos(-angle) * (pt2.m_x - pt1.m_x) - std::sin(-angle) * (pt2.m_y - pt1.m_y) + pt1.m_x,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; std::sin(-angle) * (pt2.m_x - pt1.m_x) + std::cos(-angle) * (pt2.m_y - pt1.m_y) + pt1.m_y);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">int</span> numArrows = std::abs(pt1.m_x - rotPt2.m_x) / arrowRate;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(numArrows == 0) numArrows = 1;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numArrows; i++) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; wxPoint2DDouble arrowCenter(pt1.m_x + ((rotPt2.m_x - pt1.m_x) / <span class="keywordtype">double</span>(numArrows + 1)) * <span class="keywordtype">double</span>(i + 1),</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; pt1.m_y + ((rotPt2.m_y - pt1.m_y) / <span class="keywordtype">double</span>(numArrows + 1)) * <span class="keywordtype">double</span>(i + 1));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; std::vector&lt;wxPoint2DDouble&gt; triPts;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(5.0, 0.0));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(-5.0, 5.0));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(-5.0, -5.0));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; triPts[i] = wxPoint2DDouble(</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; std::cos(angle) * (triPts[i].m_x - pt1.m_x) - std::sin(angle) * (triPts[i].m_y - pt1.m_y) + pt1.m_x,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; std::sin(angle) * (triPts[i].m_x - pt1.m_x) + std::cos(angle) * (triPts[i].m_y - pt1.m_y) +</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; pt1.m_y);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_powerFlowArrow.push_back(triPts);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"><a class="line" href="class_power_element.html#a8d6e92147c46501f592f67accc1af866"> 137</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a8d6e92147c46501f592f67accc1af866">PowerElement::DrawPowerFlowPts</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; glColor4dv(m_powerFlowArrowColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_powerFlowArrow.size(); i++) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <a class="code" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">DrawTriangle</a>(m_powerFlowArrow[i]);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;<span class="keywordtype">double</span> PowerElement::GetValueFromUnit(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> valueUnit)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;{</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">switch</span>(valueUnit) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>:</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> value * 1e3;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">return</span> value * 1e6;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_ae425d7e4f94bf7280d7d68c577d2019e"><div class="ttname"><a href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a></div><div class="ttdeci">virtual void DrawTriangle(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_TRIANGLES) const</div><div class="ttdoc">Draw a triangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00044">Element.cpp:44</a></div></div>
-<div class="ttc" id="class_power_element_html_abd2cee52270374e17951782bdb571dce"><div class="ttname"><a href="class_power_element.html#abd2cee52270374e17951782bdb571dce">PowerElement::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00056">PowerElement.cpp:56</a></div></div>
-<div class="ttc" id="class_power_element_html_a0730506d0417089d69f7ce64b05daed4"><div class="ttname"><a href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00018">PowerElement.cpp:18</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00350">Element.cpp:350</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00053">Element.cpp:53</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00016">PowerElement.h:16</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_power_element_html_a6c656ef223d36e96b19b0a9ec2115e9e"><div class="ttname"><a href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement::CalculatePowerFlowPts</a></div><div class="ttdeci">virtual void CalculatePowerFlowPts(std::vector&lt; wxPoint2DDouble &gt; edges)</div><div class="ttdoc">Calculate the points of the power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00093">PowerElement.cpp:93</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_power_element_html_a8d6e92147c46501f592f67accc1af866"><div class="ttname"><a href="class_power_element.html#a8d6e92147c46501f592f67accc1af866">PowerElement::DrawPowerFlowPts</a></div><div class="ttdeci">virtual void DrawPowerFlowPts() const</div><div class="ttdoc">Draw power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00137">PowerElement.cpp:137</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_power_element_html_a382cdc0897802eb0a89692483fa7043e"><div class="ttname"><a href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e">PowerElement::PowerElement</a></div><div class="ttdeci">PowerElement()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00006">PowerElement.cpp:6</a></div></div>
-<div class="ttc" id="class_power_element_html_a39be7c8e3bdb96b16c26ea7f7d6e6cbf"><div class="ttname"><a href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf">PowerElement::~PowerElement</a></div><div class="ttdeci">~PowerElement()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00017">PowerElement.cpp:17</a></div></div>
-<div class="ttc" id="class_power_element_html_ab5799bdf1bff481670285d763572453c"><div class="ttname"><a href="class_power_element.html#ab5799bdf1bff481670285d763572453c">PowerElement::DrawSwitches</a></div><div class="ttdeci">virtual void DrawSwitches() const</div><div class="ttdoc">Draw switch. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00065">PowerElement.cpp:65</a></div></div>
-<div class="ttc" id="class_power_element_html_a789105cc7c170330e7daf2a0453fde6d"><div class="ttname"><a href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a></div><div class="ttdeci">virtual bool SwitchesContains(wxPoint2DDouble position) const</div><div class="ttdoc">Check if switch contains position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00046">PowerElement.cpp:46</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e"> 23</a></span>&#160;<a class="code" href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e">PowerElement::PowerElement</a>() : <a class="code" href="class_element.html">Element</a>()</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_busColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_onlineElementColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.2, 0.2, 0.2, 1.0);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_offlineElementColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.5, 0.5, 0.5, 1.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_closedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(0.0, 0.4, 0.0, 1.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_openedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.1, 0.1, 1.0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_powerFlowArrowColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.51, 0.0, 1.0);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_dynamicEventColour.<a class="code" href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">SetRGBA</a>(1.0, 0.51, 0.0, 1.0);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf"> 34</a></span>&#160;<a class="code" href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf">PowerElement::~PowerElement</a>() {}</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4"> 35</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8"> 39</a></span>&#160;wxPoint2DDouble <a class="code" href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8">PowerElement::GetSwitchPoint</a>(<a class="code" href="class_element.html">Element</a>* parent,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxPoint2DDouble parentPoint,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; wxPoint2DDouble secondPoint)<span class="keyword"> const</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">double</span> swLineSize = 25.0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxPoint2DDouble swPoint = wxPoint2DDouble(parentPoint.m_x, parentPoint.m_y - swLineSize);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// Rotate the second point (to compare).</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> angle = parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; secondPoint =</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; wxPoint2DDouble(std::cos(wxDegToRad(-angle)) * (secondPoint.m_x - parentPoint.m_x) -</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::sin(wxDegToRad(-angle)) * (secondPoint.m_y - parentPoint.m_y) + parentPoint.m_x,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; std::sin(wxDegToRad(-angle)) * (secondPoint.m_x - parentPoint.m_x) +</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::cos(wxDegToRad(-angle)) * (secondPoint.m_y - parentPoint.m_y) + parentPoint.m_y);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Rotate</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(secondPoint.m_y &gt; parentPoint.m_y) angle -= 180.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> wxPoint2DDouble(std::cos(wxDegToRad(angle)) * (swPoint.m_x - parentPoint.m_x) -</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::sin(wxDegToRad(angle)) * (swPoint.m_y - parentPoint.m_y) + parentPoint.m_x,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::sin(wxDegToRad(angle)) * (swPoint.m_x - parentPoint.m_x) +</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; std::cos(wxDegToRad(angle)) * (swPoint.m_y - parentPoint.m_y) + parentPoint.m_y);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d"> 63</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_switchRect.size(); i++) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_parentList[i]) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(m_switchRect[i].<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(position)) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;}</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"><a class="line" href="class_power_element.html#abd2cee52270374e17951782bdb571dce"> 73</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#abd2cee52270374e17951782bdb571dce">PowerElement::UpdateSwitches</a>()</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;{</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// General method, to one switch only.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; wxPoint2DDouble swCenter = wxPoint2DDouble((m_pointList[0].m_x + m_pointList[1].m_x) / 2.0,</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; (m_pointList[0].m_y + m_pointList[1].m_y) / 2.0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_switchRect[0] = wxRect2DDouble(swCenter.m_x - m_switchSize / 2.0, swCenter.m_y - m_switchSize / 2.0, m_switchSize,</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_switchSize);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="class_power_element.html#ab5799bdf1bff481670285d763572453c"> 82</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#ab5799bdf1bff481670285d763572453c">PowerElement::DrawSwitches</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">int</span> i = 0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_parentList.begin(); it != m_parentList.end(); it++) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *it;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glColor4dv(m_closedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glColor4dv(m_openedSwitchColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; glPushMatrix();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glTranslated(m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x + m_switchSize / 2.0,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y + m_switchSize / 2.0, 0.0);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; glRotated(parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>(), 0.0, 0.0, 1.0);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; glTranslated(-m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_x - m_switchSize / 2.0,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; -m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y - m_switchSize / 2.0, 0.0);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_switchRect[i].<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>() + wxPoint2DDouble(m_switchSize / 2.0, m_switchSize / 2.0),</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_switchSize, m_switchSize);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; glPopMatrix();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; i++;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e"> 110</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement::CalculatePowerFlowPts</a>(std::vector&lt;wxPoint2DDouble&gt; edges)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">double</span> arrowRate = 100.0; <span class="comment">// One arrow to each &quot;arrowRate&quot; distance in pixels.</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(edges.size() &lt; 2) <span class="keywordflow">return</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Clear all power flow points</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_powerFlowArrow.size(); i++) m_powerFlowArrow[i].clear();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)edges.size(); i++) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; wxPoint2DDouble pt1 = edges[i - 1];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; wxPoint2DDouble pt2 = edges[i];</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">double</span> angle = std::atan2(pt2.m_y - pt1.m_y, pt2.m_x - pt1.m_x);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; wxPoint2DDouble rotPt2(</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; std::cos(-angle) * (pt2.m_x - pt1.m_x) - std::sin(-angle) * (pt2.m_y - pt1.m_y) + pt1.m_x,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; std::sin(-angle) * (pt2.m_x - pt1.m_x) + std::cos(-angle) * (pt2.m_y - pt1.m_y) + pt1.m_y);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">int</span> numArrows = std::abs(pt1.m_x - rotPt2.m_x) / arrowRate;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(numArrows == 0) numArrows = 1;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numArrows; i++) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; wxPoint2DDouble arrowCenter(pt1.m_x + ((rotPt2.m_x - pt1.m_x) / <span class="keywordtype">double</span>(numArrows + 1)) * <span class="keywordtype">double</span>(i + 1),</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; pt1.m_y + ((rotPt2.m_y - pt1.m_y) / <span class="keywordtype">double</span>(numArrows + 1)) * <span class="keywordtype">double</span>(i + 1));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; std::vector&lt;wxPoint2DDouble&gt; triPts;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(5.0, 0.0));</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(-5.0, 5.0));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; triPts.push_back(arrowCenter + wxPoint2DDouble(-5.0, -5.0));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 3; i++) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; triPts[i] = wxPoint2DDouble(</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; std::cos(angle) * (triPts[i].m_x - pt1.m_x) - std::sin(angle) * (triPts[i].m_y - pt1.m_y) + pt1.m_x,</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::sin(angle) * (triPts[i].m_x - pt1.m_x) + std::cos(angle) * (triPts[i].m_y - pt1.m_y) +</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; pt1.m_y);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; m_powerFlowArrow.push_back(triPts);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"><a class="line" href="class_power_element.html#a8d6e92147c46501f592f67accc1af866"> 154</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a8d6e92147c46501f592f67accc1af866">PowerElement::DrawPowerFlowPts</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; glColor4dv(m_powerFlowArrowColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_powerFlowArrow.size(); i++) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">DrawTriangle</a>(m_powerFlowArrow[i]);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;}</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="keywordtype">double</span> PowerElement::GetValueFromUnit(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> valueUnit)</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;{</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">switch</span>(valueUnit) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>:</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">return</span> value * 1e3;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">return</span> value * 1e6;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; }</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> value;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_element_html_ae425d7e4f94bf7280d7d68c577d2019e"><div class="ttname"><a href="class_element.html#ae425d7e4f94bf7280d7d68c577d2019e">Element::DrawTriangle</a></div><div class="ttdeci">virtual void DrawTriangle(std::vector&lt; wxPoint2DDouble &gt; points, GLenum mode=GL_TRIANGLES) const</div><div class="ttdoc">Draw a triangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00060">Element.cpp:60</a></div></div>
+<div class="ttc" id="class_power_element_html_abd2cee52270374e17951782bdb571dce"><div class="ttname"><a href="class_power_element.html#abd2cee52270374e17951782bdb571dce">PowerElement::UpdateSwitches</a></div><div class="ttdeci">virtual void UpdateSwitches()</div><div class="ttdoc">Update the switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00073">PowerElement.cpp:73</a></div></div>
+<div class="ttc" id="class_power_element_html_a0730506d0417089d69f7ce64b05daed4"><div class="ttname"><a href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00035">PowerElement.cpp:35</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a0193e7fb5730b0e543ba826201568f94"><div class="ttname"><a href="class_open_g_l_colour.html#a0193e7fb5730b0e543ba826201568f94">OpenGLColour::SetRGBA</a></div><div class="ttdeci">void SetRGBA(GLdouble red, GLdouble green, GLdouble blue, GLdouble alpha)</div><div class="ttdoc">Set the colour in RGBA. The colour values must be between 0.0 and 1.0. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00369">Element.cpp:369</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00069">Element.cpp:69</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00033">PowerElement.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_power_element_html_a6c656ef223d36e96b19b0a9ec2115e9e"><div class="ttname"><a href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement::CalculatePowerFlowPts</a></div><div class="ttdeci">virtual void CalculatePowerFlowPts(std::vector&lt; wxPoint2DDouble &gt; edges)</div><div class="ttdoc">Calculate the points of the power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00110">PowerElement.cpp:110</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_power_element_html_a8d6e92147c46501f592f67accc1af866"><div class="ttname"><a href="class_power_element.html#a8d6e92147c46501f592f67accc1af866">PowerElement::DrawPowerFlowPts</a></div><div class="ttdeci">virtual void DrawPowerFlowPts() const</div><div class="ttdoc">Draw power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00154">PowerElement.cpp:154</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_power_element_html_a382cdc0897802eb0a89692483fa7043e"><div class="ttname"><a href="class_power_element.html#a382cdc0897802eb0a89692483fa7043e">PowerElement::PowerElement</a></div><div class="ttdeci">PowerElement()</div><div class="ttdoc">Constructor. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00023">PowerElement.cpp:23</a></div></div>
+<div class="ttc" id="class_power_element_html_a39be7c8e3bdb96b16c26ea7f7d6e6cbf"><div class="ttname"><a href="class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf">PowerElement::~PowerElement</a></div><div class="ttdeci">~PowerElement()</div><div class="ttdoc">Destructor. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00034">PowerElement.cpp:34</a></div></div>
+<div class="ttc" id="class_power_element_html_ab5799bdf1bff481670285d763572453c"><div class="ttname"><a href="class_power_element.html#ab5799bdf1bff481670285d763572453c">PowerElement::DrawSwitches</a></div><div class="ttdeci">virtual void DrawSwitches() const</div><div class="ttdoc">Draw switch. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00082">PowerElement.cpp:82</a></div></div>
+<div class="ttc" id="class_power_element_html_a789105cc7c170330e7daf2a0453fde6d"><div class="ttname"><a href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a></div><div class="ttdeci">virtual bool SwitchesContains(wxPoint2DDouble position) const</div><div class="ttdoc">Check if switch contains position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00063">PowerElement.cpp:63</a></div></div>
<div class="ttc" id="class_element_html_abf6c4949733debca55b2f56d8e9b7372"><div class="ttname"><a href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const =0</div><div class="ttdoc">Checks if the element contains a position. </div></div>
-<div class="ttc" id="class_power_element_html_aef6392c211caf557bdac287b174a1ea8"><div class="ttname"><a href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8">PowerElement::GetSwitchPoint</a></div><div class="ttdeci">virtual wxPoint2DDouble GetSwitchPoint(Element *parent, wxPoint2DDouble parentPoint, wxPoint2DDouble secondPoint) const</div><div class="ttdoc">Get the correct switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00022">PowerElement.cpp:22</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
+<div class="ttc" id="class_power_element_html_aef6392c211caf557bdac287b174a1ea8"><div class="ttname"><a href="class_power_element.html#aef6392c211caf557bdac287b174a1ea8">PowerElement::GetSwitchPoint</a></div><div class="ttdeci">virtual wxPoint2DDouble GetSwitchPoint(Element *parent, wxPoint2DDouble parentPoint, wxPoint2DDouble secondPoint) const</div><div class="ttdoc">Get the correct switch position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00039">PowerElement.cpp:39</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_power_element_8h.html b/docs/doxygen/html/_power_element_8h.html
index 9c299bf..5ad31ce 100644
--- a/docs/doxygen/html/_power_element_8h.html
+++ b/docs/doxygen/html/_power_element_8h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,21 +91,21 @@ $(document).ready(function(){initNavTree('_power_element_8h.html','');});
<div class="title">PowerElement.h File Reference</div> </div>
</div><!--header-->
<div class="contents">
-
-<p>Switching data of power elements.
-<a href="#details">More...</a></p>
<div class="textblock"><code>#include &quot;<a class="el" href="_element_8h_source.html">Element.h</a>&quot;</code><br />
-<code>#include &quot;ElementPlotData.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>&quot;</code><br />
</div>
<p><a href="_power_element_8h_source.html">Go to the source code of this file.</a></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
Classes</h2></td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_switching_data.html">SwitchingData</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switching data of power elements. <a href="struct_switching_data.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_integration_constant.html">IntegrationConstant</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Integration constants to calculate dynamic elements through trapezoidal integration method. <a href="struct_integration_constant.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_power_element.html">PowerElement</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class of power elements. <a href="class_power_element.html#details">More...</a><br /></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
@@ -163,13 +169,7 @@ Enumerations</h2></td></tr>
</td></tr>
<tr class="separator:a467d3005d31dde0ba0e52cf8e233e740"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
-<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><p>Switching data of power elements. </p>
-<p>Base class of power elements.</p>
-<p>Integration constants to calculate dynamic elements through trapezoidal integration method.</p>
-
-<p class="definition">Definition in file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
-</div><h2 class="groupheader">Enumeration Type Documentation</h2>
+<h2 class="groupheader">Enumeration Type Documentation</h2>
<a id="a398e3da742a726a8f2bacd8149220cca"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a398e3da742a726a8f2bacd8149220cca">&#9670;&nbsp;</a></span>ElectricalUnit</h2>
@@ -226,7 +226,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00011">11</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00028">28</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -252,15 +252,15 @@ Enumerations</h2></td></tr>
</td></tr>
<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"></a>FAULT_LINE_GROUND&#160;</td><td class="fielddoc"><p>Line-to-ground fault </p>
</td></tr>
-<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"></a>FAULT_LINE_A&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html">Fault</a> on phase A or phase AB </p>
+<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"></a>FAULT_LINE_A&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html" title="Calculate the fault of the system and update the elements data. ">Fault</a> on phase A or phase AB </p>
</td></tr>
-<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"></a>FAULT_LINE_B&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html">Fault</a> on phase B or phase BC </p>
+<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"></a>FAULT_LINE_B&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html" title="Calculate the fault of the system and update the elements data. ">Fault</a> on phase B or phase BC </p>
</td></tr>
-<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"></a>FAULT_LINE_C&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html">Fault</a> on phase C or phase CA </p>
+<tr><td class="fieldname"><a id="a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"></a>FAULT_LINE_C&#160;</td><td class="fielddoc"><p><a class="el" href="class_fault.html" title="Calculate the fault of the system and update the elements data. ">Fault</a> on phase C or phase CA </p>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00038">38</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00055">55</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -280,9 +280,9 @@ Enumerations</h2></td></tr>
<table class="fieldtable">
<tr><th colspan="2">Enumerator</th></tr><tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"></a>PF_NONE&#160;</td><td class="fielddoc"><p>No direction (no arrows printed) </p>
</td></tr>
-<tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"></a>PF_TO_BUS&#160;</td><td class="fielddoc"><p><a class="el" href="class_element.html">Element</a> to bus </p>
+<tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"></a>PF_TO_BUS&#160;</td><td class="fielddoc"><p><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> to bus </p>
</td></tr>
-<tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"></a>PF_TO_ELEMENT&#160;</td><td class="fielddoc"><p><a class="el" href="class_bus.html">Bus</a> to element </p>
+<tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"></a>PF_TO_ELEMENT&#160;</td><td class="fielddoc"><p><a class="el" href="class_bus.html" title="Node for power elements. All others power elements are connected through this. ">Bus</a> to element </p>
</td></tr>
<tr><td class="fieldname"><a id="a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"></a>PF_BUS1_TO_BUS2&#160;</td><td class="fielddoc"><p>First bus to secont bus (branch elements) </p>
</td></tr>
@@ -290,7 +290,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00061">61</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00078">78</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -314,7 +314,7 @@ Enumerations</h2></td></tr>
</td></tr>
</table>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00052">52</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00069">69</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/_power_element_8h_source.html b/docs/doxygen/html/_power_element_8h_source.html
index 5570e28..2dd1720 100644
--- a/docs/doxygen/html/_power_element_8h_source.html
+++ b/docs/doxygen/html/_power_element_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,62 +88,63 @@ $(document).ready(function(){initNavTree('_power_element_8h_source.html','');});
<div class="title">PowerElement.h</div> </div>
</div><!--header-->
<div class="contents">
-<a href="_power_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef POWERELEMENT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define POWERELEMENT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;ElementPlotData.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca"> 11</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> {</div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"> 12</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a> = 0, </div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"> 13</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>, </div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"> 14</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>, </div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"> 15</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>, </div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"> 16</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>, </div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"> 17</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>, </div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"> 18</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>, </div><div class="line"><a name="l00019"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"> 19</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>, </div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"> 20</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>, </div><div class="line"><a name="l00021"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"> 21</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>, </div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"> 22</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>, </div><div class="line"><a name="l00023"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"> 23</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>, </div><div class="line"><a name="l00024"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"> 24</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>, </div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"> 25</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>, </div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"> 26</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>, </div><div class="line"><a name="l00027"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"> 27</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>, </div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"> 28</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>, </div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"> 29</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>, </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"> 30</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>, </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"> 31</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a> </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;};</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb"> 38</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"> 39</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a> = 0, </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"> 40</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"> 41</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"> 42</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>, </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"> 43</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"> 44</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>, </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"> 45</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a> </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b"> 52</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"> 53</a></span>&#160; <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> = 0, </div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"> 54</a></span>&#160; <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> </div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740"> 61</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> {</div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"> 62</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a> = 0, </div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"> 63</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>, </div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"> 64</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>, </div><div class="line"><a name="l00065"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"> 65</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>, </div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"> 66</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a> </div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;};</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"><a class="line" href="struct_switching_data.html"> 76</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_switching_data.html">SwitchingData</a> {</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574"> 77</a></span>&#160; std::vector&lt;SwitchingType&gt; <a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>; </div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df"> 78</a></span>&#160; std::vector&lt;double&gt; <a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>; </div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;};</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="struct_integration_constant.html"> 88</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_integration_constant.html">IntegrationConstant</a> {</div><div class="line"><a name="l00089"></a><span class="lineno"><a class="line" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455"> 89</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">c</a>; </div><div class="line"><a name="l00090"></a><span class="lineno"><a class="line" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65"> 90</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">m</a>; </div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;};</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_power_element.html"> 100</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_power_element.html">PowerElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; ~<a class="code" href="class_power_element.html">PowerElement</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble GetSwitchPoint(<a class="code" href="class_element.html">Element</a>* parent,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; wxPoint2DDouble parentPoint,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; wxPoint2DDouble secondPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SwitchesContains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateSwitches();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSwitches() <span class="keyword">const</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculatePowerFlowPts(std::vector&lt;wxPoint2DDouble&gt; edges);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPowerFlowPts() <span class="keyword">const</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"><a class="line" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f"> 160</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(<a class="code" href="struct_switching_data.html">SwitchingData</a> data) { m_swData = data; }</div><div class="line"><a name="l00165"></a><span class="lineno"><a class="line" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1"> 165</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_switching_data.html">SwitchingData</a> <a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>() { <span class="keywordflow">return</span> m_swData; }</div><div class="line"><a name="l00170"></a><span class="lineno"><a class="line" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49"> 170</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection) { m_pfDirection = pfDirection; }</div><div class="line"><a name="l00175"></a><span class="lineno"><a class="line" href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933"> 175</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> <a class="code" href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933">GetPowerFlowDirection</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pfDirection; }</div><div class="line"><a name="l00181"></a><span class="lineno"><a class="line" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf"> 181</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00186"></a><span class="lineno"><a class="line" href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae"> 186</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae">HaveDynamicEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dynEvent; }</div><div class="line"><a name="l00191"></a><span class="lineno"><a class="line" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4"> 191</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keywordtype">bool</span> dynEvent = <span class="keyword">true</span>) { m_dynEvent = dynEvent; }</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValueFromUnit(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> valueUnit);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> m_swData;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; std::vector&lt;std::vector&lt;wxPoint2DDouble&gt; &gt; m_powerFlowArrow;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> m_pfDirection = <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_busColour;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_onlineElementColour;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_offlineElementColour;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_closedSwitchColour;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_openedSwitchColour;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_powerFlowArrowColour;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_dynamicEventColour;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">bool</span> m_dynEvent = <span class="keyword">false</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;};</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;<span class="preprocessor">#endif // POWERELEMENT_H</span></div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00026">PowerElement.h:26</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00045">PowerElement.h:45</a></div></div>
-<div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00015">PowerElement.h:15</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
-<div class="ttc" id="class_power_element_html_a2ee71f9eb90beadf5439ce9f70469b49"><div class="ttname"><a href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00170">PowerElement.h:170</a></div></div>
-<div class="ttc" id="class_power_element_html_aefa43fe646e90428b1ed9884a7e499ae"><div class="ttname"><a href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae">PowerElement::HaveDynamicEvent</a></div><div class="ttdeci">virtual bool HaveDynamicEvent() const</div><div class="ttdoc">Check if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00186">PowerElement.h:186</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00077">PowerElement.h:77</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00088">PowerElement.h:88</a></div></div>
-<div class="ttc" id="class_power_element_html_a4dbd26d0a7987c30729efffa860debc4"><div class="ttname"><a href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">PowerElement::SetDynamicEvent</a></div><div class="ttdeci">virtual void SetDynamicEvent(bool dynEvent=true)</div><div class="ttdoc">Set if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00191">PowerElement.h:191</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00054">PowerElement.h:54</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00064">PowerElement.h:64</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="struct_integration_constant_html_adafabd0d37a52d4ed054a800cbce3d65"><div class="ttname"><a href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">IntegrationConstant::m</a></div><div class="ttdeci">double m</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00090">PowerElement.h:90</a></div></div>
-<div class="ttc" id="class_power_element_html_acadf6712b430f9fadfbd7015903eaeaf"><div class="ttname"><a href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00181">PowerElement.h:181</a></div></div>
-<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00076">PowerElement.h:76</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00016">PowerElement.h:16</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00027">PowerElement.h:27</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
-<div class="ttc" id="struct_integration_constant_html_afc3598097377951b84492d087a06b455"><div class="ttname"><a href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">IntegrationConstant::c</a></div><div class="ttdeci">double c</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00089">PowerElement.h:89</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00066">PowerElement.h:66</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_power_element_html_a8ffa0f79241bd21ad5dd501d26fed933"><div class="ttname"><a href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933">PowerElement::GetPowerFlowDirection</a></div><div class="ttdeci">virtual PowerFlowDirection GetPowerFlowDirection() const</div><div class="ttdoc">Return the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00175">PowerElement.h:175</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
-<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00165">PowerElement.h:165</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00063">PowerElement.h:63</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1b"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a></div><div class="ttdeci">SwitchingType</div><div class="ttdoc">Type of switching. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00052">PowerElement.h:52</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00065">PowerElement.h:65</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
-<div class="ttc" id="class_power_element_html_a08d2e84b91ab7443b20a9d7eb6ab441f"><div class="ttname"><a href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">PowerElement::SetSwitchingData</a></div><div class="ttdeci">virtual void SetSwitchingData(SwitchingData data)</div><div class="ttdoc">Set the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00160">PowerElement.h:160</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00053">PowerElement.h:53</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<a href="_power_element_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef POWERELEMENT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define POWERELEMENT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_plot_data_8h.html">ElementPlotData.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca"> 28</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"> 29</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a> = 0, </div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"> 30</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>, </div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"> 31</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>, </div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"> 32</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>, </div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"> 33</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>, </div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"> 34</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>, </div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"> 35</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>, </div><div class="line"><a name="l00036"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"> 36</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>, </div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"> 37</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>, </div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"> 38</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>, </div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"> 39</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>, </div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"> 40</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>, </div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"> 41</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>, </div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"> 42</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>, </div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"> 43</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>, </div><div class="line"><a name="l00044"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"> 44</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a>, </div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"> 45</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a>, </div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"> 46</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a>, </div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"> 47</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>, </div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"> 48</a></span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a> </div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb"> 55</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a> {</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"> 56</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a> = 0, </div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"> 57</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a>, </div><div class="line"><a name="l00058"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"> 58</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a>, </div><div class="line"><a name="l00059"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"> 59</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a>, </div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"> 60</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a>, </div><div class="line"><a name="l00061"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"> 61</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a>, </div><div class="line"><a name="l00062"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"> 62</a></span>&#160; <a class="code" href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a> </div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b"> 69</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a> {</div><div class="line"><a name="l00070"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"> 70</a></span>&#160; <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> = 0, </div><div class="line"><a name="l00071"></a><span class="lineno"><a class="line" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"> 71</a></span>&#160; <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a> </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;};</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740"> 78</a></span>&#160;<span class="keyword">enum</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> {</div><div class="line"><a name="l00079"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"> 79</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a> = 0, </div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"> 80</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>, </div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"> 81</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>, </div><div class="line"><a name="l00082"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"> 82</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>, </div><div class="line"><a name="l00083"></a><span class="lineno"><a class="line" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"> 83</a></span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a> </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"><a class="line" href="struct_switching_data.html"> 93</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_switching_data.html">SwitchingData</a> {</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574"> 94</a></span>&#160; std::vector&lt;SwitchingType&gt; <a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>; </div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df"> 95</a></span>&#160; std::vector&lt;double&gt; <a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>; </div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;};</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="struct_integration_constant.html"> 105</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_integration_constant.html">IntegrationConstant</a> {</div><div class="line"><a name="l00106"></a><span class="lineno"><a class="line" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455"> 106</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">c</a>; </div><div class="line"><a name="l00107"></a><span class="lineno"><a class="line" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65"> 107</a></span>&#160; <span class="keywordtype">double</span> <a class="code" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">m</a>; </div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_power_element.html"> 117</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_power_element.html">PowerElement</a> : <span class="keyword">public</span> <a class="code" href="class_element.html">Element</a></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; ~<a class="code" href="class_power_element.html">PowerElement</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> wxPoint2DDouble GetSwitchPoint(<a class="code" href="class_element.html">Element</a>* parent,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; wxPoint2DDouble parentPoint,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; wxPoint2DDouble secondPoint) <span class="keyword">const</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SwitchesContains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateSwitches();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSwitches() <span class="keyword">const</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculatePowerFlowPts(std::vector&lt;wxPoint2DDouble&gt; edges);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawPowerFlowPts() <span class="keyword">const</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"><a class="line" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f"> 177</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">SetSwitchingData</a>(<a class="code" href="struct_switching_data.html">SwitchingData</a> data) { m_swData = data; }</div><div class="line"><a name="l00182"></a><span class="lineno"><a class="line" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1"> 182</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_switching_data.html">SwitchingData</a> <a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>() { <span class="keywordflow">return</span> m_swData; }</div><div class="line"><a name="l00187"></a><span class="lineno"><a class="line" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49"> 187</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection) { m_pfDirection = pfDirection; }</div><div class="line"><a name="l00192"></a><span class="lineno"><a class="line" href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933"> 192</a></span>&#160; <span class="keyword">virtual</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> <a class="code" href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933">GetPowerFlowDirection</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_pfDirection; }</div><div class="line"><a name="l00198"></a><span class="lineno"><a class="line" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf"> 198</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData) { <span class="keywordflow">return</span> <span class="keyword">false</span>; }</div><div class="line"><a name="l00203"></a><span class="lineno"><a class="line" href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae"> 203</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae">HaveDynamicEvent</a>()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dynEvent; }</div><div class="line"><a name="l00208"></a><span class="lineno"><a class="line" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4"> 208</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">SetDynamicEvent</a>(<span class="keywordtype">bool</span> dynEvent = <span class="keyword">true</span>) { m_dynEvent = dynEvent; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">double</span> GetValueFromUnit(<span class="keywordtype">double</span> value, <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> valueUnit);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> m_swData;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; std::vector&lt;std::vector&lt;wxPoint2DDouble&gt; &gt; m_powerFlowArrow;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> m_pfDirection = <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_busColour;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_onlineElementColour;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_offlineElementColour;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_closedSwitchColour;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_openedSwitchColour;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_powerFlowArrowColour;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> m_dynamicEventColour;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordtype">bool</span> m_dynEvent = <span class="keyword">false</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;};</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;<span class="preprocessor">#endif // POWERELEMENT_H</span></div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba836a7abab9ade9c28512ea3ee0737315">FAULT_LINE_C</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
+<div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00095">PowerElement.h:95</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00032">PowerElement.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d">FAULT_LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00059">PowerElement.h:59</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00047">PowerElement.h:47</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cb"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb">FaultData</a></div><div class="ttdeci">FaultData</div><div class="ttdoc">Information about fault (type and location). </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00055">PowerElement.h:55</a></div></div>
+<div class="ttc" id="class_power_element_html_a2ee71f9eb90beadf5439ce9f70469b49"><div class="ttname"><a href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00187">PowerElement.h:187</a></div></div>
+<div class="ttc" id="class_power_element_html_aefa43fe646e90428b1ed9884a7e499ae"><div class="ttname"><a href="class_power_element.html#aefa43fe646e90428b1ed9884a7e499ae">PowerElement::HaveDynamicEvent</a></div><div class="ttdeci">virtual bool HaveDynamicEvent() const</div><div class="ttdoc">Check if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00203">PowerElement.h:203</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00094">PowerElement.h:94</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdoc">Integration constants to calculate dynamic elements through trapezoidal integration method...</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00105">PowerElement.h:105</a></div></div>
+<div class="ttc" id="class_power_element_html_a4dbd26d0a7987c30729efffa860debc4"><div class="ttname"><a href="class_power_element.html#a4dbd26d0a7987c30729efffa860debc4">PowerElement::SetDynamicEvent</a></div><div class="ttdeci">virtual void SetDynamicEvent(bool dynEvent=true)</div><div class="ttdoc">Set if the power element have dynamic event. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00208">PowerElement.h:208</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00071">PowerElement.h:71</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00081">PowerElement.h:81</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="struct_integration_constant_html_adafabd0d37a52d4ed054a800cbce3d65"><div class="ttname"><a href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">IntegrationConstant::m</a></div><div class="ttdeci">double m</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00107">PowerElement.h:107</a></div></div>
+<div class="ttc" id="class_power_element_html_acadf6712b430f9fadfbd7015903eaeaf"><div class="ttname"><a href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00198">PowerElement.h:198</a></div></div>
+<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdoc">Switching data of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00093">PowerElement.h:93</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad7f3fd44a6a841106ba66d1adbd53fdd">FAULT_LINE_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00060">PowerElement.h:60</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00033">PowerElement.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbad44688f1ea0a010d3c0fd37870e46512">FAULT_2LINE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00057">PowerElement.h:57</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8a826e75d0d077b2174d7bb62fc8dad1">UNIT_OHM_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00044">PowerElement.h:44</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0">FAULT_THREEPHASE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00056">PowerElement.h:56</a></div></div>
+<div class="ttc" id="struct_integration_constant_html_afc3598097377951b84492d087a06b455"><div class="ttname"><a href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">IntegrationConstant::c</a></div><div class="ttdeci">double c</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00106">PowerElement.h:106</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7c0341915f48c889a8885b72199f2a11">UNIT_S</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00045">PowerElement.h:45</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00083">PowerElement.h:83</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="_element_plot_data_8h_html"><div class="ttname"><a href="_element_plot_data_8h.html">ElementPlotData.h</a></div></div>
+<div class="ttc" id="class_power_element_html_a8ffa0f79241bd21ad5dd501d26fed933"><div class="ttname"><a href="class_power_element.html#a8ffa0f79241bd21ad5dd501d26fed933">PowerElement::GetPowerFlowDirection</a></div><div class="ttdeci">virtual PowerFlowDirection GetPowerFlowDirection() const</div><div class="ttdoc">Return the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00192">PowerElement.h:192</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaafad40a772b78232a91fe61d606a323e">FAULT_2LINE_GROUND</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00058">PowerElement.h:58</a></div></div>
+<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00182">PowerElement.h:182</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00080">PowerElement.h:80</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1b"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b">SwitchingType</a></div><div class="ttdeci">SwitchingType</div><div class="ttdoc">Type of switching. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00069">PowerElement.h:69</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00079">PowerElement.h:79</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaaf5ad31fee4a7f5843527be386033de65">UNIT_S_km</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00046">PowerElement.h:46</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00082">PowerElement.h:82</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245"><div class="ttname"><a href="_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cba6ab815fdf2ca1dc91c0dd3ec4c630245">FAULT_LINE_B</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00048">PowerElement.h:48</a></div></div>
+<div class="ttc" id="class_power_element_html_a08d2e84b91ab7443b20a9d7eb6ab441f"><div class="ttname"><a href="class_power_element.html#a08d2e84b91ab7443b20a9d7eb6ab441f">PowerElement::SetSwitchingData</a></div><div class="ttdeci">virtual void SetSwitchingData(SwitchingData data)</div><div class="ttdoc">Set the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00177">PowerElement.h:177</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00070">PowerElement.h:70</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_power_flow_8cpp_source.html b/docs/doxygen/html/_power_flow_8cpp_source.html
index d05c53d..d0931d7 100644
--- a/docs/doxygen/html/_power_flow_8cpp_source.html
+++ b/docs/doxygen/html/_power_flow_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,20 @@ $(document).ready(function(){initNavTree('_power_flow_8cpp_source.html','');});
<div class="title">PowerFlow.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;PowerFlow.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;PowerFlow::PowerFlow()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>()</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;PowerFlow::PowerFlow(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>()</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; GetElementsFromList(elementList);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;PowerFlow::~PowerFlow() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">bool</span> PowerFlow::RunGaussSeidel(<span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">int</span> maxIteration,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> error,</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> accFactor)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;{</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="comment">// Calculate the Ybus.</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span>(!GetYBus(m_yBus, systemPowerBase)) {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;No buses found on the system.&quot;</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="comment">// Number of buses on the system.</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> numberOfBuses = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_busList.size());</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::vector&lt;BusType&gt; busType; <span class="comment">// Bus type</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; voltage; <span class="comment">// Voltage of buses</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power; <span class="comment">// Injected power</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; loadPower; <span class="comment">// Only the load power</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit; <span class="comment">// Limit of reactive power on PV buses</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; reactiveLimit.resize(numberOfBuses);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Fill the bus type</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(data.slackBus) busType.push_back(BUS_SLACK);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="comment">// If the bus have controlled voltage, check if at least one synchronous machine is connected, then set the</span></div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// bus type.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.isVoltageControlled) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">bool</span> hasSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) hasSyncMachine = <span class="keyword">true</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) hasSyncMachine = <span class="keyword">true</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(hasSyncMachine)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; busType.push_back(BUS_PV);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; busType.push_back(BUS_PQ);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; busType.push_back(BUS_PQ);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Fill the voltages array</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(data.isVoltageControlled &amp;&amp; busType[busNumber] != BUS_PQ) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; voltage.push_back(std::complex&lt;double&gt;(data.controlledVoltage, 0.0));</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; voltage.push_back(std::complex&lt;double&gt;(1.0, 0.0));</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Fill the power array</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; power.push_back(std::complex&lt;double&gt;(0.0, 0.0)); <span class="comment">// Initial value</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; loadPower.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; power[busNumber] += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(busType[busNumber] == BUS_PV) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(childData.haveMaxReactive &amp;&amp; reactiveLimit[busNumber].maxLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_LIMITED;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; reactiveLimit[busNumber].maxLimit += childData.maxReactive;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMaxReactive)</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(childData.haveMinReactive &amp;&amp; reactiveLimit[busNumber].minLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; reactiveLimit[busNumber].minLimitType = RL_LIMITED;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; reactiveLimit[busNumber].minLimit += childData.minReactive;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMinReactive)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; reactiveLimit[busNumber].minLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, 0.0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">if</span>(busType[busNumber] == BUS_PV) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(childData.haveMaxReactive &amp;&amp; reactiveLimit[busNumber].maxLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_LIMITED;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; reactiveLimit[busNumber].maxLimit += childData.maxReactive;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMaxReactive)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(childData.haveMinReactive &amp;&amp; reactiveLimit[busNumber].minLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; reactiveLimit[busNumber].minLimitType = RL_LIMITED;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; reactiveLimit[busNumber].minLimit += childData.minReactive;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMinReactive)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; reactiveLimit[busNumber].minLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="comment">// Load</span></div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itl = m_loadList.begin(); itl != m_loadList.end(); itl++) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *itl;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(bus == load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> childData = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(childData.loadType == CONST_POWER) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="comment">// Induction motor</span></div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itim = m_indMotorList.begin(); itim != m_indMotorList.end(); itim++) {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = *itim;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(bus == indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> childData = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; }</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; busNumber++;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="comment">// Check if have slack bus and if have generation on the slack bus</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">bool</span> haveSlackBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordtype">bool</span> slackBusHaveGeneration = <span class="keyword">false</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)busType.size(); i++) {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">auto</span> itb = m_busList.begin();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; std::advance(itb, i);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) slackBusHaveGeneration = <span class="keyword">true</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; haveSlackBus = <span class="keyword">true</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(!haveSlackBus) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no slack bus on the system.&quot;</span>);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(!slackBusHaveGeneration) {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;The slack bus don&#39;t have generation.&quot;</span>);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// Gauss-Seidel method</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; oldVoltage; <span class="comment">// Old voltage array.</span></div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; oldVoltage.resize(voltage.size());</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keyword">auto</span> oldBusType = busType;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordtype">int</span> iteration = 0; <span class="comment">// Current itaration number.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// Reach the max number of iterations.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(iteration &gt;= maxIteration) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;The maximum number of iterations was reached.&quot;</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// Update the old voltage array to current iteration values.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) oldVoltage[i] = voltage[i];</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordtype">double</span> iterationError = 0.0;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PQ) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; std::complex&lt;double&gt; yeSum(0.0, 0.0);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; numberOfBuses; k++) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(i != k) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Sum { Y[i,k] * E[k] } | k = 1-&gt;n; k diff i</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; yeSum += m_yBus[i][k] * voltage[k];</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="comment">// E[i] = (1/Y[i,i])*((P[i]-jQ[i])/E*[i] - Sum { Y[i,k] * E[k] (k diff i) })</span></div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; std::complex&lt;double&gt; newVolt =</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; (1.0 / m_yBus[i][i]) * (std::conj(power[i]) / std::conj(voltage[i]) - yeSum);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="comment">// Apply the acceleration factor.</span></div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; newVolt = std::complex&lt;double&gt;(accFactor * (newVolt.real() - voltage[i].real()) + voltage[i].real(),</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; accFactor * (newVolt.imag() - voltage[i].imag()) + voltage[i].imag());</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; voltage[i] = newVolt;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; std::complex&lt;double&gt; yeSum(0.0, 0.0);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; numberOfBuses; k++) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(i != k) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="comment">// Sum { Y[i,k] * E[k] } | k = 1-&gt;n; k diff i</span></div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; yeSum += m_yBus[i][k] * voltage[k];</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; std::complex&lt;double&gt; yeSumT = yeSum + (m_yBus[i][i] * voltage[i]);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="comment">// Q[i] = - Im( E*[i] * Sum { Y[i,k] * E[k] } )</span></div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; std::complex&lt;double&gt; qCalc = std::conj(voltage[i]) * yeSumT;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; power[i] = std::complex&lt;double&gt;(power[i].real(), -qCalc.imag());</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// E[i] = (1/Y[i,i])*((P[i]-jQ[i])/E*[i] - Sum { Y[i,k] * E[k] (k diff i) })</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; std::complex&lt;double&gt; newVolt =</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; (1.0 / m_yBus[i][i]) * (std::conj(power[i]) / std::conj(voltage[i]) - yeSum);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// Apply the acceleration factor.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; newVolt = std::complex&lt;double&gt;(accFactor * (newVolt.real() - voltage[i].real()) + voltage[i].real(),</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; accFactor * (newVolt.imag() - voltage[i].imag()) + voltage[i].imag());</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="comment">// Keep the same voltage magnitude.</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; voltage[i] = std::complex&lt;double&gt;(std::abs(voltage[i]) * std::cos(std::arg(newVolt)),</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; std::abs(voltage[i]) * std::sin(std::arg(newVolt)));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; }</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordtype">double</span> busError = std::max(</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; std::abs(voltage[i].real() - oldVoltage[i].real()), std::abs(voltage[i].imag() - oldVoltage[i].imag()));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">if</span>(busError &gt; iterationError) iterationError = busError;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; }</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(iterationError &lt; error) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">bool</span> limitReach = <span class="keyword">false</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV) {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].maxLimitType == RL_LIMITED) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">if</span>(power[i].imag() - loadPower[i].imag() &gt; reactiveLimit[i].maxLimit) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; power[i] =</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; std::complex&lt;double&gt;(power[i].real(), reactiveLimit[i].maxLimit + loadPower[i].imag());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; busType[i] = BUS_PQ;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; reactiveLimit[i].limitReached = RL_MAX_REACHED;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; limitReach = <span class="keyword">true</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; }</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].minLimitType == RL_LIMITED) {</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">if</span>(power[i].imag() - loadPower[i].imag() &lt; reactiveLimit[i].minLimit) {</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; power[i] =</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; std::complex&lt;double&gt;(power[i].real(), reactiveLimit[i].minLimit + loadPower[i].imag());</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; busType[i] = BUS_PQ;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; reactiveLimit[i].limitReached = RL_MIN_REACHED;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; limitReach = <span class="keyword">true</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; }</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; }</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; }</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">if</span>(!limitReach) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; }</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; iteration++;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="comment">// Adjust the power array.</span></div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="comment">// TODO: Only the slack bus??</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; std::complex&lt;double&gt; sBus = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; numberOfBuses; j++) sBus += voltage[i] * std::conj(voltage[j]) * std::conj(m_yBus[i][j]);</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; power[i] = sBus;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; }</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; UpdateElementsPowerFlow(voltage, power, oldBusType, reactiveLimit, systemPowerBase);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_flow_8h.html">PowerFlow.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;PowerFlow::PowerFlow() : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;PowerFlow::PowerFlow(std::vector&lt;Element*&gt; elementList) : <a class="code" href="class_electric_calculation.html">ElectricCalculation</a>() { GetElementsFromList(elementList); }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;PowerFlow::~PowerFlow() {}</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keywordtype">bool</span> PowerFlow::RunGaussSeidel(<span class="keywordtype">double</span> systemPowerBase,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">int</span> maxIteration,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> error,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">double</span> initAngle,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> accFactor)</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;{</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// Calculate the Ybus.</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(!GetYBus(m_yBus, systemPowerBase)) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;No buses found on the system.&quot;</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Number of buses on the system.</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">int</span> numberOfBuses = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_busList.size());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::vector&lt;BusType&gt; busType; <span class="comment">// Bus type</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; voltage; <span class="comment">// Voltage of buses</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; power; <span class="comment">// Injected power</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; loadPower; <span class="comment">// Only the load power</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;ReactiveLimits&gt; reactiveLimit; <span class="comment">// Limit of reactive power on PV buses</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; reactiveLimit.resize(numberOfBuses);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itb = m_busList.begin(); itb != m_busList.end(); itb++) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Fill the bus type</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(data.slackBus) busType.push_back(BUS_SLACK);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="comment">// If the bus have controlled voltage, check if at least one synchronous machine is connected, then set the</span></div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// bus type.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(data.isVoltageControlled) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">bool</span> hasSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) hasSyncMachine = <span class="keyword">true</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) hasSyncMachine = <span class="keyword">true</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(hasSyncMachine)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; busType.push_back(BUS_PV);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; busType.push_back(BUS_PQ);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; busType.push_back(BUS_PQ);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Fill the voltages array</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(data.isVoltageControlled &amp;&amp; busType[busNumber] != BUS_PQ) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; voltage.push_back(std::complex&lt;double&gt;(data.controlledVoltage, 0.0));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; voltage.push_back(std::complex&lt;double&gt;(1.0, 0.0));</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Fill the power array</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; power.push_back(std::complex&lt;double&gt;(0.0, 0.0)); <span class="comment">// Initial value</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; loadPower.push_back(std::complex&lt;double&gt;(0.0, 0.0));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Synchronous generator</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> childData = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; power[busNumber] += std::complex&lt;double&gt;(childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(busType[busNumber] == BUS_PV) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(childData.haveMaxReactive &amp;&amp; reactiveLimit[busNumber].maxLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_LIMITED;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; reactiveLimit[busNumber].maxLimit += childData.maxReactive;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMaxReactive)</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(childData.haveMinReactive &amp;&amp; reactiveLimit[busNumber].minLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; reactiveLimit[busNumber].minLimitType = RL_LIMITED;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; reactiveLimit[busNumber].minLimit += childData.minReactive;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMinReactive)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; reactiveLimit[busNumber].minLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Synchronous motor</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsm = m_syncMotorList.begin(); itsm != m_syncMotorList.end(); itsm++) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = *itsm;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>(bus == syncMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> childData = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, childData.reactivePower);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, 0.0);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(busType[busNumber] == BUS_PV) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(childData.haveMaxReactive &amp;&amp; reactiveLimit[busNumber].maxLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_LIMITED;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; reactiveLimit[busNumber].maxLimit += childData.maxReactive;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMaxReactive)</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; reactiveLimit[busNumber].maxLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(childData.haveMinReactive &amp;&amp; reactiveLimit[busNumber].minLimitType != RL_UNLIMITED_SOURCE) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; reactiveLimit[busNumber].minLimitType = RL_LIMITED;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; reactiveLimit[busNumber].minLimit += childData.minReactive;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!childData.haveMinReactive)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; reactiveLimit[busNumber].minLimitType = RL_UNLIMITED_SOURCE;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// Load</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itl = m_loadList.begin(); itl != m_loadList.end(); itl++) {</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_load.html">Load</a>* load = *itl;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(bus == load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> childData = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(childData.loadType == CONST_POWER) {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Induction motor</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itim = m_indMotorList.begin(); itim != m_indMotorList.end(); itim++) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = *itim;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">if</span>(bus == indMotor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> childData = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; power[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; loadPower[busNumber] += std::complex&lt;double&gt;(-childData.activePower, -childData.reactivePower);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; }</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; busNumber++;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Check if have slack bus and if have generation on the slack bus</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">bool</span> haveSlackBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">bool</span> slackBusHaveGeneration = <span class="keyword">false</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)busType.size(); i++) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_SLACK) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">auto</span> itb = m_busList.begin();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; std::advance(itb, i);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *itb;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itsg = m_syncGeneratorList.begin(); itsg != m_syncGeneratorList.end(); itsg++) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = *itsg;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() &amp;&amp; bus == syncGenerator-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0]) slackBusHaveGeneration = <span class="keyword">true</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; }</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; haveSlackBus = <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">if</span>(!haveSlackBus) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;There is no slack bus on the system.&quot;</span>);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(!slackBusHaveGeneration) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;The slack bus don&#39;t have generation.&quot;</span>);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="comment">// Gauss-Seidel method</span></div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; oldVoltage; <span class="comment">// Old voltage array.</span></div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; oldVoltage.resize(voltage.size());</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keyword">auto</span> oldBusType = busType;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">int</span> iteration = 0; <span class="comment">// Current itaration number.</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Reach the max number of iterations.</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(iteration &gt;= maxIteration) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_errorMsg = _(<span class="stringliteral">&quot;The maximum number of iterations was reached.&quot;</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="comment">// Update the old voltage array to current iteration values.</span></div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) oldVoltage[i] = voltage[i];</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordtype">double</span> iterationError = 0.0;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PQ) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; std::complex&lt;double&gt; yeSum(0.0, 0.0);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; numberOfBuses; k++) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(i != k) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// Sum { Y[i,k] * E[k] } | k = 1-&gt;n; k diff i</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; yeSum += m_yBus[i][k] * voltage[k];</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// E[i] = (1/Y[i,i])*((P[i]-jQ[i])/E*[i] - Sum { Y[i,k] * E[k] (k diff i) })</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; std::complex&lt;double&gt; newVolt =</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; (1.0 / m_yBus[i][i]) * (std::conj(power[i]) / std::conj(voltage[i]) - yeSum);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// Apply the acceleration factor.</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; newVolt = std::complex&lt;double&gt;(accFactor * (newVolt.real() - voltage[i].real()) + voltage[i].real(),</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; accFactor * (newVolt.imag() - voltage[i].imag()) + voltage[i].imag());</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; voltage[i] = newVolt;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV) {</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; std::complex&lt;double&gt; yeSum(0.0, 0.0);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; numberOfBuses; k++) {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(i != k) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="comment">// Sum { Y[i,k] * E[k] } | k = 1-&gt;n; k diff i</span></div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; yeSum += m_yBus[i][k] * voltage[k];</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; }</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; std::complex&lt;double&gt; yeSumT = yeSum + (m_yBus[i][i] * voltage[i]);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="comment">// Q[i] = - Im( E*[i] * Sum { Y[i,k] * E[k] } )</span></div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; std::complex&lt;double&gt; qCalc = std::conj(voltage[i]) * yeSumT;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; power[i] = std::complex&lt;double&gt;(power[i].real(), -qCalc.imag());</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="comment">// E[i] = (1/Y[i,i])*((P[i]-jQ[i])/E*[i] - Sum { Y[i,k] * E[k] (k diff i) })</span></div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; std::complex&lt;double&gt; newVolt =</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; (1.0 / m_yBus[i][i]) * (std::conj(power[i]) / std::conj(voltage[i]) - yeSum);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="comment">// Apply the acceleration factor.</span></div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; newVolt = std::complex&lt;double&gt;(accFactor * (newVolt.real() - voltage[i].real()) + voltage[i].real(),</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; accFactor * (newVolt.imag() - voltage[i].imag()) + voltage[i].imag());</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="comment">// Keep the same voltage magnitude.</span></div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; voltage[i] = std::complex&lt;double&gt;(std::abs(voltage[i]) * std::cos(std::arg(newVolt)),</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; std::abs(voltage[i]) * std::sin(std::arg(newVolt)));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordtype">double</span> busError = std::max(std::abs(voltage[i].real() - oldVoltage[i].real()),</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; std::abs(voltage[i].imag() - oldVoltage[i].imag()));</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(busError &gt; iterationError) iterationError = busError;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">if</span>(iterationError &lt; error) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">bool</span> limitReach = <span class="keyword">false</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; <span class="keywordflow">if</span>(busType[i] == BUS_PV) {</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].maxLimitType == RL_LIMITED) {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(power[i].imag() - loadPower[i].imag() &gt; reactiveLimit[i].maxLimit) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; power[i] =</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; std::complex&lt;double&gt;(power[i].real(), reactiveLimit[i].maxLimit + loadPower[i].imag());</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; busType[i] = BUS_PQ;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; reactiveLimit[i].limitReached = RL_MAX_REACHED;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; limitReach = <span class="keyword">true</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; }</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; }</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(reactiveLimit[i].minLimitType == RL_LIMITED) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(power[i].imag() - loadPower[i].imag() &lt; reactiveLimit[i].minLimit) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; power[i] =</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; std::complex&lt;double&gt;(power[i].real(), reactiveLimit[i].minLimit + loadPower[i].imag());</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; busType[i] = BUS_PQ;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; reactiveLimit[i].limitReached = RL_MIN_REACHED;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; limitReach = <span class="keyword">true</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; }</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(!limitReach) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; iteration++;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// Adjust the power array.</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// TODO: Only the slack bus??</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; numberOfBuses; i++) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; std::complex&lt;double&gt; sBus = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; numberOfBuses; j++) sBus += voltage[i] * std::conj(voltage[j]) * std::conj(m_yBus[i][j]);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; power[i] = sBus;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; UpdateElementsPowerFlow(voltage, power, oldBusType, reactiveLimit, systemPowerBase);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_flow_8h_html"><div class="ttname"><a href="_power_flow_8h.html">PowerFlow.h</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_power_flow_8h.html b/docs/doxygen/html/_power_flow_8h.html
new file mode 100644
index 0000000..25a2ff6
--- /dev/null
+++ b/docs/doxygen/html/_power_flow_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/PowerFlow.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_power_flow_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">PowerFlow.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&quot;</code><br />
+<code>#include &lt;wx/string.h&gt;</code><br />
+<code>#include &lt;wx/intl.h&gt;</code><br />
+</div>
+<p><a href="_power_flow_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_power_flow.html">PowerFlow</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the power flow. <a href="class_power_flow.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_power_flow_8h.html">PowerFlow.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_power_flow_8h_source.html b/docs/doxygen/html/_power_flow_8h_source.html
index c66b86a..1828677 100644
--- a/docs/doxygen/html/_power_flow_8h_source.html
+++ b/docs/doxygen/html/_power_flow_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_power_flow_8h_source.html','');});
<div class="title">PowerFlow.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef POWERFLOW_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define POWERFLOW_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/string.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/intl.h&gt;</span> <span class="comment">//_()</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_power_flow.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_power_flow.html">PowerFlow</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; ~<a class="code" href="class_power_flow.html">PowerFlow</a>();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> RunGaussSeidel(<span class="keywordtype">double</span> systemPowerBase = 100e6,</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">int</span> maxIteration = 5000,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> error = 1e-6,</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> initAngle = 0.0,</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">double</span> accFactor = 1.0);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> wxString GetErrorMessage() { <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBus;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; wxString m_errorMsg = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;};</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif // POWERFLOW_H</span></div><div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00009">PowerFlow.h:9</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
+<a href="_power_flow_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef POWERFLOW_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define POWERFLOW_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/string.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/intl.h&gt;</span> <span class="comment">//_()</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_power_flow.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_power_flow.html">PowerFlow</a> : <span class="keyword">public</span> <a class="code" href="class_electric_calculation.html">ElectricCalculation</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a>(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; ~<a class="code" href="class_power_flow.html">PowerFlow</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> RunGaussSeidel(<span class="keywordtype">double</span> systemPowerBase = 100e6,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">int</span> maxIteration = 5000,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordtype">double</span> error = 1e-6,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> initAngle = 0.0,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">double</span> accFactor = 1.0);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> wxString GetErrorMessage() { <span class="keywordflow">return</span> m_errorMsg; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; std::vector&lt;std::vector&lt;std::complex&lt;double&gt; &gt; &gt; m_yBus;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxString m_errorMsg = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;};</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // POWERFLOW_H</span></div><div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdoc">Calculate the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00033">PowerFlow.h:33</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>PowerFlow.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_power_flow_8h.html">PowerFlow.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_properties_data_8cpp_source.html b/docs/doxygen/html/_properties_data_8cpp_source.html
index 9fa7f45..9894007 100644
--- a/docs/doxygen/html/_properties_data_8cpp_source.html
+++ b/docs/doxygen/html/_properties_data_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,8 @@ $(document).ready(function(){initNavTree('_properties_data_8cpp_source.html','')
<div class="title">PropertiesData.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;PropertiesData::PropertiesData()</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;{</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;}</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;PropertiesData::~PropertiesData()</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;}</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;PropertiesData::PropertiesData() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;PropertiesData::~PropertiesData() {}</div><div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/doxygen/html/_properties_data_8h.html b/docs/doxygen/html/_properties_data_8h.html
new file mode 100644
index 0000000..da24e36
--- /dev/null
+++ b/docs/doxygen/html/_properties_data_8h.html
@@ -0,0 +1,133 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/PropertiesData.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_properties_data_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">PropertiesData.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;wx/language.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_element_8h_source.html">Element.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_properties_data_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_simulation_data.html">SimulationData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_general_data.html">GeneralData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_properties_data.html">PropertiesData</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">General and simulation data manager. <a href="class_properties_data.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ac18bc6e3749817eb86c02a2e65d4e68b"><td class="memItemLeft" align="right" valign="top"><a id="ac18bc6e3749817eb86c02a2e65d4e68b"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>PowerFlowMethod</b> { <b>GAUSS_SEIDEL</b> = 0,
+<b>NEWTON_RAPHSON</b>
+ }</td></tr>
+<tr class="separator:ac18bc6e3749817eb86c02a2e65d4e68b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a22c433d87328b2b1a796559b51b82cc5"><td class="memItemLeft" align="right" valign="top"><a id="a22c433d87328b2b1a796559b51b82cc5"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>GUITheme</b> { <b>THEME_LIGHT</b> = 0,
+<b>THEME_DARK</b>
+ }</td></tr>
+<tr class="separator:a22c433d87328b2b1a796559b51b82cc5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_properties_data_8h.html">PropertiesData.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_properties_data_8h.js b/docs/doxygen/html/_properties_data_8h.js
new file mode 100644
index 0000000..ae77480
--- /dev/null
+++ b/docs/doxygen/html/_properties_data_8h.js
@@ -0,0 +1,14 @@
+var _properties_data_8h =
+[
+ [ "SimulationData", "struct_simulation_data.html", "struct_simulation_data" ],
+ [ "GeneralData", "struct_general_data.html", "struct_general_data" ],
+ [ "PropertiesData", "class_properties_data.html", "class_properties_data" ],
+ [ "GUITheme", "_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5", [
+ [ "THEME_LIGHT", "_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5a36b54867355898cdf8184bc1b1b1ab64", null ],
+ [ "THEME_DARK", "_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5aa81179a87e35561c97eec4e1b2b1aa47", null ]
+ ] ],
+ [ "PowerFlowMethod", "_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68b", [
+ [ "GAUSS_SEIDEL", "_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68ba80c952bb305178615486f9a8ea95349d", null ],
+ [ "NEWTON_RAPHSON", "_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68ba8f764af6b30d2774aa12bfd9ecbc3fd5", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_properties_data_8h_source.html b/docs/doxygen/html/_properties_data_8h_source.html
index 567c792..10b41d3 100644
--- a/docs/doxygen/html/_properties_data_8h_source.html
+++ b/docs/doxygen/html/_properties_data_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,19 +88,19 @@ $(document).ready(function(){initNavTree('_properties_data_8h_source.html','');}
<div class="title">PropertiesData.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef PROPERTIESDATA_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define PROPERTIESDATA_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;wx/language.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">enum</span> PowerFlowMethod { GAUSS_SEIDEL = 0, NEWTON_RAPHSON };</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">enum</span> GUITheme { THEME_LIGHT = 0, THEME_DARK };</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="struct_simulation_data.html"> 11</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_simulation_data.html">SimulationData</a> {</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="comment">// General simulation data</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">double</span> basePower = 100.0;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">bool</span> faultAfterPowerFlow = <span class="keyword">true</span>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">bool</span> scPowerAfterPowerFlow = <span class="keyword">true</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="comment">// Power flow</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; PowerFlowMethod powerFlowMethod = GAUSS_SEIDEL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> accFator = 1.0;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span> powerFlowTolerance = 1e-7;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">int</span> powerFlowMaxIterations = 5000;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> stabilityFrequency = 60.0;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-2;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">double</span> stabilitySimulationTime = 10.0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> stabilityTolerance = 1e-8;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">int</span> stabilityMaxIterations = 100;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">int</span> controlTimeStepRatio = 10;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> plotTime = 1e-2;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> useCOI = <span class="keyword">true</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;};</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="struct_general_data.html"> 35</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_general_data.html">GeneralData</a> {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; wxLanguage language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; GUITheme theme = THEME_LIGHT;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;};</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_properties_data.html"> 40</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ~<a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="struct_simulation_data.html">SimulationData</a> GetSimulationPropertiesData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_simulData; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">void</span> SetSimulationPropertiesData(<a class="code" href="struct_simulation_data.html">SimulationData</a> simulationData) { m_simulData = simulationData; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_general_data.html">GeneralData</a> GetGeneralPropertiesData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_genData; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> SetGeneralPropertiesData(<a class="code" href="struct_general_data.html">GeneralData</a> generalData) { m_genData = generalData; }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="struct_simulation_data.html">SimulationData</a> m_simulData;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="struct_general_data.html">GeneralData</a> m_genData;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // PROPERTIESDATA_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00011">PropertiesData.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="struct_general_data_html"><div class="ttname"><a href="struct_general_data.html">GeneralData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00035">PropertiesData.h:35</a></div></div>
+<a href="_properties_data_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef PROPERTIESDATA_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define PROPERTIESDATA_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;wx/language.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">enum</span> PowerFlowMethod { GAUSS_SEIDEL = 0, NEWTON_RAPHSON };</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">enum</span> GUITheme { THEME_LIGHT = 0, THEME_DARK };</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="struct_simulation_data.html"> 28</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_simulation_data.html">SimulationData</a> {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="comment">// General simulation data</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> basePower = 100.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">bool</span> faultAfterPowerFlow = <span class="keyword">true</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">bool</span> scPowerAfterPowerFlow = <span class="keyword">true</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="comment">// Power flow</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; PowerFlowMethod powerFlowMethod = GAUSS_SEIDEL;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> accFator = 1.0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> powerFlowTolerance = 1e-7;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">int</span> powerFlowMaxIterations = 5000;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> stabilityFrequency = 60.0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">double</span> timeStep = 1e-2;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> stabilitySimulationTime = 10.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> stabilityTolerance = 1e-8;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">int</span> stabilityMaxIterations = 100;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">int</span> controlTimeStepRatio = 10;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> plotTime = 1e-2;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">bool</span> useCOI = <span class="keyword">true</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="struct_general_data.html"> 52</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_general_data.html">GeneralData</a> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxLanguage language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; GUITheme theme = THEME_LIGHT;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;};</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"><a class="line" href="class_properties_data.html"> 64</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; ~<a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <a class="code" href="struct_simulation_data.html">SimulationData</a> GetSimulationPropertiesData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_simulData; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> SetSimulationPropertiesData(<a class="code" href="struct_simulation_data.html">SimulationData</a> simulationData) { m_simulData = simulationData; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <a class="code" href="struct_general_data.html">GeneralData</a> GetGeneralPropertiesData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_genData; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> SetGeneralPropertiesData(<a class="code" href="struct_general_data.html">GeneralData</a> generalData) { m_genData = generalData; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="struct_simulation_data.html">SimulationData</a> m_simulData;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="struct_general_data.html">GeneralData</a> m_genData;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;};</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="preprocessor">#endif // PROPERTIESDATA_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="struct_simulation_data_html"><div class="ttname"><a href="struct_simulation_data.html">SimulationData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00028">PropertiesData.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="struct_general_data_html"><div class="ttname"><a href="struct_general_data.html">GeneralData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00052">PropertiesData.h:52</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>PropertiesData.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_properties_data_8h.html">PropertiesData.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_properties_form_8cpp_source.html b/docs/doxygen/html/_properties_form_8cpp_source.html
index df50ee0..82cfe31 100644
--- a/docs/doxygen/html/_properties_form_8cpp_source.html
+++ b/docs/doxygen/html/_properties_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,7 @@ $(document).ready(function(){initNavTree('_properties_form_8cpp_source.html','')
<div class="title">PropertiesForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This file was auto-generated by codelite&#39;s wxCrafter Plugin</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// wxCrafter project file: PropertiesForm.wxcp</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Do not modify this file by hand!</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Declare the bitmap loading function</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> bBitmapLoaded = <span class="keyword">false</span>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxBoxSizer* boxSizer_lvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; this-&gt;SetSizer(boxSizer_lvl1_1);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; boxSizer_lvl1_1-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_panelGeneral = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_notebook-&gt;AddPage(m_panelGeneral, _(<span class="stringliteral">&quot;General&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; wxBoxSizer* boxSizerLvl2_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_panelGeneral-&gt;SetSizer(boxSizerLvl2_1);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxBoxSizer* boxSizerLvl3_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_staticTextLanguage = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Language&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; boxSizerLvl3_1-&gt;Add(m_staticTextLanguage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxArrayString m_choiceLanguageArr;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceLanguageArr.Add(wxT(<span class="stringliteral">&quot;English&quot;</span>));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceLanguageArr.Add(wxT(<span class="stringliteral">&quot;Portuguese&quot;</span>));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_choiceLanguage = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceLanguageArr, 0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_choiceLanguage-&gt;SetSelection(0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; boxSizerLvl3_1-&gt;Add(m_choiceLanguage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; wxBoxSizer* boxSizerLvl3_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_staticTextTheme = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Theme&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; boxSizerLvl3_2-&gt;Add(m_staticTextTheme, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; wxArrayString m_choiceThemeArr;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceThemeArr.Add(wxT(<span class="stringliteral">&quot;Light&quot;</span>));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_choiceThemeArr.Add(wxT(<span class="stringliteral">&quot;Dark&quot;</span>));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_choiceTheme = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceThemeArr, 0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceTheme-&gt;SetSelection(0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; boxSizerLvl3_2-&gt;Add(m_choiceTheme, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; wxBoxSizer* boxSizer_bottonButtons = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; boxSizer_lvl1_1-&gt;Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; boxSizer_bottonButtons-&gt;Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_buttonCancel = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Cancel&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; SetName(wxT(<span class="stringliteral">&quot;GeneralPropertiesFormBase&quot;</span>));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_buttonCancel-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;GeneralPropertiesFormBase::~GeneralPropertiesFormBase()</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_buttonCancel-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; wxBoxSizer* boxSizer_lvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; this-&gt;SetSizer(boxSizer_lvl1_1);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; boxSizer_lvl1_1-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_panelGeneral = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_notebook-&gt;AddPage(m_panelGeneral, _(<span class="stringliteral">&quot;General&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; wxBoxSizer* boxSizerLvl2_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_panelGeneral-&gt;SetSizer(boxSizerLvl2_1);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; wxBoxSizer* boxSizerLvl3_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_staticTextBasePower = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Base power&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; boxSizerLvl3_1-&gt;Add(m_staticTextBasePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; wxBoxSizer* boxSizerLvl4_1 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; boxSizerLvl3_1-&gt;Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_textCtrlbasePower = <span class="keyword">new</span> wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(<span class="stringliteral">&quot;100,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_textCtrlbasePower-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; boxSizerLvl4_1-&gt;Add(m_textCtrlbasePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; wxArrayString m_choiceBasePowerArr;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;VA&quot;</span>));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;kVA&quot;</span>));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;MVA&quot;</span>));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_choiceBasePower = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBasePowerArr, 0);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_choiceBasePower-&gt;SetSelection(2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; boxSizerLvl4_1-&gt;Add(m_choiceBasePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; wxStaticBoxSizer* staticBoxSizerLvl3_2 = <span class="keyword">new</span> wxStaticBoxSizer( <span class="keyword">new</span> wxStaticBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Continuous calculation&quot;</span>)), wxVERTICAL);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; boxSizerLvl2_1-&gt;Add(staticBoxSizerLvl3_2, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_checkBoxFaultAfterPF = <span class="keyword">new</span> wxCheckBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Calculate fault after power flow&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_checkBoxFaultAfterPF-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; staticBoxSizerLvl3_2-&gt;Add(m_checkBoxFaultAfterPF, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_checkBoxSCPowerAfterPF = <span class="keyword">new</span> wxCheckBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Calculate short-circuit power after power flow&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; m_checkBoxSCPowerAfterPF-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; staticBoxSizerLvl3_2-&gt;Add(m_checkBoxSCPowerAfterPF, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_panelPF = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_notebook-&gt;AddPage(m_panelPF, _(<span class="stringliteral">&quot;Power flow&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; wxBoxSizer* boxSizerLvl2_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_panelPF-&gt;SetSizer(boxSizerLvl2_2);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; wxBoxSizer* boxSizerLvl3_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; boxSizerLvl2_2-&gt;Add(boxSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_staticTextPFMethod = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Solution method&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; boxSizerLvl3_3-&gt;Add(m_staticTextPFMethod, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; wxArrayString m_choicePFMethodArr;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_choicePFMethodArr.Add(wxT(<span class="stringliteral">&quot;Gauss-Seidel&quot;</span>));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_choicePFMethodArr.Add(wxT(<span class="stringliteral">&quot;Newton-Raphson&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_choicePFMethod = <span class="keyword">new</span> wxChoice(m_panelPF, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), m_choicePFMethodArr, 0);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_choicePFMethod-&gt;SetSelection(0);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; boxSizerLvl3_3-&gt;Add(m_choicePFMethod, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; wxGridSizer* gridSizerLvl_3_4 = <span class="keyword">new</span> wxGridSizer(0, 2, 0, 0);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; boxSizerLvl2_2-&gt;Add(gridSizerLvl_3_4, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; wxBoxSizer* boxSizerLvl4_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_staticTextAccFactor = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Acceleration factor&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; boxSizerLvl4_2-&gt;Add(m_staticTextAccFactor, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_textCtrlAccFactor = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;1,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_textCtrlAccFactor-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; boxSizerLvl4_2-&gt;Add(m_textCtrlAccFactor, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; wxBoxSizer* boxSizerLvl4_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_staticTextPFTolerance = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Tolerance&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; boxSizerLvl4_3-&gt;Add(m_staticTextPFTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_textCtrlPFTolerance = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;1e-7&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_textCtrlPFTolerance-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; boxSizerLvl4_3-&gt;Add(m_textCtrlPFTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxBoxSizer* boxSizerLvl4_4 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_staticTextPFMaxIterations = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Max. iterations&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; boxSizerLvl4_4-&gt;Add(m_staticTextPFMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_textCtrlPFMaxIterations = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;5000&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_textCtrlPFMaxIterations-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; boxSizerLvl4_4-&gt;Add(m_textCtrlPFMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_panelStability = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_notebook-&gt;AddPage(m_panelStability, _(<span class="stringliteral">&quot;Stability&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; wxBoxSizer* boxSizerLvl2_232 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_panelStability-&gt;SetSizer(boxSizerLvl2_232);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; wxGridSizer* gridSizerLvl_2_3 = <span class="keyword">new</span> wxGridSizer(0, 2, 0, 0);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; boxSizerLvl2_232-&gt;Add(gridSizerLvl_2_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; wxBoxSizer* boxSizerLvl3_6 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_6, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_staticTextTimeStep = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Time step&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; boxSizerLvl3_6-&gt;Add(m_staticTextTimeStep, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; wxBoxSizer* boxSizerLvl4_6 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; boxSizerLvl3_6-&gt;Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_textCtrlTimeStep = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;0,01&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; m_textCtrlTimeStep-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; boxSizerLvl4_6-&gt;Add(m_textCtrlTimeStep, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; m_staticTextSec_1 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; boxSizerLvl4_6-&gt;Add(m_staticTextSec_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; wxBoxSizer* boxSizerLvl3_7 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_7, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_staticTextTSimTime = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Simulation time&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; boxSizerLvl3_7-&gt;Add(m_staticTextTSimTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; wxBoxSizer* boxSizerLvl4_7 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; boxSizerLvl3_7-&gt;Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; m_textCtrlSimTime = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;10&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_textCtrlSimTime-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; boxSizerLvl4_7-&gt;Add(m_textCtrlSimTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_staticTextSec_2 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; boxSizerLvl4_7-&gt;Add(m_staticTextSec_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; wxBoxSizer* boxSizerLvl3_5 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_5, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_staticTextFreq = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;System frequency&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; boxSizerLvl3_5-&gt;Add(m_staticTextFreq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; wxBoxSizer* boxSizerLvl4_5 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; boxSizerLvl3_5-&gt;Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; m_textCtrlFreq = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;60,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; m_textCtrlFreq-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; boxSizerLvl4_5-&gt;Add(m_textCtrlFreq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; m_staticTextFreqUnit = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Hz&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; boxSizerLvl4_5-&gt;Add(m_staticTextFreqUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; wxBoxSizer* boxSizerLvl3_8 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_8, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_staticTextTStabTolerance = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Tolerance&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; boxSizerLvl3_8-&gt;Add(m_staticTextTStabTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; m_textCtrlStabTolerance = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;1e-8&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; m_textCtrlStabTolerance-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; boxSizerLvl3_8-&gt;Add(m_textCtrlStabTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; wxBoxSizer* boxSizerLvl3_9 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_9, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; m_staticTextTStabMaxIterations = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Max. Iterations&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; boxSizerLvl3_9-&gt;Add(m_staticTextTStabMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_textCtrlStabMaxIterations = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;100&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_textCtrlStabMaxIterations-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; boxSizerLvl3_9-&gt;Add(m_textCtrlStabMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; wxBoxSizer* boxSizerLvl3_10 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_10, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; m_staticTextCtrlStepRation = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Controls step ratio&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; boxSizerLvl3_10-&gt;Add(m_staticTextCtrlStepRation, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; m_textCtrlCtrlStepRatio = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;10&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_textCtrlCtrlStepRatio-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; boxSizerLvl3_10-&gt;Add(m_textCtrlCtrlStepRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; wxBoxSizer* boxSizerLvl3_11 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_11, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_staticTextPrintTime = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Plot time&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; boxSizerLvl3_11-&gt;Add(m_staticTextPrintTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; wxBoxSizer* boxSizerLvl4_8 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; boxSizerLvl3_11-&gt;Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; m_textCtrlPrintTime = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;0,01&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; m_textCtrlPrintTime-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; boxSizerLvl4_8-&gt;Add(m_textCtrlPrintTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_staticTextSec_4 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; boxSizerLvl4_8-&gt;Add(m_staticTextSec_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; m_checkBoxUseCOI = <span class="keyword">new</span> wxCheckBox(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Use center of inertia as reference&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_checkBoxUseCOI-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; boxSizerLvl2_232-&gt;Add(m_checkBoxUseCOI, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; wxBoxSizer* boxSizer_bottonButtons = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; boxSizer_lvl1_1-&gt;Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; boxSizer_bottonButtons-&gt;Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; m_buttonCancel = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Cancel&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; SetName(wxT(<span class="stringliteral">&quot;SimulationsSettingsFormBase&quot;</span>));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; m_choicePFMethod-&gt;Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; m_buttonCancel-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;}</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;SimulationsSettingsFormBase::~SimulationsSettingsFormBase()</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;{</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; m_choicePFMethod-&gt;Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_buttonCancel-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; wxBoxSizer* boxSizerMain = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; this-&gt;SetSizer(boxSizerMain);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; boxSizerMain-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; m_panelLogo = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; m_notebook-&gt;AddPage(m_panelLogo, _(<span class="stringliteral">&quot;About&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; wxBoxSizer* boxSizerLvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; m_panelLogo-&gt;SetSizer(boxSizerLvl1_1);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; m_staticBitmapLogo = <span class="keyword">new</span> wxStaticBitmap(m_panelLogo, wxID_ANY, wxXmlResource::Get()-&gt;LoadBitmap(wxT(<span class="stringliteral">&quot;About2017&quot;</span>)), wxDefaultPosition, wxDLG_UNIT(m_panelLogo, wxSize(-1,-1)), 0 );</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; boxSizerLvl1_1-&gt;Add(m_staticBitmapLogo, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; m_panelCredits = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; m_notebook-&gt;AddPage(m_panelCredits, _(<span class="stringliteral">&quot;Credits&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; wxBoxSizer* boxSizerLvl1_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; m_panelCredits-&gt;SetSizer(boxSizerLvl1_2);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; m_gridCredits = <span class="keyword">new</span> wxGrid(m_panelCredits, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelCredits, wxSize(-1,-1)), wxWANTS_CHARS);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; m_gridCredits-&gt;CreateGrid(0, 0);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; m_gridCredits-&gt;SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; m_gridCredits-&gt;SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2904</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; m_gridCredits-&gt;UseNativeColHeader(<span class="keyword">true</span>);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; m_gridCredits-&gt;EnableEditing(<span class="keyword">false</span>);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; boxSizerLvl1_2-&gt;Add(m_gridCredits, 1, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; m_panelLicense = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; m_notebook-&gt;AddPage(m_panelLicense, _(<span class="stringliteral">&quot;License&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; wxBoxSizer* boxSizerLvl1_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; m_panelLicense-&gt;SetSizer(boxSizerLvl1_3);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; m_richTextCtrlLicense = <span class="keyword">new</span> wxRichTextCtrl(m_panelLicense, wxID_ANY, wxT(<span class="stringliteral">&quot;&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelLicense, wxSize(-1,-1)), wxTE_MULTILINE|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxWANTS_CHARS);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; boxSizerLvl1_3-&gt;Add(m_richTextCtrlLicense, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; </div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; wxFlexGridSizer* flexGridSizer247 = <span class="keyword">new</span> wxFlexGridSizer(2, 2, 0, 0);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; flexGridSizer247-&gt;SetFlexibleDirection( wxBOTH );</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; flexGridSizer247-&gt;SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; flexGridSizer247-&gt;AddGrowableCol(1);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; boxSizerMain-&gt;Add(flexGridSizer247, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; m_staticTextVersionLabel = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Version:&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; flexGridSizer247-&gt;Add(m_staticTextVersionLabel, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; m_staticTextVersion = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Alpha 2017w37a&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; flexGridSizer247-&gt;Add(m_staticTextVersion, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; m_staticTextHome = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Home page:&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; flexGridSizer247-&gt;Add(m_staticTextHome, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; m_hyperLinkPSP = <span class="keyword">new</span> wxHyperlinkCtrl(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;https://thales1330.github.io/PSP/&quot;</span>), wxT(<span class="stringliteral">&quot;https://thales1330.github.io/PSP/&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxHL_DEFAULT_STYLE);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; m_hyperLinkPSP-&gt;SetNormalColour(wxColour(wxT(<span class="stringliteral">&quot;#0000FF&quot;</span>)));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; m_hyperLinkPSP-&gt;SetHoverColour(wxColour(wxT(<span class="stringliteral">&quot;#0000FF&quot;</span>)));</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; m_hyperLinkPSP-&gt;SetVisitedColour(wxColour(wxT(<span class="stringliteral">&quot;#FF0000&quot;</span>)));</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; </div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; flexGridSizer247-&gt;Add(m_hyperLinkPSP, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; boxSizerMain-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; </div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; SetName(wxT(<span class="stringliteral">&quot;AboutFormBase&quot;</span>));</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;AboutFormBase::~AboutFormBase()</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">// This file was auto-generated by codelite&#39;s wxCrafter Plugin</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment">// wxCrafter project file: PropertiesForm.wxcp</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">// Do not modify this file by hand!</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"></span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Declare the bitmap loading function</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">extern</span> <span class="keywordtype">void</span> wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">static</span> <span class="keywordtype">bool</span> bBitmapLoaded = <span class="keyword">false</span>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;GeneralPropertiesFormBase::GeneralPropertiesFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxBoxSizer* boxSizer_lvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; this-&gt;SetSizer(boxSizer_lvl1_1);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; </div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; boxSizer_lvl1_1-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; </div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_panelGeneral = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_notebook-&gt;AddPage(m_panelGeneral, _(<span class="stringliteral">&quot;General&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; </div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; wxBoxSizer* boxSizerLvl2_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_panelGeneral-&gt;SetSizer(boxSizerLvl2_1);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; wxBoxSizer* boxSizerLvl3_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; </div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; </div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_staticTextLanguage = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Language&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; </div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; boxSizerLvl3_1-&gt;Add(m_staticTextLanguage, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; </div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxArrayString m_choiceLanguageArr;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceLanguageArr.Add(wxT(<span class="stringliteral">&quot;English&quot;</span>));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceLanguageArr.Add(wxT(<span class="stringliteral">&quot;Portuguese&quot;</span>));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_choiceLanguage = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceLanguageArr, 0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_choiceLanguage-&gt;SetSelection(0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; </div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; boxSizerLvl3_1-&gt;Add(m_choiceLanguage, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; </div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; wxBoxSizer* boxSizerLvl3_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; </div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_2, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; </div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_staticTextTheme = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Theme&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; </div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; boxSizerLvl3_2-&gt;Add(m_staticTextTheme, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; </div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; wxArrayString m_choiceThemeArr;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceThemeArr.Add(wxT(<span class="stringliteral">&quot;Light&quot;</span>));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_choiceThemeArr.Add(wxT(<span class="stringliteral">&quot;Dark&quot;</span>));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_choiceTheme = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceThemeArr, 0);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceTheme-&gt;SetSelection(0);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; </div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; boxSizerLvl3_2-&gt;Add(m_choiceTheme, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; </div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; wxBoxSizer* boxSizer_bottonButtons = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; </div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; boxSizer_lvl1_1-&gt;Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; </div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; boxSizer_bottonButtons-&gt;Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; </div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; </div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; </div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_buttonCancel = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Cancel&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; </div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; </div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; </div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; SetName(wxT(<span class="stringliteral">&quot;GeneralPropertiesFormBase&quot;</span>));</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_buttonCancel-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;}</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;GeneralPropertiesFormBase::~GeneralPropertiesFormBase()</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;{</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_buttonCancel-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(GeneralPropertiesFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; </div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;SimulationsSettingsFormBase::SimulationsSettingsFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;{</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; </div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; wxBoxSizer* boxSizer_lvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; this-&gt;SetSizer(boxSizer_lvl1_1);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; </div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; </div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; boxSizer_lvl1_1-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; </div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_panelGeneral = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_notebook-&gt;AddPage(m_panelGeneral, _(<span class="stringliteral">&quot;General&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; </div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; wxBoxSizer* boxSizerLvl2_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_panelGeneral-&gt;SetSizer(boxSizerLvl2_1);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; </div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; wxBoxSizer* boxSizerLvl3_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; </div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; boxSizerLvl2_1-&gt;Add(boxSizerLvl3_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; </div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_staticTextBasePower = <span class="keyword">new</span> wxStaticText(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Base power&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; </div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; boxSizerLvl3_1-&gt;Add(m_staticTextBasePower, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; </div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; wxBoxSizer* boxSizerLvl4_1 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; </div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; boxSizerLvl3_1-&gt;Add(boxSizerLvl4_1, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; </div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_textCtrlbasePower = <span class="keyword">new</span> wxTextCtrl(m_panelGeneral, wxID_ANY, wxT(<span class="stringliteral">&quot;100,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_textCtrlbasePower-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; boxSizerLvl4_1-&gt;Add(m_textCtrlbasePower, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; wxArrayString m_choiceBasePowerArr;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;VA&quot;</span>));</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;kVA&quot;</span>));</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_choiceBasePowerArr.Add(wxT(<span class="stringliteral">&quot;MVA&quot;</span>));</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_choiceBasePower = <span class="keyword">new</span> wxChoice(m_panelGeneral, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), m_choiceBasePowerArr, 0);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_choiceBasePower-&gt;SetSelection(2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; </div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; boxSizerLvl4_1-&gt;Add(m_choiceBasePower, 0, wxLEFT|wxRIGHT|wxBOTTOM, WXC_FROM_DIP(5));</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; </div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; wxStaticBoxSizer* staticBoxSizerLvl3_2 = <span class="keyword">new</span> wxStaticBoxSizer( <span class="keyword">new</span> wxStaticBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Continuous calculation&quot;</span>)), wxVERTICAL);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; </div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; boxSizerLvl2_1-&gt;Add(staticBoxSizerLvl3_2, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; </div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; m_checkBoxFaultAfterPF = <span class="keyword">new</span> wxCheckBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Calculate fault after power flow&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_checkBoxFaultAfterPF-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; </div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; staticBoxSizerLvl3_2-&gt;Add(m_checkBoxFaultAfterPF, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; </div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_checkBoxSCPowerAfterPF = <span class="keyword">new</span> wxCheckBox(m_panelGeneral, wxID_ANY, _(<span class="stringliteral">&quot;Calculate short-circuit power after power flow&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelGeneral, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; m_checkBoxSCPowerAfterPF-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; </div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; staticBoxSizerLvl3_2-&gt;Add(m_checkBoxSCPowerAfterPF, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; </div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_panelPF = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_notebook-&gt;AddPage(m_panelPF, _(<span class="stringliteral">&quot;Power flow&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; </div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; wxBoxSizer* boxSizerLvl2_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_panelPF-&gt;SetSizer(boxSizerLvl2_2);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; </div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; wxBoxSizer* boxSizerLvl3_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; </div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; boxSizerLvl2_2-&gt;Add(boxSizerLvl3_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; </div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_staticTextPFMethod = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Solution method&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; </div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; boxSizerLvl3_3-&gt;Add(m_staticTextPFMethod, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; </div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; wxArrayString m_choicePFMethodArr;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_choicePFMethodArr.Add(wxT(<span class="stringliteral">&quot;Gauss-Seidel&quot;</span>));</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; m_choicePFMethodArr.Add(wxT(<span class="stringliteral">&quot;Newton-Raphson&quot;</span>));</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_choicePFMethod = <span class="keyword">new</span> wxChoice(m_panelPF, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), m_choicePFMethodArr, 0);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_choicePFMethod-&gt;SetSelection(0);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; </div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; boxSizerLvl3_3-&gt;Add(m_choicePFMethod, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; </div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; wxGridSizer* gridSizerLvl_3_4 = <span class="keyword">new</span> wxGridSizer(0, 2, 0, 0);</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; </div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; boxSizerLvl2_2-&gt;Add(gridSizerLvl_3_4, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; </div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; wxBoxSizer* boxSizerLvl4_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; </div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_2, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; </div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_staticTextAccFactor = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Acceleration factor&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; </div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; boxSizerLvl4_2-&gt;Add(m_staticTextAccFactor, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; </div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_textCtrlAccFactor = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;1,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_textCtrlAccFactor-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; </div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; boxSizerLvl4_2-&gt;Add(m_textCtrlAccFactor, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; </div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; wxBoxSizer* boxSizerLvl4_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; </div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; </div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_staticTextPFTolerance = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Tolerance&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; </div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; boxSizerLvl4_3-&gt;Add(m_staticTextPFTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; </div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_textCtrlPFTolerance = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;1e-7&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_textCtrlPFTolerance-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; </div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; boxSizerLvl4_3-&gt;Add(m_textCtrlPFTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; </div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxBoxSizer* boxSizerLvl4_4 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; </div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; gridSizerLvl_3_4-&gt;Add(boxSizerLvl4_4, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; </div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_staticTextPFMaxIterations = <span class="keyword">new</span> wxStaticText(m_panelPF, wxID_ANY, _(<span class="stringliteral">&quot;Max. iterations&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; </div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; boxSizerLvl4_4-&gt;Add(m_staticTextPFMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; </div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_textCtrlPFMaxIterations = <span class="keyword">new</span> wxTextCtrl(m_panelPF, wxID_ANY, wxT(<span class="stringliteral">&quot;5000&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelPF, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_textCtrlPFMaxIterations-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; </div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; boxSizerLvl4_4-&gt;Add(m_textCtrlPFMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; </div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_panelStability = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_notebook-&gt;AddPage(m_panelStability, _(<span class="stringliteral">&quot;Stability&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; </div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; wxBoxSizer* boxSizerLvl2_232 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_panelStability-&gt;SetSizer(boxSizerLvl2_232);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; </div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; wxGridSizer* gridSizerLvl_2_3 = <span class="keyword">new</span> wxGridSizer(0, 2, 0, 0);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; </div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; boxSizerLvl2_232-&gt;Add(gridSizerLvl_2_3, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; </div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; wxBoxSizer* boxSizerLvl3_6 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; </div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_6, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; </div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_staticTextTimeStep = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Time step&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; </div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; boxSizerLvl3_6-&gt;Add(m_staticTextTimeStep, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; </div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; wxBoxSizer* boxSizerLvl4_6 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; </div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; boxSizerLvl3_6-&gt;Add(boxSizerLvl4_6, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; </div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; m_textCtrlTimeStep = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;0,01&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; m_textCtrlTimeStep-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; </div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; boxSizerLvl4_6-&gt;Add(m_textCtrlTimeStep, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; </div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; m_staticTextSec_1 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; </div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; boxSizerLvl4_6-&gt;Add(m_staticTextSec_1, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; </div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; wxBoxSizer* boxSizerLvl3_7 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; </div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_7, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; </div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_staticTextTSimTime = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Simulation time&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; </div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; boxSizerLvl3_7-&gt;Add(m_staticTextTSimTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; </div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; wxBoxSizer* boxSizerLvl4_7 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; </div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; boxSizerLvl3_7-&gt;Add(boxSizerLvl4_7, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; </div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; m_textCtrlSimTime = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;10&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_textCtrlSimTime-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; </div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; boxSizerLvl4_7-&gt;Add(m_textCtrlSimTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; </div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_staticTextSec_2 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; </div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; boxSizerLvl4_7-&gt;Add(m_staticTextSec_2, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; </div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; wxBoxSizer* boxSizerLvl3_5 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; </div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_5, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; </div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_staticTextFreq = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;System frequency&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; </div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; boxSizerLvl3_5-&gt;Add(m_staticTextFreq, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; </div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; wxBoxSizer* boxSizerLvl4_5 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; </div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; boxSizerLvl3_5-&gt;Add(boxSizerLvl4_5, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; </div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; m_textCtrlFreq = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;60,0&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; m_textCtrlFreq-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; </div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; boxSizerLvl4_5-&gt;Add(m_textCtrlFreq, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; </div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; m_staticTextFreqUnit = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Hz&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; </div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; boxSizerLvl4_5-&gt;Add(m_staticTextFreqUnit, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; </div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; wxBoxSizer* boxSizerLvl3_8 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; </div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_8, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; </div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_staticTextTStabTolerance = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Tolerance&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; </div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; boxSizerLvl3_8-&gt;Add(m_staticTextTStabTolerance, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; </div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; m_textCtrlStabTolerance = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;1e-8&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; m_textCtrlStabTolerance-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; </div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; boxSizerLvl3_8-&gt;Add(m_textCtrlStabTolerance, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; </div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; wxBoxSizer* boxSizerLvl3_9 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; </div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_9, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; </div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; m_staticTextTStabMaxIterations = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Max. Iterations&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; </div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; boxSizerLvl3_9-&gt;Add(m_staticTextTStabMaxIterations, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; </div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_textCtrlStabMaxIterations = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;100&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_textCtrlStabMaxIterations-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; </div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; boxSizerLvl3_9-&gt;Add(m_textCtrlStabMaxIterations, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; </div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; wxBoxSizer* boxSizerLvl3_10 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; </div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_10, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; </div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; m_staticTextCtrlStepRation = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Controls step ratio&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; </div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; boxSizerLvl3_10-&gt;Add(m_staticTextCtrlStepRation, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; </div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; m_textCtrlCtrlStepRatio = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;10&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_textCtrlCtrlStepRatio-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; </div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; boxSizerLvl3_10-&gt;Add(m_textCtrlCtrlStepRatio, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxEXPAND|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; </div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; wxBoxSizer* boxSizerLvl3_11 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; </div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; gridSizerLvl_2_3-&gt;Add(boxSizerLvl3_11, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; </div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_staticTextPrintTime = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Plot time&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; </div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; boxSizerLvl3_11-&gt;Add(m_staticTextPrintTime, 0, wxLEFT|wxRIGHT|wxTOP|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; </div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; wxBoxSizer* boxSizerLvl4_8 = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; </div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; boxSizerLvl3_11-&gt;Add(boxSizerLvl4_8, 0, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; </div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; m_textCtrlPrintTime = <span class="keyword">new</span> wxTextCtrl(m_panelStability, wxID_ANY, wxT(<span class="stringliteral">&quot;0,01&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 3000</span></div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; m_textCtrlPrintTime-&gt;SetHint(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; </div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; boxSizerLvl4_8-&gt;Add(m_textCtrlPrintTime, 1, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; </div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_staticTextSec_4 = <span class="keyword">new</span> wxStaticText(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;s&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; </div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; boxSizerLvl4_8-&gt;Add(m_staticTextSec_4, 0, wxLEFT|wxRIGHT|wxBOTTOM|wxALIGN_CENTER_VERTICAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; </div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; m_checkBoxUseCOI = <span class="keyword">new</span> wxCheckBox(m_panelStability, wxID_ANY, _(<span class="stringliteral">&quot;Use center of inertia as reference&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelStability, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_checkBoxUseCOI-&gt;SetValue(<span class="keyword">true</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; </div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; boxSizerLvl2_232-&gt;Add(m_checkBoxUseCOI, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; </div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; wxBoxSizer* boxSizer_bottonButtons = <span class="keyword">new</span> wxBoxSizer(wxHORIZONTAL);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; </div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; boxSizer_lvl1_1-&gt;Add(boxSizer_bottonButtons, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; </div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; boxSizer_bottonButtons-&gt;Add(0, 0, 1, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; </div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; </div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; </div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; m_buttonCancel = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Cancel&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; </div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; boxSizer_bottonButtons-&gt;Add(m_buttonCancel, 0, wxALL|wxALIGN_RIGHT, WXC_FROM_DIP(5));</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; </div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; </div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; </div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; SetName(wxT(<span class="stringliteral">&quot;SimulationsSettingsFormBase&quot;</span>));</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; }</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; }</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; m_choicePFMethod-&gt;Connect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; m_buttonCancel-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; </div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;}</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;SimulationsSettingsFormBase::~SimulationsSettingsFormBase()</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160;{</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; m_choicePFMethod-&gt;Disconnect(wxEVT_COMMAND_CHOICE_SELECTED, wxCommandEventHandler(SimulationsSettingsFormBase::OnPFMethodChoiceSelected), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonOKClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_buttonCancel-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(SimulationsSettingsFormBase::OnButtonCancelClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; </div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160;}</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;AboutFormBase::AboutFormBase(wxWindow* parent, wxWindowID <span class="keywordtype">id</span>, <span class="keyword">const</span> wxString&amp; title, <span class="keyword">const</span> wxPoint&amp; pos, <span class="keyword">const</span> wxSize&amp; size, <span class="keywordtype">long</span> style)</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; : wxDialog(parent, id, title, pos, size, style)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span> ( !bBitmapLoaded ) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="comment">// We need to initialise the default bitmap handler</span></div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; wxXmlResource::Get()-&gt;AddHandler(<span class="keyword">new</span> wxBitmapXmlHandler);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; wxCDAD0InitBitmapResources();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; bBitmapLoaded = <span class="keyword">true</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; }</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; </div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; wxBoxSizer* boxSizerMain = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; this-&gt;SetSizer(boxSizerMain);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; </div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; m_notebook = <span class="keyword">new</span> wxNotebook(<span class="keyword">this</span>, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxBK_DEFAULT);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; m_notebook-&gt;SetName(wxT(<span class="stringliteral">&quot;m_notebook&quot;</span>));</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; </div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; boxSizerMain-&gt;Add(m_notebook, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; </div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; m_panelLogo = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; m_notebook-&gt;AddPage(m_panelLogo, _(<span class="stringliteral">&quot;About&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; </div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; wxBoxSizer* boxSizerLvl1_1 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; m_panelLogo-&gt;SetSizer(boxSizerLvl1_1);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; </div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; m_staticBitmapLogo = <span class="keyword">new</span> wxStaticBitmap(m_panelLogo, wxID_ANY, wxXmlResource::Get()-&gt;LoadBitmap(wxT(<span class="stringliteral">&quot;About2017&quot;</span>)), wxDefaultPosition, wxDLG_UNIT(m_panelLogo, wxSize(-1,-1)), 0 );</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; </div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; boxSizerLvl1_1-&gt;Add(m_staticBitmapLogo, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; </div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; m_panelCredits = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; m_notebook-&gt;AddPage(m_panelCredits, _(<span class="stringliteral">&quot;Credits&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; </div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; wxBoxSizer* boxSizerLvl1_2 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; m_panelCredits-&gt;SetSizer(boxSizerLvl1_2);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; </div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; m_gridCredits = <span class="keyword">new</span> wxGrid(m_panelCredits, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_panelCredits, wxSize(-1,-1)), wxWANTS_CHARS);</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; m_gridCredits-&gt;CreateGrid(0, 0);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; m_gridCredits-&gt;SetRowLabelAlignment(wxALIGN_RIGHT, wxALIGN_CENTRE);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; m_gridCredits-&gt;SetColLabelAlignment(wxALIGN_CENTRE, wxALIGN_CENTRE);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2904</span></div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; m_gridCredits-&gt;UseNativeColHeader(<span class="keyword">true</span>);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; m_gridCredits-&gt;EnableEditing(<span class="keyword">false</span>);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; </div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; boxSizerLvl1_2-&gt;Add(m_gridCredits, 1, wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; </div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; m_panelLicense = <span class="keyword">new</span> wxPanel(m_notebook, wxID_ANY, wxDefaultPosition, wxDLG_UNIT(m_notebook, wxSize(-1,-1)), wxTAB_TRAVERSAL);</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; m_notebook-&gt;AddPage(m_panelLicense, _(<span class="stringliteral">&quot;License&quot;</span>), <span class="keyword">false</span>);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; </div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; wxBoxSizer* boxSizerLvl1_3 = <span class="keyword">new</span> wxBoxSizer(wxVERTICAL);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; m_panelLicense-&gt;SetSizer(boxSizerLvl1_3);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; </div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; m_richTextCtrlLicense = <span class="keyword">new</span> wxRichTextCtrl(m_panelLicense, wxID_ANY, wxT(<span class="stringliteral">&quot;&quot;</span>), wxDefaultPosition, wxDLG_UNIT(m_panelLicense, wxSize(-1,-1)), wxTE_MULTILINE|wxTE_PROCESS_TAB|wxTE_PROCESS_ENTER|wxWANTS_CHARS);</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; </div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; boxSizerLvl1_3-&gt;Add(m_richTextCtrlLicense, 1, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; </div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; wxFlexGridSizer* flexGridSizer247 = <span class="keyword">new</span> wxFlexGridSizer(2, 2, 0, 0);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; flexGridSizer247-&gt;SetFlexibleDirection( wxBOTH );</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; flexGridSizer247-&gt;SetNonFlexibleGrowMode( wxFLEX_GROWMODE_SPECIFIED );</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; flexGridSizer247-&gt;AddGrowableCol(1);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; </div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; boxSizerMain-&gt;Add(flexGridSizer247, 0, wxALL|wxEXPAND, WXC_FROM_DIP(5));</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; </div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; m_staticTextVersionLabel = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Version:&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; </div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; flexGridSizer247-&gt;Add(m_staticTextVersionLabel, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; </div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; m_staticTextVersion = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Alpha 2017w38b&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; </div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; flexGridSizer247-&gt;Add(m_staticTextVersion, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; </div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; m_staticTextHome = <span class="keyword">new</span> wxStaticText(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;Home page:&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; </div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; flexGridSizer247-&gt;Add(m_staticTextHome, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; </div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; m_hyperLinkPSP = <span class="keyword">new</span> wxHyperlinkCtrl(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;https://thales1330.github.io/PSP/&quot;</span>), wxT(<span class="stringliteral">&quot;https://thales1330.github.io/PSP/&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), wxHL_DEFAULT_STYLE);</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; m_hyperLinkPSP-&gt;SetNormalColour(wxColour(wxT(<span class="stringliteral">&quot;#0000FF&quot;</span>)));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; m_hyperLinkPSP-&gt;SetHoverColour(wxColour(wxT(<span class="stringliteral">&quot;#0000FF&quot;</span>)));</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; m_hyperLinkPSP-&gt;SetVisitedColour(wxColour(wxT(<span class="stringliteral">&quot;#FF0000&quot;</span>)));</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; </div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; flexGridSizer247-&gt;Add(m_hyperLinkPSP, 0, wxALL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; </div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; m_buttonOK = <span class="keyword">new</span> wxButton(<span class="keyword">this</span>, wxID_ANY, _(<span class="stringliteral">&quot;OK&quot;</span>), wxDefaultPosition, wxDLG_UNIT(<span class="keyword">this</span>, wxSize(-1,-1)), 0);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; </div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; boxSizerMain-&gt;Add(m_buttonOK, 0, wxALL|wxALIGN_CENTER_HORIZONTAL, WXC_FROM_DIP(5));</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; </div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; </div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;<span class="preprocessor"> #if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(m_notebook)){</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(m_notebook);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; wxPersistenceManager::Get().Restore(m_notebook);</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; }</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160;<span class="preprocessor"> #endif</span></div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; </div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; SetName(wxT(<span class="stringliteral">&quot;AboutFormBase&quot;</span>));</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; SetSize(-1,-1);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordflow">if</span> (GetSizer()) {</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; GetSizer()-&gt;Fit(<span class="keyword">this</span>);</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; }</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span>(GetParent()) {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; CentreOnParent(wxBOTH);</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; CentreOnScreen(wxBOTH);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;<span class="preprocessor">#if wxVERSION_NUMBER &gt;= 2900</span></div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">if</span>(!wxPersistenceManager::Get().Find(<span class="keyword">this</span>)) {</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; wxPersistenceManager::Get().RegisterAndRestore(<span class="keyword">this</span>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; wxPersistenceManager::Get().Restore(<span class="keyword">this</span>);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; }</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="comment">// Connect events</span></div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; m_buttonOK-&gt;Connect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; </div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;}</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160;AboutFormBase::~AboutFormBase()</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160;{</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; m_buttonOK-&gt;Disconnect(wxEVT_COMMAND_BUTTON_CLICKED, wxCommandEventHandler(AboutFormBase::OnOKButtonClick), NULL, <span class="keyword">this</span>);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; </div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;}</div></div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
diff --git a/docs/doxygen/html/_properties_form_8h_source.html b/docs/doxygen/html/_properties_form_8h_source.html
index 6126fc6..0f1d842 100644
--- a/docs/doxygen/html/_properties_form_8h_source.html
+++ b/docs/doxygen/html/_properties_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_properties_form_bitmaps_8cpp_source.html b/docs/doxygen/html/_properties_form_bitmaps_8cpp_source.html
index d63f4a6..aeb0d0b 100644
--- a/docs/doxygen/html/_properties_form_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_properties_form_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_rate_limiter_8cpp_source.html b/docs/doxygen/html/_rate_limiter_8cpp_source.html
index db501e8..f44a803 100644
--- a/docs/doxygen/html/_rate_limiter_8cpp_source.html
+++ b/docs/doxygen/html/_rate_limiter_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,18 @@ $(document).ready(function(){initNavTree('_rate_limiter_8cpp_source.html','');})
<div class="title">RateLimiter.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;RateLimiter.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;RateLimiterForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;RateLimiter::RateLimiter(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;RateLimiter::~RateLimiter() {}</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580"> 17</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; std::vector&lt;wxPoint2DDouble&gt; axis;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 0));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; axis.push_back(m_position + wxPoint2DDouble(13, 0));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; axis.push_back(m_position + wxPoint2DDouble(0, -13));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; axis.push_back(m_position + wxPoint2DDouble(0, 13));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; DrawLine(axis, GL_LINES);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::vector&lt;wxPoint2DDouble&gt; limSymbol;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(10, -10));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DrawLine(limSymbol);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; DrawNodes();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60"> 49</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;{</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;}</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e"> 60</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;{</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; UpdatePoints();</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;}</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;<span class="keywordtype">void</span> RateLimiter::UpdatePoints()</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;{</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keywordtype">bool</span> RateLimiter::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">double</span> rate = (input - m_output) / timeStep;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">bool</span> reachLimit = <span class="keyword">false</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(rate &gt; m_upLimit) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; rate = m_upLimit;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; reachLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rate &lt; m_lowLimit) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; rate = m_lowLimit;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; reachLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(reachLimit)</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_output += rate * timeStep;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_output = input;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;}</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823"> 116</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a>()</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;{</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* copy = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(m_elementID);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a7d16df402b56e0025bab076aa071be60"><div class="ttname"><a href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00049">RateLimiter.cpp:49</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a3eb4d933b1d069808617306c78835f3e"><div class="ttname"><a href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00060">RateLimiter.cpp:60</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a4f1152238b97fcf76a0bee258e971823"><div class="ttname"><a href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00116">RateLimiter.cpp:116</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a6afc319e3a165776b8a429b9bbe38580"><div class="ttname"><a href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00017">RateLimiter.cpp:17</a></div></div>
-<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00007">RateLimiterForm.h:7</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_8h.html">RateLimiter.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_form_8h.html">RateLimiterForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RateLimiter::RateLimiter(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-18, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; nodeIn-&gt;StartMove(m_position);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(18, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_nodeList.push_back(nodeIn);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;RateLimiter::~RateLimiter() {}</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580"> 34</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Plot symbol.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;wxPoint2DDouble&gt; axis;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; axis.push_back(m_position + wxPoint2DDouble(-13, 0));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; axis.push_back(m_position + wxPoint2DDouble(13, 0));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; axis.push_back(m_position + wxPoint2DDouble(0, -13));</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; axis.push_back(m_position + wxPoint2DDouble(0, 13));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawLine(axis, GL_LINES);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::vector&lt;wxPoint2DDouble&gt; limSymbol;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(10, -10));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; limSymbol.push_back(m_position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; DrawLine(limSymbol);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; DrawNodes();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;}</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60"> 66</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>* form = <span class="keyword">new</span> <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(form-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; form-&gt;Destroy();</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;}</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e"> 77</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;{</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; UpdatePoints();</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;}</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;<span class="keywordtype">void</span> RateLimiter::UpdatePoints()</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;{</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(18, 0));</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-18, 0));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, 18));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -18));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29"> 113</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">RateLimiter::Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;{</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">double</span> rate = (input - m_output) / timeStep;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">bool</span> reachLimit = <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(rate &gt; m_upLimit) {</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; rate = m_upLimit;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; reachLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(rate &lt; m_lowLimit) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; rate = m_lowLimit;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; reachLimit = <span class="keyword">true</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(reachLimit)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_output += rate * timeStep;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_output = input;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;}</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823"> 133</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a>()</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;{</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* copy = <span class="keyword">new</span> <a class="code" href="class_rate_limiter.html">RateLimiter</a>(m_elementID);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a7d16df402b56e0025bab076aa071be60"><div class="ttname"><a href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00066">RateLimiter.cpp:66</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a2697e0f56b574739651fa2126b315e29"><div class="ttname"><a href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">RateLimiter::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculate the rate and limits it if exceeds. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00113">RateLimiter.cpp:113</a></div></div>
+<div class="ttc" id="_rate_limiter_8h_html"><div class="ttname"><a href="_rate_limiter_8h.html">RateLimiter.h</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a3eb4d933b1d069808617306c78835f3e"><div class="ttname"><a href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00077">RateLimiter.cpp:77</a></div></div>
+<div class="ttc" id="_rate_limiter_form_8h_html"><div class="ttname"><a href="_rate_limiter_form_8h.html">RateLimiterForm.h</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a4f1152238b97fcf76a0bee258e971823"><div class="ttname"><a href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00133">RateLimiter.cpp:133</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a6afc319e3a165776b8a429b9bbe38580"><div class="ttname"><a href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00034">RateLimiter.cpp:34</a></div></div>
+<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdoc">Form to edit the rate limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00031">RateLimiterForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_rate_limiter_8h.html b/docs/doxygen/html/_rate_limiter_8h.html
new file mode 100644
index 0000000..1721183
--- /dev/null
+++ b/docs/doxygen/html/_rate_limiter_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/RateLimiter.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_rate_limiter_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">RateLimiter.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_rate_limiter_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rate_limiter.html">RateLimiter</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Limits the rising and/or falling rate.<br />
+ <a href="class_rate_limiter.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_rate_limiter_8h.html">RateLimiter.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_rate_limiter_8h_source.html b/docs/doxygen/html/_rate_limiter_8h_source.html
index 6d7bab0..3374e92 100644
--- a/docs/doxygen/html/_rate_limiter_8h_source.html
+++ b/docs/doxygen/html/_rate_limiter_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,24 @@ $(document).ready(function(){initNavTree('_rate_limiter_8h_source.html','');});
<div class="title">RateLimiter.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef RATELIMITER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define RATELIMITER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_rate_limiter.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ~<a class="code" href="class_rate_limiter.html">RateLimiter</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc"> 15</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147"> 16</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> GetUpLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_upLimit; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> GetLowLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lowLimit; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">void</span> SetUpLimit(<span class="keywordtype">double</span> upLimit) { m_upLimit = upLimit; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> SetLowLimit(<span class="keywordtype">double</span> lowLimit) { m_lowLimit = lowLimit; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; </div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">GetCopy</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> m_upLimit = 5.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> m_lowLimit = -5.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;};</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#endif // RATELIMITER_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a7d16df402b56e0025bab076aa071be60"><div class="ttname"><a href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00049">RateLimiter.cpp:49</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a7c1ce7440e82613b455054dd8447f147"><div class="ttname"><a href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147">RateLimiter::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00016">RateLimiter.h:16</a></div></div>
-<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a3eb4d933b1d069808617306c78835f3e"><div class="ttname"><a href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00060">RateLimiter.cpp:60</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a4f1152238b97fcf76a0bee258e971823"><div class="ttname"><a href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00116">RateLimiter.cpp:116</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_addf0eef395781b8584063a9061be59dc"><div class="ttname"><a href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc">RateLimiter::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00015">RateLimiter.h:15</a></div></div>
-<div class="ttc" id="class_rate_limiter_html_a6afc319e3a165776b8a429b9bbe38580"><div class="ttname"><a href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00017">RateLimiter.cpp:17</a></div></div>
-<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00007">RateLimiterForm.h:7</a></div></div>
+<a href="_rate_limiter_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef RATELIMITER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define RATELIMITER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_rate_limiter.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; ~<a class="code" href="class_rate_limiter.html">RateLimiter</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc"> 39</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00040"></a><span class="lineno"><a class="line" href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147"> 40</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> GetUpLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_upLimit; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> GetLowLimit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_lowLimit; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">void</span> SetUpLimit(<span class="keywordtype">double</span> upLimit) { m_upLimit = upLimit; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> SetLowLimit(<span class="keywordtype">double</span> lowLimit) { m_lowLimit = lowLimit; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">GetCopy</a>();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">double</span> m_upLimit = 5.0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> m_lowLimit = -5.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;};</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="preprocessor">#endif // RATELIMITER_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a7d16df402b56e0025bab076aa071be60"><div class="ttname"><a href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00066">RateLimiter.cpp:66</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a7c1ce7440e82613b455054dd8447f147"><div class="ttname"><a href="class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147">RateLimiter::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00040">RateLimiter.h:40</a></div></div>
+<div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a2697e0f56b574739651fa2126b315e29"><div class="ttname"><a href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">RateLimiter::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculate the rate and limits it if exceeds. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00113">RateLimiter.cpp:113</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_rate_limiter_html_a3eb4d933b1d069808617306c78835f3e"><div class="ttname"><a href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00077">RateLimiter.cpp:77</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a4f1152238b97fcf76a0bee258e971823"><div class="ttname"><a href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00133">RateLimiter.cpp:133</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_addf0eef395781b8584063a9061be59dc"><div class="ttname"><a href="class_rate_limiter.html#addf0eef395781b8584063a9061be59dc">RateLimiter::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00039">RateLimiter.h:39</a></div></div>
+<div class="ttc" id="class_rate_limiter_html_a6afc319e3a165776b8a429b9bbe38580"><div class="ttname"><a href="class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580">RateLimiter::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8cpp_source.html#l00034">RateLimiter.cpp:34</a></div></div>
+<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdoc">Form to edit the rate limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00031">RateLimiterForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>RateLimiter.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_rate_limiter_8h.html">RateLimiter.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_rate_limiter_form_8cpp_source.html b/docs/doxygen/html/_rate_limiter_form_8cpp_source.html
index 1641d75..dcbc939 100644
--- a/docs/doxygen/html/_rate_limiter_form_8cpp_source.html
+++ b/docs/doxygen/html/_rate_limiter_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_rate_limiter_form_8cpp_source.html','
<div class="title">RateLimiterForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;RateLimiterForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;RateLimiter.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;RateLimiterForm::RateLimiterForm(wxWindow* parent, <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter) : <a class="code" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; </div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_rateLimiter = rateLimiter;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_parent = parent;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_textCtrlUpLimit-&gt;SetValue(m_rateLimiter-&gt;StringFromDouble(m_rateLimiter-&gt;GetUpLimit()));</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_textCtrlLowLimit-&gt;SetValue(m_rateLimiter-&gt;StringFromDouble(m_rateLimiter-&gt;GetLowLimit()));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;RateLimiterForm::~RateLimiterForm() {}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">bool</span> RateLimiterForm::ValidateData()</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> upLimit;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">double</span> lowLimit;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span>(!m_rateLimiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlUpLimit-&gt;GetValue(), upLimit,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Upper limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(!m_rateLimiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlLowLimit-&gt;GetValue(), lowLimit,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Lower limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_rateLimiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_rateLimiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keywordtype">void</span> RateLimiterForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_form_8h.html">RateLimiterForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_rate_limiter_8h.html">RateLimiter.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;RateLimiterForm::RateLimiterForm(wxWindow* parent, <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter) : <a class="code" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_rateLimiter = rateLimiter;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_parent = parent;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_textCtrlUpLimit-&gt;SetValue(m_rateLimiter-&gt;StringFromDouble(m_rateLimiter-&gt;GetUpLimit()));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlLowLimit-&gt;SetValue(m_rateLimiter-&gt;StringFromDouble(m_rateLimiter-&gt;GetLowLimit()));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;RateLimiterForm::~RateLimiterForm() {}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">bool</span> RateLimiterForm::ValidateData()</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> upLimit;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">double</span> lowLimit;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(!m_rateLimiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlUpLimit-&gt;GetValue(), upLimit,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Upper limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(!m_rateLimiter-&gt;DoubleFromString(<span class="keyword">this</span>, m_textCtrlLowLimit-&gt;GetValue(), lowLimit,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Lower limit\&quot;.&quot;</span>)))</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_rateLimiter-&gt;SetUpLimit(upLimit);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_rateLimiter-&gt;SetLowLimit(lowLimit);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">void</span> RateLimiterForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;}</div><div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
<div class="ttc" id="class_rate_limiter_form_base_html"><div class="ttname"><a href="class_rate_limiter_form_base.html">RateLimiterFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00861">ElementForm.h:861</a></div></div>
+<div class="ttc" id="_rate_limiter_8h_html"><div class="ttname"><a href="_rate_limiter_8h.html">RateLimiter.h</a></div></div>
+<div class="ttc" id="_rate_limiter_form_8h_html"><div class="ttname"><a href="_rate_limiter_form_8h.html">RateLimiterForm.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_rate_limiter_form_8h.html b/docs/doxygen/html/_rate_limiter_form_8h.html
new file mode 100644
index 0000000..a2da6a5
--- /dev/null
+++ b/docs/doxygen/html/_rate_limiter_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/RateLimiterForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_rate_limiter_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">RateLimiterForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_rate_limiter_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rate_limiter_form.html">RateLimiterForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the rate limit control data. <a href="class_rate_limiter_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_rate_limiter_form_8h.html">RateLimiterForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_rate_limiter_form_8h_source.html b/docs/doxygen/html/_rate_limiter_form_8h_source.html
index 31108ce..900c9e8 100644
--- a/docs/doxygen/html/_rate_limiter_form_8h_source.html
+++ b/docs/doxygen/html/_rate_limiter_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_rate_limiter_form_8h_source.html','')
<div class="title">RateLimiterForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef RATELIMITERFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define RATELIMITERFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_rate_limiter_form.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a> : <span class="keyword">public</span> <a class="code" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>(wxWindow* parent, <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) {EndModal(wxID_OK);}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; </div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* m_rateLimiter = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // RATELIMITERFORM_H</span></div><div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00008">RateLimiter.h:8</a></div></div>
+<a href="_rate_limiter_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef RATELIMITERFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define RATELIMITERFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter.html">RateLimiter</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_rate_limiter_form.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a> : <span class="keyword">public</span> <a class="code" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>(wxWindow* parent, <a class="code" href="class_rate_limiter.html">RateLimiter</a>* rateLimiter);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_rate_limiter_form.html">RateLimiterForm</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_OK); }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="class_rate_limiter.html">RateLimiter</a>* m_rateLimiter = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;};</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="preprocessor">#endif // RATELIMITERFORM_H</span></div><div class="ttc" id="class_rate_limiter_html"><div class="ttname"><a href="class_rate_limiter.html">RateLimiter</a></div><div class="ttdoc">Limits the rising and/or falling rate. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_8h_source.html#l00032">RateLimiter.h:32</a></div></div>
<div class="ttc" id="class_rate_limiter_form_base_html"><div class="ttname"><a href="class_rate_limiter_form_base.html">RateLimiterFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00861">ElementForm.h:861</a></div></div>
-<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00007">RateLimiterForm.h:7</a></div></div>
+<div class="ttc" id="class_rate_limiter_form_html"><div class="ttname"><a href="class_rate_limiter_form.html">RateLimiterForm</a></div><div class="ttdoc">Form to edit the rate limit control data. </div><div class="ttdef"><b>Definition:</b> <a href="_rate_limiter_form_8h_source.html#l00031">RateLimiterForm.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>RateLimiterForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_rate_limiter_form_8h.html">RateLimiterForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_reactive_shunt_element_form_8cpp_source.html b/docs/doxygen/html/_reactive_shunt_element_form_8cpp_source.html
index 7ab661c..223e470 100644
--- a/docs/doxygen/html/_reactive_shunt_element_form_8cpp_source.html
+++ b/docs/doxygen/html/_reactive_shunt_element_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,21 @@ $(document).ready(function(){initNavTree('_reactive_shunt_element_form_8cpp_sour
<div class="title">ReactiveShuntElementForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;ReactiveShuntElementForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; : <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>(parent)</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Capacitor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_parent = parent;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_capacitor = capacitor;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, <a class="code" href="class_inductor.html">Inductor</a>* inductor)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; : <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>(parent)</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;{</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Inductor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_parent = parent;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_inductor = inductor;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;}</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;ReactiveShuntElementForm::~ReactiveShuntElementForm() {}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;<span class="keywordtype">void</span> ReactiveShuntElementForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;{</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> ReactiveShuntElementForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(m_capacitor) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_capacitor);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Capacitor: Switching&quot;</span>));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_inductor) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_inductor);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Inductor: Switching&quot;</span>));</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keywordtype">bool</span> ReactiveShuntElementForm::ValidateData()</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(m_capacitor) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(!m_capacitor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_capacitor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_inductor) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(!m_inductor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_inductor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;}</div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; : <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>(parent)</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;{</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetElectricalData();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Capacitor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_parent = parent;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_capacitor = capacitor;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;ReactiveShuntElementForm::ReactiveShuntElementForm(wxWindow* parent, <a class="code" href="class_inductor.html">Inductor</a>* inductor)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; : <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>(parent)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetElectricalData();</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Inductor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_parent = parent;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_inductor = inductor;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;ReactiveShuntElementForm::~ReactiveShuntElementForm() {}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keywordtype">void</span> ReactiveShuntElementForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;{</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keywordtype">void</span> ReactiveShuntElementForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(m_capacitor) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_capacitor);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Capacitor: Switching&quot;</span>));</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_inductor) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_inductor);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Inductor: Switching&quot;</span>));</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keywordtype">bool</span> ReactiveShuntElementForm::ValidateData()</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(m_capacitor) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(!m_capacitor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; }</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_capacitor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_inductor) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(!m_inductor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_inductor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;}</div><div class="ttc" id="_reactive_shunt_element_form_8h_html"><div class="ttname"><a href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a></div></div>
+<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
<div class="ttc" id="class_reactive_shunt_element_form_base_html"><div class="ttname"><a href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00597">ElementForm.h:597</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_reactive_shunt_element_form_8h.html b/docs/doxygen/html/_reactive_shunt_element_form_8h.html
new file mode 100644
index 0000000..970bb11
--- /dev/null
+++ b/docs/doxygen/html/_reactive_shunt_element_form_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/ReactiveShuntElementForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_reactive_shunt_element_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">ReactiveShuntElementForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+<code>#include &lt;wx/log.h&gt;</code><br />
+</div>
+<p><a href="_reactive_shunt_element_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the reactive shunt element power data. <a href="class_reactive_shunt_element_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_reactive_shunt_element_form_8h_source.html b/docs/doxygen/html/_reactive_shunt_element_form_8h_source.html
index 2843cfe..90b36ac 100644
--- a/docs/doxygen/html/_reactive_shunt_element_form_8h_source.html
+++ b/docs/doxygen/html/_reactive_shunt_element_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,17 @@ $(document).ready(function(){initNavTree('_reactive_shunt_element_form_8h_source
<div class="title">ReactiveShuntElementForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef REACTIVESHUNTELEMENTFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define REACTIVESHUNTELEMENTFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/log.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_reactive_shunt_element_form.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a> : <span class="keyword">public</span> <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(wxWindow* parent, <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(wxWindow* parent, <a class="code" href="class_inductor.html">Inductor</a>* inductor);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* m_capacitor = NULL;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* m_inductor = NULL;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;};</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#endif // REACTIVESHUNTELEMENTFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
+<a href="_reactive_shunt_element_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef REACTIVESHUNTELEMENTFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define REACTIVESHUNTELEMENTFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;wx/log.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_reactive_shunt_element_form.html"> 34</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a> : <span class="keyword">public</span> <a class="code" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(wxWindow* parent, <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>(wxWindow* parent, <a class="code" href="class_inductor.html">Inductor</a>* inductor);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxWindow* m_parent;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* m_capacitor = NULL;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* m_inductor = NULL;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;};</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="preprocessor">#endif // REACTIVESHUNTELEMENTFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
<div class="ttc" id="class_reactive_shunt_element_form_base_html"><div class="ttname"><a href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00597">ElementForm.h:597</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00010">ReactiveShuntElementForm.h:10</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_reactive_shunt_element_form_html"><div class="ttname"><a href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a></div><div class="ttdoc">Form to edit the reactive shunt element power data. </div><div class="ttdef"><b>Definition:</b> <a href="_reactive_shunt_element_form_8h_source.html#l00034">ReactiveShuntElementForm.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>ReactiveShuntElementForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_shunt_8cpp_source.html b/docs/doxygen/html/_shunt_8cpp_source.html
index 3697b10..5823fd9 100644
--- a/docs/doxygen/html/_shunt_8cpp_source.html
+++ b/docs/doxygen/html/_shunt_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,24 @@ $(document).ready(function(){initNavTree('_shunt_8cpp_source.html','');});
<div class="title">Shunt.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Shunt.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;Shunt::Shunt() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Shunt::~Shunt() {}</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="keywordtype">void</span> Shunt::UpdateSwitchesPosition()</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; }</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;}</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"><a class="line" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3"> 15</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;{</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; }</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;}</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"><a class="line" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd"> 28</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(element) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">if</span>(element == m_parentList[0]) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865"> 50</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"><a class="line" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b"> 57</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979"> 67</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(nodeRect.Contains(position)) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef"> 81</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e"> 108</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"><a class="line" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703"> 124</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;}</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keywordtype">void</span> Shunt::DrawGround(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; std::vector&lt;wxPoint2DDouble&gt; groundPts;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; groundPts.push_back(position);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; groundPts.push_back(position + wxPoint2DDouble(0, 10));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; groundPts.push_back(position + wxPoint2DDouble(10, 10));</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-6, 15));</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; groundPts.push_back(position + wxPoint2DDouble(6, 15));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-3, 20));</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; groundPts.push_back(position + wxPoint2DDouble(3, 20));</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; DrawLine(groundPts, GL_LINES);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;}</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;<span class="keywordtype">void</span> Shunt::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;{</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>: {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>: {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_shunt_html_a23d2fed4e9b6a69bc4527b4345bd5bbd"><div class="ttname"><a href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00028">Shunt.cpp:28</a></div></div>
-<div class="ttc" id="class_shunt_html_abe01dcdf8bc0ba6fc97d41673889fb8e"><div class="ttname"><a href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00108">Shunt.cpp:108</a></div></div>
-<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00057">Shunt.cpp:57</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_shunt_8h.html">Shunt.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;Shunt::Shunt() : <a class="code" href="class_power_element.html">PowerElement</a>() {}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Shunt::~Shunt() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keywordtype">void</span> Shunt::UpdateSwitchesPosition()</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], m_pointList[2]);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_pointList[1] = m_pointList[0];</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; }</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3"> 32</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size(); i++) {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"><a class="line" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd"> 45</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(element) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(element == m_parentList[0]) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;}</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"><a class="line" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865"> 67</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;{</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;}</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"><a class="line" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b"> 74</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;{</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;}</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"><a class="line" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979"> 84</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;{</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(nodeRect.Contains(position)) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_activeNodeID = 1;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"><a class="line" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef"> 98</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e"> 125</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a>()</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxRect2DDouble nodeRect(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]-&gt;Intersects(nodeRect)) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;}</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"><a class="line" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703"> 141</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;{</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;}</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;<span class="keywordtype">void</span> Shunt::DrawGround(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; std::vector&lt;wxPoint2DDouble&gt; groundPts;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; groundPts.push_back(position);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; groundPts.push_back(position + wxPoint2DDouble(0, 10));</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-10, 10));</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; groundPts.push_back(position + wxPoint2DDouble(10, 10));</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-6, 15));</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; groundPts.push_back(position + wxPoint2DDouble(6, 15));</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; groundPts.push_back(position + wxPoint2DDouble(-3, 20));</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; groundPts.push_back(position + wxPoint2DDouble(3, 20));</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; DrawLine(groundPts, GL_LINES);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;}</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keywordtype">void</span> Shunt::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;{</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a>: {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a>: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; edges.push_back(m_pointList[1]);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; edges.push_back(m_pointList[2]);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_shunt_8h_html"><div class="ttname"><a href="_shunt_8h.html">Shunt.h</a></div></div>
+<div class="ttc" id="class_shunt_html_a23d2fed4e9b6a69bc4527b4345bd5bbd"><div class="ttname"><a href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00045">Shunt.cpp:45</a></div></div>
+<div class="ttc" id="class_shunt_html_abe01dcdf8bc0ba6fc97d41673889fb8e"><div class="ttname"><a href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00125">Shunt.cpp:125</a></div></div>
+<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00074">Shunt.cpp:74</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_shunt_html_a7a732f1fb5f54b89e33957194fefd703"><div class="ttname"><a href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00124">Shunt.cpp:124</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00064">PowerElement.h:64</a></div></div>
-<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00015">Shunt.cpp:15</a></div></div>
-<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00050">Shunt.cpp:50</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00063">PowerElement.h:63</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
-<div class="ttc" id="class_shunt_html_aacb9fdd05533a8322596b130c70774ef"><div class="ttname"><a href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00081">Shunt.cpp:81</a></div></div>
-<div class="ttc" id="class_shunt_html_ae325a441a44c2a78c08289292fa00979"><div class="ttname"><a href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00067">Shunt.cpp:67</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
+<div class="ttc" id="class_shunt_html_a7a732f1fb5f54b89e33957194fefd703"><div class="ttname"><a href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00141">Shunt.cpp:141</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a5e06e77c5b3ee38885f0321cc0276b81">PF_TO_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00081">PowerElement.h:81</a></div></div>
+<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00032">Shunt.cpp:32</a></div></div>
+<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00067">Shunt.cpp:67</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a2c1d794112edc994905b320596aba869">PF_TO_BUS</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00080">PowerElement.h:80</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00079">PowerElement.h:79</a></div></div>
+<div class="ttc" id="class_shunt_html_aacb9fdd05533a8322596b130c70774ef"><div class="ttname"><a href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00098">Shunt.cpp:98</a></div></div>
+<div class="ttc" id="class_shunt_html_ae325a441a44c2a78c08289292fa00979"><div class="ttname"><a href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00084">Shunt.cpp:84</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_shunt_8h.html b/docs/doxygen/html/_shunt_8h.html
new file mode 100644
index 0000000..6562b7d
--- /dev/null
+++ b/docs/doxygen/html/_shunt_8h.html
@@ -0,0 +1,116 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Shunt.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_shunt_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Shunt.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_bus_8h_source.html">Bus.h</a>&quot;</code><br />
+</div>
+<p><a href="_shunt_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_shunt.html">Shunt</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Abstract class for shunt power elements. <a href="class_shunt.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_shunt_8h.html">Shunt.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_shunt_8h_source.html b/docs/doxygen/html/_shunt_8h_source.html
index 670bf95..193f8f3 100644
--- a/docs/doxygen/html/_shunt_8h_source.html
+++ b/docs/doxygen/html/_shunt_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,26 +88,27 @@ $(document).ready(function(){initNavTree('_shunt_8h_source.html','');});
<div class="title">Shunt.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SHUNT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SHUNT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"><a class="line" href="class_shunt.html"> 7</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_shunt.html">Shunt</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;{</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_shunt.html">Shunt</a>();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; ~<a class="code" href="class_shunt.html">Shunt</a>();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; </div><div class="line"><a name="l00013"></a><span class="lineno"><a class="line" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658"> 13</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe"> 14</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">UpdateNodes</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">void</span> DrawGround(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#endif // SHUNT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_shunt_html_a23d2fed4e9b6a69bc4527b4345bd5bbd"><div class="ttname"><a href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00028">Shunt.cpp:28</a></div></div>
-<div class="ttc" id="class_shunt_html_abe01dcdf8bc0ba6fc97d41673889fb8e"><div class="ttname"><a href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00108">Shunt.cpp:108</a></div></div>
-<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00057">Shunt.cpp:57</a></div></div>
-<div class="ttc" id="class_shunt_html_a7a732f1fb5f54b89e33957194fefd703"><div class="ttname"><a href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00124">Shunt.cpp:124</a></div></div>
-<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00015">Shunt.cpp:15</a></div></div>
-<div class="ttc" id="class_shunt_html_a449431a2044b838d35cbb991aa1de658"><div class="ttname"><a href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Shunt::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00013">Shunt.h:13</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00050">Shunt.cpp:50</a></div></div>
-<div class="ttc" id="class_shunt_html_aacb9fdd05533a8322596b130c70774ef"><div class="ttname"><a href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00081">Shunt.cpp:81</a></div></div>
-<div class="ttc" id="class_shunt_html_ae325a441a44c2a78c08289292fa00979"><div class="ttname"><a href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00067">Shunt.cpp:67</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00007">Shunt.h:7</a></div></div>
-<div class="ttc" id="class_shunt_html_afdbf0c51f9630589937298329bb041fe"><div class="ttname"><a href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Shunt::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00014">Shunt.h:14</a></div></div>
+<a href="_shunt_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SHUNT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SHUNT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"><a class="line" href="class_shunt.html"> 31</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_shunt.html">Shunt</a> : <span class="keyword">public</span> <a class="code" href="class_power_element.html">PowerElement</a></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <a class="code" href="class_shunt.html">Shunt</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; ~<a class="code" href="class_shunt.html">Shunt</a>();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658"> 37</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe"> 38</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Move</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">MoveNode</a>(<a class="code" href="class_element.html">Element</a>* element, wxPoint2DDouble position);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">StartMove</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">RemoveParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">NodeContains</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">UpdateNodes</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">void</span> UpdateSwitchesPosition();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">void</span> DrawGround(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">bool</span> m_inserted = <span class="keyword">false</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;};</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // SHUNT_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_shunt_html_a23d2fed4e9b6a69bc4527b4345bd5bbd"><div class="ttname"><a href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *element, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00045">Shunt.cpp:45</a></div></div>
+<div class="ttc" id="class_shunt_html_abe01dcdf8bc0ba6fc97d41673889fb8e"><div class="ttname"><a href="class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e">Shunt::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00125">Shunt.cpp:125</a></div></div>
+<div class="ttc" id="class_shunt_html_a665d9a8c291d427e666567c6df34321b"><div class="ttname"><a href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00074">Shunt.cpp:74</a></div></div>
+<div class="ttc" id="class_shunt_html_a7a732f1fb5f54b89e33957194fefd703"><div class="ttname"><a href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00141">Shunt.cpp:141</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_shunt_html_aa98b8a2f097fc02fee1ea874e19480f3"><div class="ttname"><a href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00032">Shunt.cpp:32</a></div></div>
+<div class="ttc" id="class_shunt_html_a449431a2044b838d35cbb991aa1de658"><div class="ttname"><a href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Shunt::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00037">Shunt.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_shunt_html_a56d6136d647f64cf490dd9d7720f6865"><div class="ttname"><a href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00067">Shunt.cpp:67</a></div></div>
+<div class="ttc" id="class_shunt_html_aacb9fdd05533a8322596b130c70774ef"><div class="ttname"><a href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00098">Shunt.cpp:98</a></div></div>
+<div class="ttc" id="class_shunt_html_ae325a441a44c2a78c08289292fa00979"><div class="ttname"><a href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8cpp_source.html#l00084">Shunt.cpp:84</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_shunt_html"><div class="ttname"><a href="class_shunt.html">Shunt</a></div><div class="ttdoc">Abstract class for shunt power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00031">Shunt.h:31</a></div></div>
+<div class="ttc" id="class_shunt_html_afdbf0c51f9630589937298329bb041fe"><div class="ttname"><a href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Shunt::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_shunt_8h_source.html#l00038">Shunt.h:38</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Shunt.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_shunt_8h.html">Shunt.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_simulations_settings_form_8cpp_source.html b/docs/doxygen/html/_simulations_settings_form_8cpp_source.html
index 666a8fc..3050651 100644
--- a/docs/doxygen/html/_simulations_settings_form_8cpp_source.html
+++ b/docs/doxygen/html/_simulations_settings_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,14 +88,16 @@ $(document).ready(function(){initNavTree('_simulations_settings_form_8cpp_source
<div class="title">SimulationsSettingsForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;SimulationsSettingsForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;SimulationsSettingsForm::SimulationsSettingsForm(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_properties = properties;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetSimulationPropertiesData();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_textCtrlbasePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.basePower));</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordflow">switch</span>(data.basePowerUnit) {</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_choiceBasePower-&gt;SetSelection(0);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_choiceBasePower-&gt;SetSelection(1);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_choiceBasePower-&gt;SetSelection(2);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_choiceBasePower-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_checkBoxFaultAfterPF-&gt;SetValue(data.faultAfterPowerFlow);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_checkBoxSCPowerAfterPF-&gt;SetValue(data.scPowerAfterPowerFlow);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">switch</span>(data.powerFlowMethod) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">case</span> GAUSS_SEIDEL: {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_choicePFMethod-&gt;SetSelection(0);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">case</span> NEWTON_RAPHSON: {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choicePFMethod-&gt;SetSelection(1);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_textCtrlAccFactor-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_choicePFMethod-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_textCtrlAccFactor-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.accFator));</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_textCtrlPFTolerance-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.powerFlowTolerance));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_textCtrlPFMaxIterations-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.powerFlowMaxIterations));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_textCtrlTimeStep-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.timeStep));</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_textCtrlSimTime-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.stabilitySimulationTime));</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_textCtrlFreq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.stabilityFrequency));</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_textCtrlStabTolerance-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.stabilityTolerance));</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_textCtrlStabMaxIterations-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.stabilityMaxIterations));</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_textCtrlCtrlStepRatio-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.controlTimeStepRatio));</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_textCtrlPrintTime-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.plotTime));</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_checkBoxUseCOI-&gt;SetValue(data.useCOI);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;SimulationsSettingsForm::~SimulationsSettingsForm() {}</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keywordtype">void</span> SimulationsSettingsForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<span class="keywordtype">bool</span> SimulationsSettingsForm::ValidateData()</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetSimulationPropertiesData();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlbasePower-&gt;GetValue(), data.basePower,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Base power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">switch</span>(m_choiceBasePower-&gt;GetSelection()) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; data.faultAfterPowerFlow = m_checkBoxFaultAfterPF-&gt;GetValue();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; data.scPowerAfterPowerFlow = m_checkBoxSCPowerAfterPF-&gt;GetValue();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">switch</span>(m_choicePFMethod-&gt;GetSelection()) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; data.powerFlowMethod = GAUSS_SEIDEL;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.powerFlowMethod = NEWTON_RAPHSON;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlAccFactor-&gt;GetValue(), data.accFator,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Acceleration factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlPFTolerance-&gt;GetValue(), data.powerFlowTolerance,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Tolerance (Power flow)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlPFMaxIterations-&gt;GetValue(), data.powerFlowMaxIterations,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max. iterations (Power flow)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlTimeStep-&gt;GetValue(), data.timeStep,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time step\&quot;.&quot;</span>)))</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlSimTime-&gt;GetValue(), data.stabilitySimulationTime,</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Simulation time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlFreq-&gt;GetValue(), data.stabilityFrequency,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;System frequency\&quot;.&quot;</span>)))</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlStabTolerance-&gt;GetValue(), data.stabilityTolerance,</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Tolerance (Stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlStabMaxIterations-&gt;GetValue(), data.stabilityMaxIterations,</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max. iterations (Stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlCtrlStepRatio-&gt;GetValue(), data.controlTimeStepRatio,</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Controls step ratio\&quot;.&quot;</span>)))</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlPrintTime-&gt;GetValue(), data.plotTime,</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Plot time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; data.useCOI = m_checkBoxUseCOI-&gt;GetValue();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_properties-&gt;SetSimulationPropertiesData(data);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;}</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;<span class="keywordtype">void</span> SimulationsSettingsForm::OnPFMethodChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;{</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">if</span>(m_choicePFMethod-&gt;GetSelection() == 0)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_textCtrlAccFactor-&gt;Enable();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_textCtrlAccFactor-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="class_element_html_acfd2c0fe1af5a8ad6da393fb711fd69a"><div class="ttname"><a href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a></div><div class="ttdeci">static bool DoubleFromString(wxWindow *parent, wxString strValue, double &amp;value, wxString errorMsg)</div><div class="ttdoc">Get a double value from a string. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00272">Element.cpp:272</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;SimulationsSettingsForm::SimulationsSettingsForm(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; : <a class="code" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_properties = properties;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetSimulationPropertiesData();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_textCtrlbasePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.basePower));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">switch</span>(data.basePowerUnit) {</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_choiceBasePower-&gt;SetSelection(0);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_choiceBasePower-&gt;SetSelection(1);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_choiceBasePower-&gt;SetSelection(2);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_choiceBasePower-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_checkBoxFaultAfterPF-&gt;SetValue(data.faultAfterPowerFlow);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_checkBoxSCPowerAfterPF-&gt;SetValue(data.scPowerAfterPowerFlow);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">switch</span>(data.powerFlowMethod) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> GAUSS_SEIDEL: {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_choicePFMethod-&gt;SetSelection(0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> NEWTON_RAPHSON: {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choicePFMethod-&gt;SetSelection(1);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_textCtrlAccFactor-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_choicePFMethod-&gt;SetSelection(wxNOT_FOUND);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_textCtrlAccFactor-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.accFator));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_textCtrlPFTolerance-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.powerFlowTolerance));</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_textCtrlPFMaxIterations-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.powerFlowMaxIterations));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_textCtrlTimeStep-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.timeStep));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_textCtrlSimTime-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.stabilitySimulationTime));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_textCtrlFreq-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a>(data.stabilityFrequency));</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_textCtrlStabTolerance-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.stabilityTolerance));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; m_textCtrlStabMaxIterations-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.stabilityMaxIterations));</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_textCtrlCtrlStepRatio-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, data.controlTimeStepRatio));</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_textCtrlPrintTime-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%g&quot;</span>, data.plotTime));</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_checkBoxUseCOI-&gt;SetValue(data.useCOI);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;}</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;SimulationsSettingsForm::~SimulationsSettingsForm() {}</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> SimulationsSettingsForm::OnButtonOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keywordtype">bool</span> SimulationsSettingsForm::ValidateData()</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">auto</span> data = m_properties-&gt;GetSimulationPropertiesData();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlbasePower-&gt;GetValue(), data.basePower,</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Base power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">switch</span>(m_choiceBasePower-&gt;GetSelection()) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data.basePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.faultAfterPowerFlow = m_checkBoxFaultAfterPF-&gt;GetValue();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; data.scPowerAfterPowerFlow = m_checkBoxSCPowerAfterPF-&gt;GetValue();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">switch</span>(m_choicePFMethod-&gt;GetSelection()) {</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; data.powerFlowMethod = GAUSS_SEIDEL;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.powerFlowMethod = NEWTON_RAPHSON;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlAccFactor-&gt;GetValue(), data.accFator,</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Acceleration factor\&quot;.&quot;</span>)))</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlPFTolerance-&gt;GetValue(), data.powerFlowTolerance,</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Tolerance (Power flow)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlPFMaxIterations-&gt;GetValue(), data.powerFlowMaxIterations,</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max. iterations (Power flow)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlTimeStep-&gt;GetValue(), data.timeStep,</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Time step\&quot;.&quot;</span>)))</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlSimTime-&gt;GetValue(), data.stabilitySimulationTime,</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Simulation time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlFreq-&gt;GetValue(), data.stabilityFrequency,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;System frequency\&quot;.&quot;</span>)))</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlStabTolerance-&gt;GetValue(), data.stabilityTolerance,</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Tolerance (Stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlStabMaxIterations-&gt;GetValue(), data.stabilityMaxIterations,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max. iterations (Stability)\&quot;.&quot;</span>)))</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a>(<span class="keyword">this</span>, m_textCtrlCtrlStepRatio-&gt;GetValue(), data.controlTimeStepRatio,</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Controls step ratio\&quot;.&quot;</span>)))</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>(!<a class="code" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a>(<span class="keyword">this</span>, m_textCtrlPrintTime-&gt;GetValue(), data.plotTime,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Plot time\&quot;.&quot;</span>)))</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; data.useCOI = m_checkBoxUseCOI-&gt;GetValue();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_properties-&gt;SetSimulationPropertiesData(data);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keywordtype">void</span> SimulationsSettingsForm::OnPFMethodChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">if</span>(m_choicePFMethod-&gt;GetSelection() == 0)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_textCtrlAccFactor-&gt;Enable();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_textCtrlAccFactor-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="_simulations_settings_form_8h_html"><div class="ttname"><a href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a></div></div>
+<div class="ttc" id="class_element_html_acfd2c0fe1af5a8ad6da393fb711fd69a"><div class="ttname"><a href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">Element::DoubleFromString</a></div><div class="ttdeci">static bool DoubleFromString(wxWindow *parent, wxString strValue, double &amp;value, wxString errorMsg)</div><div class="ttdoc">Get a double value from a string. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00292">Element.cpp:292</a></div></div>
<div class="ttc" id="class_simulations_settings_form_base_html"><div class="ttname"><a href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00078">PropertiesForm.h:78</a></div></div>
-<div class="ttc" id="class_element_html_a4c93a9e20ed0ca0c376cf412b4347159"><div class="ttname"><a href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a></div><div class="ttdeci">static bool IntFromString(wxWindow *parent, wxString strValue, int &amp;value, wxString errorMsg)</div><div class="ttdoc">Convert a string to int. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00286">Element.cpp:286</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
+<div class="ttc" id="class_element_html_a4c93a9e20ed0ca0c376cf412b4347159"><div class="ttname"><a href="class_element.html#a4c93a9e20ed0ca0c376cf412b4347159">Element::IntFromString</a></div><div class="ttdeci">static bool IntFromString(wxWindow *parent, wxString strValue, int &amp;value, wxString errorMsg)</div><div class="ttdoc">Convert a string to int. Show a error message if the conversion fail. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00306">Element.cpp:306</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_simulations_settings_form_8h.html b/docs/doxygen/html/_simulations_settings_form_8h.html
new file mode 100644
index 0000000..71fac47
--- /dev/null
+++ b/docs/doxygen/html/_simulations_settings_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SimulationsSettingsForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_simulations_settings_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SimulationsSettingsForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;PropertiesForm.h&quot;</code><br />
+</div>
+<p><a href="_simulations_settings_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_simulations_settings_form.html">SimulationsSettingsForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the simulation data. <a href="class_simulations_settings_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_simulations_settings_form_8h_source.html b/docs/doxygen/html/_simulations_settings_form_8h_source.html
index 939c0ba..f10796a 100644
--- a/docs/doxygen/html/_simulations_settings_form_8h_source.html
+++ b/docs/doxygen/html/_simulations_settings_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_simulations_settings_form_8h_source.h
<div class="title">SimulationsSettingsForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SIMULATIONSSETTINGSFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SIMULATIONSSETTINGSFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_simulations_settings_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a> : <span class="keyword">public</span> <a class="code" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFMethodChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; </div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;};</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#endif // SIMULATIONSSETTINGSFORM_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
+<a href="_simulations_settings_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SIMULATIONSSETTINGSFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SIMULATIONSSETTINGSFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;PropertiesForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_simulations_settings_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a> : <span class="keyword">public</span> <a class="code" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>(wxWindow* parent, <a class="code" href="class_properties_data.html">PropertiesData</a>* properties);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPFMethodChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnButtonOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif // SIMULATIONSSETTINGSFORM_H</span></div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
<div class="ttc" id="class_simulations_settings_form_base_html"><div class="ttname"><a href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_form_8h_source.html#l00078">PropertiesForm.h:78</a></div></div>
-<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00008">SimulationsSettingsForm.h:8</a></div></div>
+<div class="ttc" id="class_simulations_settings_form_html"><div class="ttname"><a href="class_simulations_settings_form.html">SimulationsSettingsForm</a></div><div class="ttdoc">Form to edit the simulation data. </div><div class="ttdef"><b>Definition:</b> <a href="_simulations_settings_form_8h_source.html#l00032">SimulationsSettingsForm.h:32</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SimulationsSettingsForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_sum_8cpp_source.html b/docs/doxygen/html/_sum_8cpp_source.html
index 126cb4a..953673a 100644
--- a/docs/doxygen/html/_sum_8cpp_source.html
+++ b/docs/doxygen/html/_sum_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,20 @@ $(document).ready(function(){initNavTree('_sum_8cpp_source.html','');});
<div class="title">Sum.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Sum.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SumForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ConnectionLine.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;Sum::Sum(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 9 - m_height / 2), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; nodeIn1-&gt;StartMove(m_position);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn2 =</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 27 - m_height / 2), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; nodeIn2-&gt;StartMove(m_position);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_nodeList.push_back(nodeIn1);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_nodeList.push_back(nodeIn2);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_signalList.push_back(SIGNAL_POSITIVE);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_signalList.push_back(SIGNAL_NEGATIVE);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; UpdatePoints();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;Sum::~Sum() {}</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b"> 26</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Plot signals.</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; wxPoint2DDouble signalOffset[4];</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxPoint2DDouble sigmaOffset;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; signalOffset[0] = wxPoint2DDouble(6, 0);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; signalOffset[1] = wxPoint2DDouble(12, 0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; signalOffset[2] = wxPoint2DDouble(9, -3);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; signalOffset[3] = wxPoint2DDouble(9, 3);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; sigmaOffset = wxPoint2DDouble(6, 0);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; signalOffset[0] = wxPoint2DDouble(-3, 9);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; signalOffset[1] = wxPoint2DDouble(3, 9);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; signalOffset[2] = wxPoint2DDouble(0, 6);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; signalOffset[3] = wxPoint2DDouble(0, 12);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; sigmaOffset = wxPoint2DDouble(0, 6);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; signalOffset[0] = wxPoint2DDouble(-6, 0);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; signalOffset[1] = wxPoint2DDouble(-12, 0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; signalOffset[2] = wxPoint2DDouble(-9, -3);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; signalOffset[3] = wxPoint2DDouble(-9, 3);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; sigmaOffset = wxPoint2DDouble(-6, 0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; signalOffset[0] = wxPoint2DDouble(-3, -9);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; signalOffset[1] = wxPoint2DDouble(3, -9);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; signalOffset[2] = wxPoint2DDouble(0, -6);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; signalOffset[3] = wxPoint2DDouble(0, -12);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; sigmaOffset = wxPoint2DDouble(0, -6);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size() - 1; ++i) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;wxPoint2DDouble&gt; hLine;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; hLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[0]);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; hLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[1]);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; DrawLine(hLine);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_POSITIVE) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; std::vector&lt;wxPoint2DDouble&gt; vLine;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; vLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[2]);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; vLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[3]);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; DrawLine(vLine);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Plot sigma.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; std::vector&lt;wxPoint2DDouble&gt; sigma;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(4, 9) + sigmaOffset);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(-6, 9) + sigmaOffset);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(0, 0) + sigmaOffset);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(-6, -9) + sigmaOffset);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(4, -9) + sigmaOffset);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DrawLine(sigma);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; DrawNodes();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;}</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"><a class="line" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b"> 95</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;{</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="class_sum_form.html">SumForm</a>* sumForm = <span class="keyword">new</span> <a class="code" href="class_sum_form.html">SumForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(sumForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; sumForm-&gt;Destroy();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; sumForm-&gt;Destroy();</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keywordtype">void</span> Sum::UpdatePoints()</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_height = 18.0 * (m_nodeList.size() - 1);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_width = 36.0;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_width = 18.0 * (m_nodeList.size() - 1);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_height = 42.0;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size() - 1; ++i) {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 9 + 18 * i - m_height / 2));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 9 - 18 * i, -m_height / 2));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, m_height / 2 - 9 - 18 * i));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(9 + 18 * i - m_width / 2, m_height / 2));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; SetPosition(m_position); <span class="comment">// Update rect.</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;}</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;<span class="keywordtype">void</span> Sum::AddInNode()</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;{</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <a class="code" href="class_node.html">Node</a>* newNode = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble(0, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; newNode-&gt;SetAngle(m_angle);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_nodeList.insert(m_nodeList.end() - 1, newNode);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;<span class="keywordtype">void</span> Sum::RemoveInNode()</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeToRemove = *(m_nodeList.end() - 2);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">bool</span> foundChild = <span class="keyword">false</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">auto</span> childNodeList = child-&gt;GetNodeList();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = childNodeList.begin(), itEndN = childNodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(node == nodeToRemove) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; RemoveChild(child);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; foundChild = <span class="keyword">true</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(foundChild) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_nodeList.erase(m_nodeList.end() - 2);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;}</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"><a class="line" href="class_sum.html#a738bcb564fec2764055e4785227b5eea"> 166</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;{</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; UpdatePoints();</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;}</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keywordtype">bool</span> Sum::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;{</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; std::vector&lt;double&gt; inputVector;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = m_nodeList.begin(), itNEnd = m_nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != Node::NODE_OUT) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(!node-&gt;IsConnected()) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; inputVector.push_back(0.0);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = m_childList.begin(), itCEnd = m_childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(childNode == node) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; inputVector.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(m_signalList.size() != inputVector.size()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_output = 0.0;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_signalList.size(); ++i) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_POSITIVE)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_output += inputVector[i];</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_NEGATIVE)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_output -= inputVector[i];</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; }</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;}</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"><a class="line" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6"> 221</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a>()</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;{</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <a class="code" href="class_sum.html">Sum</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(m_elementID);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;}</div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00008">SumForm.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_sum_html_a8c4bfb1dc965d8ac246de59d1f10888b"><div class="ttname"><a href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00095">Sum.cpp:95</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_sum_html_a738bcb564fec2764055e4785227b5eea"><div class="ttname"><a href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00166">Sum.cpp:166</a></div></div>
-<div class="ttc" id="class_sum_html_a0da96514e0462e47d3f57b79ddc457b6"><div class="ttname"><a href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00221">Sum.cpp:221</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00367">Element.h:367</a></div></div>
-<div class="ttc" id="class_sum_html_a31dbb6867b17188b4a8cc650983da57b"><div class="ttname"><a href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00026">Sum.cpp:26</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_8h.html">Sum.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_form_8h.html">SumForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_connection_line_8h.html">ConnectionLine.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;Sum::Sum(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_width = m_height = 36.0;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 9 - m_height / 2), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; nodeIn1-&gt;StartMove(m_position);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeIn2 =</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 27 - m_height / 2), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; nodeIn2-&gt;StartMove(m_position);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeOut = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; nodeOut-&gt;SetAngle(180.0);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; nodeOut-&gt;StartMove(m_position);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_nodeList.push_back(nodeIn1);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_nodeList.push_back(nodeIn2);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_nodeList.push_back(nodeOut);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_signalList.push_back(SIGNAL_POSITIVE);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_signalList.push_back(SIGNAL_NEGATIVE);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; UpdatePoints();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;Sum::~Sum() {}</div><div class="line"><a name="l00043"></a><span class="lineno"><a class="line" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b"> 43</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Plot signals.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glLineWidth(2.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxPoint2DDouble signalOffset[4];</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wxPoint2DDouble sigmaOffset;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; signalOffset[0] = wxPoint2DDouble(6, 0);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; signalOffset[1] = wxPoint2DDouble(12, 0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; signalOffset[2] = wxPoint2DDouble(9, -3);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; signalOffset[3] = wxPoint2DDouble(9, 3);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; sigmaOffset = wxPoint2DDouble(6, 0);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; signalOffset[0] = wxPoint2DDouble(-3, 9);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; signalOffset[1] = wxPoint2DDouble(3, 9);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; signalOffset[2] = wxPoint2DDouble(0, 6);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; signalOffset[3] = wxPoint2DDouble(0, 12);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; sigmaOffset = wxPoint2DDouble(0, 6);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; signalOffset[0] = wxPoint2DDouble(-6, 0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; signalOffset[1] = wxPoint2DDouble(-12, 0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; signalOffset[2] = wxPoint2DDouble(-9, -3);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; signalOffset[3] = wxPoint2DDouble(-9, 3);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; sigmaOffset = wxPoint2DDouble(-6, 0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; signalOffset[0] = wxPoint2DDouble(-3, -9);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; signalOffset[1] = wxPoint2DDouble(3, -9);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; signalOffset[2] = wxPoint2DDouble(0, -6);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; signalOffset[3] = wxPoint2DDouble(0, -12);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; sigmaOffset = wxPoint2DDouble(0, -6);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size() - 1; ++i) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::vector&lt;wxPoint2DDouble&gt; hLine;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; hLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[0]);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; hLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[1]);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; DrawLine(hLine);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_POSITIVE) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::vector&lt;wxPoint2DDouble&gt; vLine;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; vLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[2]);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; vLine.push_back(m_nodeList[i]-&gt;GetPosition() + signalOffset[3]);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; DrawLine(vLine);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="comment">// Plot sigma.</span></div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; std::vector&lt;wxPoint2DDouble&gt; sigma;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(4, 9) + sigmaOffset);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(-6, 9) + sigmaOffset);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(0, 0) + sigmaOffset);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(-6, -9) + sigmaOffset);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; sigma.push_back(m_position + wxPoint2DDouble(4, -9) + sigmaOffset);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; glColor4d(0.0, 0.3, 1.0, 1.0);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; DrawLine(sigma);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; DrawNodes();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;}</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"><a class="line" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b"> 112</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;{</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_sum_form.html">SumForm</a>* sumForm = <span class="keyword">new</span> <a class="code" href="class_sum_form.html">SumForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(sumForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; sumForm-&gt;Destroy();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; sumForm-&gt;Destroy();</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keywordtype">void</span> Sum::UpdatePoints()</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_height = 18.0 * (m_nodeList.size() - 1);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_width = 36.0;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_width = 18.0 * (m_nodeList.size() - 1);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_height = 42.0;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_nodeList.size() - 1; ++i) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 9 + 18 * i - m_height / 2));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2 - 9 - 18 * i, -m_height / 2));</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, m_height / 2 - 9 - 18 * i));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_nodeList[i]-&gt;SetPosition(m_position + wxPoint2DDouble(9 + 18 * i - m_width / 2, m_height / 2));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0)</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0)</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_nodeList[m_nodeList.size() - 1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; SetPosition(m_position); <span class="comment">// Update rect.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;}</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="keywordtype">void</span> Sum::AddInNode()</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;{</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <a class="code" href="class_node.html">Node</a>* newNode = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(wxPoint2DDouble(0, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; newNode-&gt;SetAngle(m_angle);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_nodeList.insert(m_nodeList.end() - 1, newNode);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;<span class="keywordtype">void</span> Sum::RemoveInNode()</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <a class="code" href="class_node.html">Node</a>* nodeToRemove = *(m_nodeList.end() - 2);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordtype">bool</span> foundChild = <span class="keyword">false</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_childList.begin(), itEnd = m_childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="class_control_element.html">ControlElement</a>* child = <span class="keyword">static_cast&lt;</span><a class="code" href="class_control_element.html">ControlElement</a>*<span class="keyword">&gt;</span>(*it);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keyword">auto</span> childNodeList = child-&gt;GetNodeList();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = childNodeList.begin(), itEndN = childNodeList.end(); itN != itEndN; ++itN) {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(node == nodeToRemove) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; RemoveChild(child);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; foundChild = <span class="keyword">true</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; }</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">if</span>(foundChild) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_nodeList.erase(m_nodeList.end() - 2);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;}</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;</div><div class="line"><a name="l00183"></a><span class="lineno"><a class="line" href="class_sum.html#a738bcb564fec2764055e4785227b5eea"> 183</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160;{</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; UpdatePoints();</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;}</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;<span class="keywordtype">bool</span> Sum::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;{</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; std::vector&lt;double&gt; inputVector;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itN = m_nodeList.begin(), itNEnd = m_nodeList.end(); itN != itNEnd; ++itN) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *itN;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(node-&gt;GetNodeType() != Node::NODE_OUT) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(!node-&gt;IsConnected()) {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; inputVector.push_back(0.0);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itC = m_childList.begin(), itCEnd = m_childList.end(); itC != itCEnd; ++itC) {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <a class="code" href="class_connection_line.html">ConnectionLine</a>* cLine = <span class="keyword">static_cast&lt;</span><a class="code" href="class_connection_line.html">ConnectionLine</a>*<span class="keyword">&gt;</span>(*itC);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keyword">auto</span> nodeList = cLine-&gt;GetNodeList();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itCN = nodeList.begin(), itCNEnd = nodeList.end(); itCN != itCNEnd; ++itCN) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="class_node.html">Node</a>* childNode = *itCN;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">if</span>(childNode == node) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; inputVector.push_back(cLine-&gt;GetValue());</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(m_signalList.size() != inputVector.size()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_output = 0.0;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_signalList.size(); ++i) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_POSITIVE)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_output += inputVector[i];</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_signalList[i] == SIGNAL_NEGATIVE)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_output -= inputVector[i];</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; }</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;}</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160;</div><div class="line"><a name="l00238"></a><span class="lineno"><a class="line" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6"> 238</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a>()</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;{</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <a class="code" href="class_sum.html">Sum</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sum.html">Sum</a>(m_elementID);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;}</div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdoc">Form to edit the sum control data. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00032">SumForm.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_sum_html_a8c4bfb1dc965d8ac246de59d1f10888b"><div class="ttname"><a href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00112">Sum.cpp:112</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_sum_html_a738bcb564fec2764055e4785227b5eea"><div class="ttname"><a href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00183">Sum.cpp:183</a></div></div>
+<div class="ttc" id="_connection_line_8h_html"><div class="ttname"><a href="_connection_line_8h.html">ConnectionLine.h</a></div></div>
+<div class="ttc" id="_sum_form_8h_html"><div class="ttname"><a href="_sum_form_8h.html">SumForm.h</a></div></div>
+<div class="ttc" id="class_sum_html_a0da96514e0462e47d3f57b79ddc457b6"><div class="ttname"><a href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00238">Sum.cpp:238</a></div></div>
+<div class="ttc" id="_sum_8h_html"><div class="ttname"><a href="_sum_8h.html">Sum.h</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00359">Element.h:359</a></div></div>
+<div class="ttc" id="class_sum_html_a31dbb6867b17188b4a8cc650983da57b"><div class="ttname"><a href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00043">Sum.cpp:43</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_sum_8h.html b/docs/doxygen/html/_sum_8h.html
new file mode 100644
index 0000000..5747052
--- /dev/null
+++ b/docs/doxygen/html/_sum_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Sum.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sum_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">Sum.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+</div>
+<p><a href="_sum_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sum.html">Sum</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_sum.html" title="Sum the all inputs (can choose the input signal). ">Sum</a> the all inputs (can choose the input signal). <a href="class_sum.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sum_8h.html">Sum.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_sum_8h_source.html b/docs/doxygen/html/_sum_8h_source.html
index 6b1f41c..7bcc3be 100644
--- a/docs/doxygen/html/_sum_8h_source.html
+++ b/docs/doxygen/html/_sum_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,24 @@ $(document).ready(function(){initNavTree('_sum_8h_source.html','');});
<div class="title">Sum.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SUM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SUM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum_form.html">SumForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_sum.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">enum</span> Signal { SIGNAL_POSITIVE = 0, SIGNAL_NEGATIVE };</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_sum.html">Sum</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; ~<a class="code" href="class_sum.html">Sum</a>();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"><a class="line" href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987"> 17</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00018"></a><span class="lineno"><a class="line" href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e"> 18</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; </div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> std::vector&lt;Signal&gt; GetSignalList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_signalList; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSignalList(std::vector&lt;Signal&gt; signalList) { m_signalList = signalList; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; </div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; </div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">void</span> AddInNode();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">void</span> RemoveInNode();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; </div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">GetCopy</a>();</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; std::vector&lt;Signal&gt; m_signalList;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="preprocessor">#endif // SUM_H</span></div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00008">SumForm.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_sum_html_a8c4bfb1dc965d8ac246de59d1f10888b"><div class="ttname"><a href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00095">Sum.cpp:95</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
-<div class="ttc" id="class_sum_html_a738bcb564fec2764055e4785227b5eea"><div class="ttname"><a href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00166">Sum.cpp:166</a></div></div>
-<div class="ttc" id="class_sum_html_a1d1b52ca1b9a81d53c0a9cf140546987"><div class="ttname"><a href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987">Sum::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00017">Sum.h:17</a></div></div>
-<div class="ttc" id="class_sum_html_a0da96514e0462e47d3f57b79ddc457b6"><div class="ttname"><a href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00221">Sum.cpp:221</a></div></div>
-<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00006">ConnectionLine.h:6</a></div></div>
-<div class="ttc" id="class_sum_html_ac8ed3db993dd3053b94ccac7da4a664e"><div class="ttname"><a href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e">Sum::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00018">Sum.h:18</a></div></div>
-<div class="ttc" id="class_sum_html_a31dbb6867b17188b4a8cc650983da57b"><div class="ttname"><a href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00026">Sum.cpp:26</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_sum_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SUM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SUM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum_form.html">SumForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_connection_line.html">ConnectionLine</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_sum.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">enum</span> Signal { SIGNAL_POSITIVE = 0, SIGNAL_NEGATIVE };</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_sum.html">Sum</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; ~<a class="code" href="class_sum.html">Sum</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"><a class="line" href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987"> 41</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00042"></a><span class="lineno"><a class="line" href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e"> 42</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> std::vector&lt;Signal&gt; GetSignalList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_signalList; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetSignalList(std::vector&lt;Signal&gt; signalList) { m_signalList = signalList; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdatePoints();</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">void</span> AddInNode();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">void</span> RemoveInNode();</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">GetCopy</a>();</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::vector&lt;Signal&gt; m_signalList;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;<span class="preprocessor">#endif // SUM_H</span></div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdoc">Form to edit the sum control data. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00032">SumForm.h:32</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_sum_html_a8c4bfb1dc965d8ac246de59d1f10888b"><div class="ttname"><a href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00112">Sum.cpp:112</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="class_sum_html_a738bcb564fec2764055e4785227b5eea"><div class="ttname"><a href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00183">Sum.cpp:183</a></div></div>
+<div class="ttc" id="class_sum_html_a1d1b52ca1b9a81d53c0a9cf140546987"><div class="ttname"><a href="class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987">Sum::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00041">Sum.h:41</a></div></div>
+<div class="ttc" id="class_sum_html_a0da96514e0462e47d3f57b79ddc457b6"><div class="ttname"><a href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00238">Sum.cpp:238</a></div></div>
+<div class="ttc" id="class_connection_line_html"><div class="ttname"><a href="class_connection_line.html">ConnectionLine</a></div><div class="ttdoc">Connection between two control elements or other connection line and an element. </div><div class="ttdef"><b>Definition:</b> <a href="_connection_line_8h_source.html#l00030">ConnectionLine.h:30</a></div></div>
+<div class="ttc" id="class_sum_html_ac8ed3db993dd3053b94ccac7da4a664e"><div class="ttname"><a href="class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e">Sum::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00042">Sum.h:42</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_sum_html_a31dbb6867b17188b4a8cc650983da57b"><div class="ttname"><a href="class_sum.html#a31dbb6867b17188b4a8cc650983da57b">Sum::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8cpp_source.html#l00043">Sum.cpp:43</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Sum.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sum_8h.html">Sum.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_sum_form_8cpp_source.html b/docs/doxygen/html/_sum_form_8cpp_source.html
index 16f9f33..82c6d7b 100644
--- a/docs/doxygen/html/_sum_form_8cpp_source.html
+++ b/docs/doxygen/html/_sum_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,7 +88,9 @@ $(document).ready(function(){initNavTree('_sum_form_8cpp_source.html','');});
<div class="title">SumForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;SumForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Sum.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;SumForm::SumForm(wxWindow* parent, <a class="code" href="class_sum.html">Sum</a>* sum)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_sum_form_base.html">SumFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_parent = parent;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_sum = sum;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; wxString signalStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">auto</span> signalList = m_sum-&gt;GetSignalList();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = signalList.begin(), itEnd = signalList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; Sum::Signal signal = *it;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordflow">switch</span>(signal) {</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordflow">case</span> Sum::SIGNAL_POSITIVE: {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; signalStr += <span class="stringliteral">&quot;+&quot;</span>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">case</span> Sum::SIGNAL_NEGATIVE: {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; signalStr += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(it != itEnd - 1) signalStr += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; }</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_textCtrlSigns-&gt;SetValue(signalStr);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;SumForm::~SumForm() {}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keywordtype">void</span> SumForm::OnOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">bool</span> SumForm::ValidateData()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; wxString signalStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_textCtrlSigns-&gt;GetValue().length(); ++i) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(m_textCtrlSigns-&gt;GetValue()[i] != <span class="charliteral">&#39; &#39;</span>) signalStr += m_textCtrlSigns-&gt;GetValue()[i];</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(signalStr.size() &lt; 2){</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxMessageDialog msg(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;You must assign at least two signals.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; msg.ShowModal();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;Sum::Signal&gt; signalList;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)signalStr.length(); ++i) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">switch</span>(signalStr[i].GetValue()) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>: {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; signalList.push_back(Sum::SIGNAL_POSITIVE);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;-&#39;</span>: {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; signalList.push_back(Sum::SIGNAL_NEGATIVE);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxMessageDialog msg(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Signs\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; msg.ShowModal();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">int</span> diff = (int)signalList.size() - (int)m_sum-&gt;GetSignalList().size();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(diff &lt; 0) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; diff = std::abs(diff);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; diff; ++i) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_sum-&gt;RemoveInNode();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(diff &gt; 0) {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; diff; ++i) {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_sum-&gt;AddInNode();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_sum-&gt;SetSignalList(signalList);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_sum-&gt;UpdatePoints();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;}</div><div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_form_8h.html">SumForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sum_8h.html">Sum.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;SumForm::SumForm(wxWindow* parent, <a class="code" href="class_sum.html">Sum</a>* sum) : <a class="code" href="class_sum_form_base.html">SumFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_parent = parent;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_sum = sum;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; wxString signalStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">auto</span> signalList = m_sum-&gt;GetSignalList();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = signalList.begin(), itEnd = signalList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; Sum::Signal signal = *it;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">switch</span>(signal) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">case</span> Sum::SIGNAL_POSITIVE: {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; signalStr += <span class="stringliteral">&quot;+&quot;</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> Sum::SIGNAL_NEGATIVE: {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; signalStr += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(it != itEnd - 1) signalStr += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_textCtrlSigns-&gt;SetValue(signalStr);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;}</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;SumForm::~SumForm() {}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="keywordtype">void</span> SumForm::OnOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keywordtype">bool</span> SumForm::ValidateData()</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;{</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxString signalStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_textCtrlSigns-&gt;GetValue().length(); ++i) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(m_textCtrlSigns-&gt;GetValue()[i] != <span class="charliteral">&#39; &#39;</span>) signalStr += m_textCtrlSigns-&gt;GetValue()[i];</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(signalStr.size() &lt; 2) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; wxMessageDialog msg(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;You must assign at least two signals.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; msg.ShowModal();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; }</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::vector&lt;Sum::Signal&gt; signalList;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)signalStr.length(); ++i) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">switch</span>(signalStr[i].GetValue()) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;+&#39;</span>: {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; signalList.push_back(Sum::SIGNAL_POSITIVE);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;-&#39;</span>: {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; signalList.push_back(Sum::SIGNAL_NEGATIVE);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; wxMessageDialog msg(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Signs\&quot;.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; msg.ShowModal();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">int</span> diff = (int)signalList.size() - (int)m_sum-&gt;GetSignalList().size();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">if</span>(diff &lt; 0) {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; diff = std::abs(diff);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; diff; ++i) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_sum-&gt;RemoveInNode();</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(diff &gt; 0) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; diff; ++i) {</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_sum-&gt;AddInNode();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_sum-&gt;SetSignalList(signalList);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_sum-&gt;UpdatePoints();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;}</div><div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
+<div class="ttc" id="_sum_form_8h_html"><div class="ttname"><a href="_sum_form_8h.html">SumForm.h</a></div></div>
+<div class="ttc" id="_sum_8h_html"><div class="ttname"><a href="_sum_8h.html">Sum.h</a></div></div>
<div class="ttc" id="class_sum_form_base_html"><div class="ttname"><a href="class_sum_form_base.html">SumFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00805">ElementForm.h:805</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/_sum_form_8h.html b/docs/doxygen/html/_sum_form_8h.html
new file mode 100644
index 0000000..cd6a738
--- /dev/null
+++ b/docs/doxygen/html/_sum_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SumForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sum_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SumForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_sum_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sum_form.html">SumForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the sum control data. <a href="class_sum_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sum_form_8h.html">SumForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_sum_form_8h_source.html b/docs/doxygen/html/_sum_form_8h_source.html
index 701a141..d5fa8d7 100644
--- a/docs/doxygen/html/_sum_form_8h_source.html
+++ b/docs/doxygen/html/_sum_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_sum_form_8h_source.html','');});
<div class="title">SumForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SUMFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SUMFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_sum_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sum_form.html">SumForm</a> : <span class="keyword">public</span> <a class="code" href="class_sum_form_base.html">SumFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_sum_form.html">SumForm</a>(wxWindow* parent, <a class="code" href="class_sum.html">Sum</a>* sum);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_sum_form.html">SumForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; </div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; </div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <a class="code" href="class_sum.html">Sum</a>* m_sum = NULL;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;};</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#endif // SUMFORM_H</span></div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00008">SumForm.h:8</a></div></div>
-<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00009">Sum.h:9</a></div></div>
+<a href="_sum_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SUMFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SUMFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_sum.html">Sum</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_sum_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sum_form.html">SumForm</a> : <span class="keyword">public</span> <a class="code" href="class_sum_form_base.html">SumFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_sum_form.html">SumForm</a>(wxWindow* parent, <a class="code" href="class_sum.html">Sum</a>* sum);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_sum_form.html">SumForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_sum.html">Sum</a>* m_sum = NULL;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;};</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<span class="preprocessor">#endif // SUMFORM_H</span></div><div class="ttc" id="class_sum_form_html"><div class="ttname"><a href="class_sum_form.html">SumForm</a></div><div class="ttdoc">Form to edit the sum control data. </div><div class="ttdef"><b>Definition:</b> <a href="_sum_form_8h_source.html#l00032">SumForm.h:32</a></div></div>
+<div class="ttc" id="class_sum_html"><div class="ttname"><a href="class_sum.html">Sum</a></div><div class="ttdoc">Sum the all inputs (can choose the input signal). </div><div class="ttdef"><b>Definition:</b> <a href="_sum_8h_source.html#l00033">Sum.h:33</a></div></div>
<div class="ttc" id="class_sum_form_base_html"><div class="ttname"><a href="class_sum_form_base.html">SumFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00805">ElementForm.h:805</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SumForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sum_form_8h.html">SumForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_switching_form_8cpp_source.html b/docs/doxygen/html/_switching_form_8cpp_source.html
index 6e923b7..0c4cba4 100644
--- a/docs/doxygen/html/_switching_form_8cpp_source.html
+++ b/docs/doxygen/html/_switching_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,16 @@ $(document).ready(function(){initNavTree('_switching_form_8cpp_source.html','');
<div class="title">SwitchingForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;SwitchingForm::SwitchingForm(wxWindow* parent) : <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Time (s)&quot;</span>));</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; Layout();</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;}</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;SwitchingForm::SwitchingForm(wxWindow* parent, <a class="code" href="class_power_element.html">PowerElement</a>* element) : <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a>(parent)</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Time (s)&quot;</span>));</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; Layout();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> data = element-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); i++) {</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">long</span> index = m_listCtrlSwitchings-&gt;InsertItem(m_maxID, data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> ? _(<span class="stringliteral">&quot;Insert&quot;</span>) : _(<span class="stringliteral">&quot;Remove&quot;</span>));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_listCtrlSwitchings-&gt;SetItem(index, 1, wxString::FromDouble(data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i]));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_maxID++;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_element = element;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;SwitchingForm::~SwitchingForm() {}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnInsertButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">long</span> index = m_listCtrlSwitchings-&gt;InsertItem(</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_maxID, m_pgPropType-&gt;GetValue().GetInteger() == 0 ? _(<span class="stringliteral">&quot;Insert&quot;</span>) : _(<span class="stringliteral">&quot;Remove&quot;</span>));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_listCtrlSwitchings-&gt;SetItem(index, 1, m_pgPropTime-&gt;GetValue().GetString());</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_maxID++;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;}</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;{</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> data;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">if</span>(m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0) == _(<span class="stringliteral">&quot;Insert&quot;</span>))</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back(<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a>);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back(<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a>);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> swTime;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1).ToDouble(&amp;swTime);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(swTime);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_element-&gt;SetSwitchingData(data);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_element-&gt;SetDynamicEvent(<span class="keyword">true</span>);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_element-&gt;SetDynamicEvent(<span class="keyword">false</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;}</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnRemoveButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;{</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)itemList.size() - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_listCtrlSwitchings-&gt;DeleteItem(itemList[i]);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;}</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnChangeProperties(wxPropertyGridEvent&amp; event) {}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnSelectItem(wxListEvent&amp; event) {}</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnDownButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::vector&lt;long&gt; selectedList;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; selectedList.push_back(item);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)selectedList.size(); j++) {</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(itemList[i - 1] == selectedList[j]) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; wxString col1Str[2];</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; wxString col2Str[2];</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; col1Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; col1Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; col2Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; col2Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 1);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 0, col1Str[1]);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 0, col1Str[0]);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 1, col2Str[1]);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 1, col2Str[0]);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(itemList[i], wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(selectedList[j], 0, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; i++;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;}</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnUpButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;{</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; std::vector&lt;long&gt; selectedList;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; selectedList.push_back(item);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)selectedList.size(); j++) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(i + 1 &lt; (<span class="keywordtype">int</span>)itemList.size()) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(itemList[i + 1] == selectedList[j]) {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; wxString col1Str[2];</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; wxString col2Str[2];</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; col1Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; col1Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 0);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; col2Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; col2Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 1);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 0, col1Str[1]);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 0, col1Str[0]);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 1, col2Str[1]);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 1, col2Str[0]);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(itemList[i], wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(selectedList[j], 0, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; i++;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; }</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; }</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
-<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00077">PowerElement.h:77</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00054">PowerElement.h:54</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;SwitchingForm::SwitchingForm(wxWindow* parent) : <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Time (s)&quot;</span>));</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; Layout();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;SwitchingForm::SwitchingForm(wxWindow* parent, <a class="code" href="class_power_element.html">PowerElement</a>* element) : <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a>(parent)</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Type&quot;</span>));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_listCtrlSwitchings-&gt;AppendColumn(_(<span class="stringliteral">&quot;Time (s)&quot;</span>));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; Layout();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> data = element-&gt;<a class="code" href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">GetSwitchingData</a>();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.size(); i++) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">long</span> index = m_listCtrlSwitchings-&gt;InsertItem(m_maxID, data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>[i] == <a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a> ? _(<span class="stringliteral">&quot;Insert&quot;</span>) : _(<span class="stringliteral">&quot;Remove&quot;</span>));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_listCtrlSwitchings-&gt;SetItem(index, 1, wxString::FromDouble(data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>[i]));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_maxID++;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_element = element;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;SwitchingForm::~SwitchingForm() {}</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnInsertButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;{</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">long</span> index = m_listCtrlSwitchings-&gt;InsertItem(</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_maxID, m_pgPropType-&gt;GetValue().GetInteger() == 0 ? _(<span class="stringliteral">&quot;Insert&quot;</span>) : _(<span class="stringliteral">&quot;Remove&quot;</span>));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; m_listCtrlSwitchings-&gt;SetItem(index, 1, m_pgPropTime-&gt;GetValue().GetString());</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_maxID++;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;}</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;{</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <a class="code" href="struct_switching_data.html">SwitchingData</a> data;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0) == _(<span class="stringliteral">&quot;Insert&quot;</span>))</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back(<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a>);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; data.<a class="code" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">swType</a>.push_back(<a class="code" href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a>);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> swTime;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1).ToDouble(&amp;swTime);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.push_back(swTime);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_element-&gt;SetSwitchingData(data);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(data.<a class="code" href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">swTime</a>.size() != 0)</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_element-&gt;SetDynamicEvent(<span class="keyword">true</span>);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_element-&gt;SetDynamicEvent(<span class="keyword">false</span>);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnRemoveButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)itemList.size() - 1; i &gt;= 0; i--) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_listCtrlSwitchings-&gt;DeleteItem(itemList[i]);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;}</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnChangeProperties(wxPropertyGridEvent&amp; event) {}</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnSelectItem(wxListEvent&amp; event) {}</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnDownButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;{</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; std::vector&lt;long&gt; selectedList;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; selectedList.push_back(item);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)selectedList.size(); j++) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(itemList[i - 1] == selectedList[j]) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; wxString col1Str[2];</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; wxString col2Str[2];</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; col1Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; col1Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 0);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; col2Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; col2Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 1);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 0, col1Str[1]);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 0, col1Str[0]);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 1, col2Str[1]);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 1, col2Str[0]);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(itemList[i], wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(selectedList[j], 0, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; i++;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;<span class="keywordtype">void</span> SwitchingForm::OnUpButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;{</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vector&lt;long&gt; selectedList;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; std::vector&lt;long&gt; itemList;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordtype">long</span> item = -1;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item, wxLIST_NEXT_ALL, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; selectedList.push_back(item);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">while</span>(<span class="keyword">true</span>) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; item = m_listCtrlSwitchings-&gt;GetNextItem(item);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(item == -1) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; itemList.push_back(item);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)itemList.size(); i++) {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)selectedList.size(); j++) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">if</span>(i + 1 &lt; (<span class="keywordtype">int</span>)itemList.size()) {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(itemList[i + 1] == selectedList[j]) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; wxString col1Str[2];</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; wxString col2Str[2];</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; col1Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 0);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; col1Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 0);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; col2Str[0] = m_listCtrlSwitchings-&gt;GetItemText(itemList[i], 1);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; col2Str[1] = m_listCtrlSwitchings-&gt;GetItemText(selectedList[j], 1);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 0, col1Str[1]);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 0, col1Str[0]);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_listCtrlSwitchings-&gt;SetItem(itemList[i], 1, col2Str[1]);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; m_listCtrlSwitchings-&gt;SetItem(selectedList[j], 1, col2Str[0]);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(itemList[i], wxLIST_STATE_SELECTED, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; m_listCtrlSwitchings-&gt;SetItemState(selectedList[j], 0, wxLIST_STATE_SELECTED);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; i++;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; }</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;}</div><div class="ttc" id="struct_switching_data_html_a3323745bf0a3f6461fbc19bc76a189df"><div class="ttname"><a href="struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df">SwitchingData::swTime</a></div><div class="ttdeci">std::vector&lt; double &gt; swTime</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00095">PowerElement.h:95</a></div></div>
+<div class="ttc" id="struct_switching_data_html_af78fb958137a0532ea2a584810708574"><div class="ttname"><a href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData::swType</a></div><div class="ttdeci">std::vector&lt; SwitchingType &gt; swType</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00094">PowerElement.h:94</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776">SW_REMOVE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00071">PowerElement.h:71</a></div></div>
<div class="ttc" id="class_switching_form_base_html"><div class="ttname"><a href="class_switching_form_base.html">SwitchingFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00632">ElementForm.h:632</a></div></div>
-<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00076">PowerElement.h:76</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00165">PowerElement.h:165</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00053">PowerElement.h:53</a></div></div>
+<div class="ttc" id="struct_switching_data_html"><div class="ttname"><a href="struct_switching_data.html">SwitchingData</a></div><div class="ttdoc">Switching data of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00093">PowerElement.h:93</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_power_element_html_ab78269f9b66fbf90ae09050083e9dbe1"><div class="ttname"><a href="class_power_element.html#ab78269f9b66fbf90ae09050083e9dbe1">PowerElement::GetSwitchingData</a></div><div class="ttdeci">virtual SwitchingData GetSwitchingData()</div><div class="ttdoc">Returns the switching data of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00182">PowerElement.h:182</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="_power_element_8h_html_ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7"><div class="ttname"><a href="_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7">SW_INSERT</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00070">PowerElement.h:70</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_switching_form_8h.html b/docs/doxygen/html/_switching_form_8h.html
new file mode 100644
index 0000000..473756f
--- /dev/null
+++ b/docs/doxygen/html/_switching_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SwitchingForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_switching_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SwitchingForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_switching_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_switching_form.html">SwitchingForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the switching data of power elements for electromechanical transient studies. <a href="class_switching_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_switching_form_8h.html">SwitchingForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_switching_form_8h_source.html b/docs/doxygen/html/_switching_form_8h_source.html
index 1a898bc..42c55b4 100644
--- a/docs/doxygen/html/_switching_form_8h_source.html
+++ b/docs/doxygen/html/_switching_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_switching_form_8h_source.html','');})
<div class="title">SwitchingForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SWITCHINGFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SWITCHINGFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_power_element.html">PowerElement</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_switching_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a> : <span class="keyword">public</span> <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a>(wxWindow* parent);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a>(wxWindow* parent, <a class="code" href="class_power_element.html">PowerElement</a>* element);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_switching_form.html">SwitchingForm</a>();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDownButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUpButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnChangeProperties(wxPropertyGridEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSelectItem(wxListEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRemoveButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordtype">int</span> m_maxID = 0;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; </div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* m_element = NULL;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;};</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#endif // SWITCHINGFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
+<a href="_switching_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SWITCHINGFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SWITCHINGFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_power_element.html">PowerElement</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_switching_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a> : <span class="keyword">public</span> <a class="code" href="class_switching_form_base.html">SwitchingFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a>(wxWindow* parent);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a>(wxWindow* parent, <a class="code" href="class_power_element.html">PowerElement</a>* element);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_switching_form.html">SwitchingForm</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnDownButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUpButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnChangeProperties(wxPropertyGridEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnSelectItem(wxListEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnInsertButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRemoveButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">int</span> m_maxID = 0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* m_element = NULL;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="preprocessor">#endif // SWITCHINGFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
<div class="ttc" id="class_switching_form_base_html"><div class="ttname"><a href="class_switching_form_base.html">SwitchingFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00632">ElementForm.h:632</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SwitchingForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_switching_form_8h.html">SwitchingForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_sync_generator_8cpp_source.html b/docs/doxygen/html/_sync_generator_8cpp_source.html
index 5763fa9..337f0d2 100644
--- a/docs/doxygen/html/_sync_generator_8cpp_source.html
+++ b/docs/doxygen/html/_sync_generator_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,27 +88,30 @@ $(document).ready(function(){initNavTree('_sync_generator_8cpp_source.html','');
<div class="title">SyncGenerator.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;SyncMachineForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ControlElementContainer.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;SyncGenerator::SyncGenerator() : <a class="code" href="class_machines.html">Machines</a>() { Init(); }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;SyncGenerator::SyncGenerator(wxString name) : <a class="code" href="class_machines.html">Machines</a>()</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; Init();</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;}</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;SyncGenerator::~SyncGenerator() {}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keywordtype">void</span> SyncGenerator::Init()</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;{</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">int</span> numPtsSine = 10;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">double</span> mx = 15.0;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> my = 10.0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> pi = 3.14159265359;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt;= numPtsSine; i++) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordtype">double</span> x = (2.0 * pi / double(numPtsSine)) * <span class="keywordtype">double</span>(i) - pi;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">double</span> y = std::sin(x);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_sinePts.push_back(wxPoint2DDouble((x / pi) * mx, y * my));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; }</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_electricalData.avr = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_electricalData.speedGov = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> SyncGenerator::DrawSymbol()<span class="keyword"> const</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="comment">// Draw sine.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; std::vector&lt;wxPoint2DDouble&gt; sinePts;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_sinePts.size(); i++) {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; sinePts.push_back(m_sinePts[i] + m_position);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; DrawLine(sinePts);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;}</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97"> 39</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97">SyncGenerator::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Generator&quot;</span>));</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec"> 46</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>* generatorForm = <span class="keyword">new</span> <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; generatorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Generator&quot;</span>));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(generatorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; generatorForm-&gt;Destroy();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; generatorForm-&gt;Destroy();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;}</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;<a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> SyncGenerator::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;{</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">double</span> machineBasePower = 1.0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; machineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Active power</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">double</span> activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(data.activePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data.activePower = activePower / systemPowerBase;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="comment">// Reactive power</span></div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">double</span> reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(data.reactivePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.reactivePower = reactivePower / systemPowerBase;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="comment">// Max reactive power</span></div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">if</span>(data.maxReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; data.maxReactive = maxReactive / systemPowerBase;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Min reactive power</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(data.minReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data.minReactive = minReactive / systemPowerBase;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">double</span> machineBaseImpedance = (baseVoltage * baseVoltage) / machineBasePower;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="comment">// Fault data</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.positiveResistance = (data.positiveResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; data.positiveReactance = (data.positiveReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; data.negativeResistance = (data.negativeResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; data.negativeReactance = (data.negativeReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; data.zeroResistance = (data.zeroResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; data.zeroReactance = (data.zeroReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; data.groundResistance = (data.groundResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; data.groundReactance = (data.groundReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; data.faultCurrent[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; data.faultCurrent[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; data.faultCurrent[2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"><a class="line" href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8"> 130</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8">SyncGenerator::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage,</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;{</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;}</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160;</div><div class="line"><a name="l00139"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f"> 139</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator::GetCopy</a>()</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;{</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">auto</span> data = copy-&gt;GetElectricalData();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="comment">// Copy AVR</span></div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; std::vector&lt;ConnectionLine*&gt; cLineList;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; std::vector&lt;ControlElement*&gt; elementList;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_electricalData.avr-&gt;GetContainerCopy(elementList, cLineList);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avrCopy = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; avrCopy-&gt;FillContainer(elementList, cLineList);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; data.avr = avrCopy;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Copy Speed Governor</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; cLineList.clear();</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; elementList.clear();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_electricalData.speedGov-&gt;GetContainerCopy(elementList, cLineList);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGovCopy = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; speedGovCopy-&gt;FillContainer(elementList, cLineList);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data.speedGov = speedGovCopy;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; copy-&gt;SetElectricalData(data);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;}</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e"> 167</a></span>&#160;wxString <a class="code" href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e">SyncGenerator::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; }</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; }</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;}</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"><a class="line" href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab"> 213</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab">SyncGenerator::GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData)</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;{</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(!m_electricalData.plotSyncMachine) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; plotData.SetName(m_electricalData.name);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; plotData.SetCurveType(ElementPlotData::CT_SYNC_GENERATOR);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; std::vector&lt;double&gt; absTerminalVoltage, activePower, reactivePower;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_electricalData.terminalVoltageVector.size(); ++i) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; absTerminalVoltage.push_back(std::abs(m_electricalData.terminalVoltageVector[i]));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; activePower.push_back(std::real(m_electricalData.electricalPowerVector[i]));</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; reactivePower.push_back(std::imag(m_electricalData.electricalPowerVector[i]));</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; plotData.AddData(absTerminalVoltage, _(<span class="stringliteral">&quot;Terminal voltage&quot;</span>));</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; plotData.AddData(activePower, _(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; plotData.AddData(reactivePower, _(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; plotData.AddData(m_electricalData.mechanicalPowerVector, _(<span class="stringliteral">&quot;Mechanical power&quot;</span>));</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; plotData.AddData(m_electricalData.freqVector, _(<span class="stringliteral">&quot;Frequency&quot;</span>));</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; plotData.AddData(m_electricalData.fieldVoltageVector, _(<span class="stringliteral">&quot;Field voltage&quot;</span>));</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; plotData.AddData(m_electricalData.deltaVector, _(<span class="stringliteral">&quot;Delta&quot;</span>));</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;}</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_sync_generator_html_afcb0a1c03dab5ede586e5d15231f2cab"><div class="ttname"><a href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab">SyncGenerator::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00213">SyncGenerator.cpp:213</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00010">SyncMachineForm.h:10</a></div></div>
-<div class="ttc" id="class_sync_generator_html_a9130e8714c1518683540f587aca1201f"><div class="ttname"><a href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00139">SyncGenerator.cpp:139</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_sync_generator_html_a9454438d059269c194e1aa648e122f7e"><div class="ttname"><a href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e">SyncGenerator::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00167">SyncGenerator.cpp:167</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_sync_generator_html_a4a9dd07d901f26cc8304399fe241afec"><div class="ttname"><a href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00046">SyncGenerator.cpp:46</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_sync_generator_html_aaa4c5978dc6d344747d74e36fb3e71d8"><div class="ttname"><a href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8">SyncGenerator::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00130">SyncGenerator.cpp:130</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_sync_generator_html_a24b9894fa42473dfb8bcf82221401a97"><div class="ttname"><a href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97">SyncGenerator::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00039">SyncGenerator.cpp:39</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_machine_form_8h.html">SyncMachineForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_container_8h.html">ControlElementContainer.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;SyncGenerator::SyncGenerator() : <a class="code" href="class_machines.html">Machines</a>() { Init(); }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;SyncGenerator::SyncGenerator(wxString name) : <a class="code" href="class_machines.html">Machines</a>()</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; Init();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;SyncGenerator::~SyncGenerator() {}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keywordtype">void</span> SyncGenerator::Init()</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">int</span> numPtsSine = 10;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> mx = 15.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> my = 10.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> pi = 3.14159265359;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt;= numPtsSine; i++) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> x = (2.0 * pi / double(numPtsSine)) * <span class="keywordtype">double</span>(i) - pi;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> y = std::sin(x);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_sinePts.push_back(wxPoint2DDouble((x / pi) * mx, y * my));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_electricalData.avr = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_electricalData.speedGov = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">void</span> SyncGenerator::DrawSymbol()<span class="keyword"> const</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="comment">// Draw sine.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;wxPoint2DDouble&gt; sinePts;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_sinePts.size(); i++) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; sinePts.push_back(m_sinePts[i] + m_position);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; DrawLine(sinePts);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;}</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97"> 56</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97">SyncGenerator::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Generator&quot;</span>));</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;}</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec"> 63</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;{</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>* generatorForm = <span class="keyword">new</span> <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; generatorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Generator&quot;</span>));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(generatorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; generatorForm-&gt;Destroy();</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; generatorForm-&gt;Destroy();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;}</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> SyncGenerator::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;{</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">double</span> machineBasePower = 1.0;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; machineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Active power</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">if</span>(data.activePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data.activePower = activePower / systemPowerBase;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="comment">// Reactive power</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">double</span> reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(data.reactivePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.reactivePower = reactivePower / systemPowerBase;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="comment">// Max reactive power</span></div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">double</span> maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">if</span>(data.maxReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; data.maxReactive = maxReactive / systemPowerBase;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Min reactive power</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">double</span> minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(data.minReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; data.minReactive = minReactive / systemPowerBase;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">double</span> machineBaseImpedance = (baseVoltage * baseVoltage) / machineBasePower;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Fault data</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; data.positiveResistance = (data.positiveResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; data.positiveReactance = (data.positiveReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; data.negativeResistance = (data.negativeResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; data.negativeReactance = (data.negativeReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; data.zeroResistance = (data.zeroResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; data.zeroReactance = (data.zeroReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; data.groundResistance = (data.groundResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; data.groundReactance = (data.groundReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; data.faultCurrent[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; data.faultCurrent[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data.faultCurrent[2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;}</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"><a class="line" href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8"> 147</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8">SyncGenerator::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage,</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;{</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;}</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f"> 156</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator::GetCopy</a>()</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;{</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">auto</span> data = copy-&gt;GetElectricalData();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="comment">// Copy AVR</span></div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; std::vector&lt;ConnectionLine*&gt; cLineList;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; std::vector&lt;ControlElement*&gt; elementList;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_electricalData.avr-&gt;GetContainerCopy(elementList, cLineList);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avrCopy = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; avrCopy-&gt;FillContainer(elementList, cLineList);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; data.avr = avrCopy;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Copy Speed Governor</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; cLineList.clear();</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; elementList.clear();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_electricalData.speedGov-&gt;GetContainerCopy(elementList, cLineList);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGovCopy = <span class="keyword">new</span> <a class="code" href="class_control_element_container.html">ControlElementContainer</a>();</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; speedGovCopy-&gt;FillContainer(elementList, cLineList);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; data.speedGov = speedGovCopy;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; copy-&gt;SetElectricalData(data);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;}</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"><a class="line" href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e"> 184</a></span>&#160;wxString <a class="code" href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e">SyncGenerator::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;}</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"><a class="line" href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab"> 230</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab">SyncGenerator::GetPlotData</a>(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData)</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;{</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(!m_electricalData.plotSyncMachine) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; plotData.SetName(m_electricalData.name);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; plotData.SetCurveType(ElementPlotData::CT_SYNC_GENERATOR);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; std::vector&lt;double&gt; absTerminalVoltage, activePower, reactivePower;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_electricalData.terminalVoltageVector.size(); ++i) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; absTerminalVoltage.push_back(std::abs(m_electricalData.terminalVoltageVector[i]));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; activePower.push_back(std::real(m_electricalData.electricalPowerVector[i]));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; reactivePower.push_back(std::imag(m_electricalData.electricalPowerVector[i]));</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; plotData.AddData(absTerminalVoltage, _(<span class="stringliteral">&quot;Terminal voltage&quot;</span>));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; plotData.AddData(activePower, _(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; plotData.AddData(reactivePower, _(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; plotData.AddData(m_electricalData.mechanicalPowerVector, _(<span class="stringliteral">&quot;Mechanical power&quot;</span>));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; plotData.AddData(m_electricalData.freqVector, _(<span class="stringliteral">&quot;Frequency&quot;</span>));</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; plotData.AddData(m_electricalData.fieldVoltageVector, _(<span class="stringliteral">&quot;Field voltage&quot;</span>));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; plotData.AddData(m_electricalData.deltaVector, _(<span class="stringliteral">&quot;Delta&quot;</span>));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;}</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="_sync_machine_form_8h_html"><div class="ttname"><a href="_sync_machine_form_8h.html">SyncMachineForm.h</a></div></div>
+<div class="ttc" id="class_sync_generator_html_afcb0a1c03dab5ede586e5d15231f2cab"><div class="ttname"><a href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab">SyncGenerator::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00230">SyncGenerator.cpp:230</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdoc">Form to edit the synchronous machine power data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00034">SyncMachineForm.h:34</a></div></div>
+<div class="ttc" id="class_sync_generator_html_a9130e8714c1518683540f587aca1201f"><div class="ttname"><a href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00156">SyncGenerator.cpp:156</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_sync_generator_html_a9454438d059269c194e1aa648e122f7e"><div class="ttname"><a href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e">SyncGenerator::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00184">SyncGenerator.cpp:184</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_sync_generator_html_a4a9dd07d901f26cc8304399fe241afec"><div class="ttname"><a href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00063">SyncGenerator.cpp:63</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="_control_element_container_8h_html"><div class="ttname"><a href="_control_element_container_8h.html">ControlElementContainer.h</a></div></div>
+<div class="ttc" id="class_sync_generator_html_aaa4c5978dc6d344747d74e36fb3e71d8"><div class="ttname"><a href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8">SyncGenerator::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00147">SyncGenerator.cpp:147</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_sync_generator_html_a24b9894fa42473dfb8bcf82221401a97"><div class="ttname"><a href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97">SyncGenerator::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8cpp_source.html#l00056">SyncGenerator.cpp:56</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_sync_generator_8h.html b/docs/doxygen/html/_sync_generator_8h.html
new file mode 100644
index 0000000..3385685
--- /dev/null
+++ b/docs/doxygen/html/_sync_generator_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SyncGenerator.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sync_generator_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SyncGenerator.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_machines_8h_source.html">Machines.h</a>&quot;</code><br />
+</div>
+<p><a href="_sync_generator_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_generator.html">SyncGenerator</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous generator power element. <a href="class_sync_generator.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_generator_8h.html">SyncGenerator.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_sync_generator_8h_source.html b/docs/doxygen/html/_sync_generator_8h_source.html
index 6453d66..98223ed 100644
--- a/docs/doxygen/html/_sync_generator_8h_source.html
+++ b/docs/doxygen/html/_sync_generator_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,26 +88,27 @@ $(document).ready(function(){initNavTree('_sync_generator_8h_source.html','');})
<div class="title">SyncGenerator.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SYNCGENERATOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SYNCGENERATOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Machines.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="struct_sync_generator_electrical_data.html"> 8</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 13.8;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">bool</span> haveMaxReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> maxReactive = 9999.0;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">bool</span> haveMinReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> minReactive = -9999.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">bool</span> useMachineBase = <span class="keyword">true</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> positiveResistance = 0.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> positiveReactance = 1.0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> negativeResistance = 0.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> negativeReactance = 1.0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> zeroReactance = 1.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> groundResistance = 0.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> groundReactance = 0.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> groundNeutral = <span class="keyword">true</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> plotSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">double</span> inertia = 1.0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> damping = 0.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">bool</span> useAVR = <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">bool</span> useSpeedGovernor = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> armResistance = 0.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> potierReactance = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> satFactor = 0.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> syncXd = 0.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> syncXq = 0.0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> transXd = 1.0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> transXq = 0.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> transTd0 = 0.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> transTq0 = 0.0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> subXd = 0.0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> subXq = 0.0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">double</span> subTd0 = 0.0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> subTq0 = 0.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Machine state variables</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::complex&lt;double&gt; terminalVoltage;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; terminalVoltageVector;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::complex&lt;double&gt; electricalPower;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; electricalPowerVector;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">double</span> pm;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;double&gt; mechanicalPowerVector;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> speed;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::vector&lt;double&gt; freqVector;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> fieldVoltage;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;double&gt; fieldVoltageVector;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> delta;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;double&gt; deltaVector;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> initialFieldVoltage;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Internal machine variables</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">double</span> tranEq;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">double</span> tranEd;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">double</span> subEq;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">double</span> subEd;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">double</span> pe;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; </div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Variables to extrapolate</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">double</span> oldId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> oldIq;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> oldPe;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Integration constants</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSpeed;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icDelta;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEq;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEd;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEq;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEd;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Control</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avr = NULL;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGov = NULL;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Control solvers</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* avrSolver = NULL;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* speedGovSolver = NULL;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; Machines::SyncMachineModel model = Machines::SM_MODEL_1;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_sync_generator.html"> 110</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>(wxString name);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; ~<a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetPlotData(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_sinePts;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;};</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;<span class="preprocessor">#endif // SYNCGENERATOR_H</span></div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00088">PowerElement.h:88</a></div></div>
-<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00010">SyncMachineForm.h:10</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
+<a href="_sync_generator_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SYNCGENERATOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SYNCGENERATOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_machines_8h.html">Machines.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_sync_generator_electrical_data.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 13.8;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> haveMaxReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> maxReactive = 9999.0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">bool</span> haveMinReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> minReactive = -9999.0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> useMachineBase = <span class="keyword">true</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> positiveResistance = 0.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> positiveReactance = 1.0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> negativeResistance = 0.0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> negativeReactance = 1.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> zeroReactance = 1.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">double</span> groundResistance = 0.0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> groundReactance = 0.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">bool</span> groundNeutral = <span class="keyword">true</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> plotSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">double</span> inertia = 1.0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> damping = 0.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> useAVR = <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">bool</span> useSpeedGovernor = <span class="keyword">false</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> armResistance = 0.0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">double</span> potierReactance = 0.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> satFactor = 0.0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">double</span> syncXd = 0.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> syncXq = 0.0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">double</span> transXd = 1.0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> transXq = 0.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">double</span> transTd0 = 0.0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> transTq0 = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> subXd = 0.0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">double</span> subXq = 0.0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> subTd0 = 0.0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">double</span> subTq0 = 0.0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Machine state variables</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::complex&lt;double&gt; terminalVoltage;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; terminalVoltageVector;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::complex&lt;double&gt; electricalPower;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; electricalPowerVector;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> pm;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::vector&lt;double&gt; mechanicalPowerVector;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">double</span> speed;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::vector&lt;double&gt; freqVector;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> fieldVoltage;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;double&gt; fieldVoltageVector;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">double</span> delta;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;double&gt; deltaVector;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span> initialFieldVoltage;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Internal machine variables</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> tranEq;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">double</span> tranEd;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">double</span> subEq;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">double</span> subEd;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> pe;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">double</span> id;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">double</span> iq;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">double</span> sd;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">double</span> sq;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="comment">// Variables to extrapolate</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">double</span> oldId;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">double</span> oldIq;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">double</span> oldPe;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">double</span> oldSd;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">double</span> oldSq;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="comment">// Integration constants</span></div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSpeed;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icDelta;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEq;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEd;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEq;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEd;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="comment">// Control</span></div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avr = NULL;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGov = NULL;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="comment">// Control solvers</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* avrSolver = NULL;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* speedGovSolver = NULL;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; Machines::SyncMachineModel model = Machines::SM_MODEL_1;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;};</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"><a class="line" href="class_sync_generator.html"> 140</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;{</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>(wxString name);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; ~<a class="code" href="class_sync_generator.html">SyncGenerator</a>();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Init();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetPlotData(<a class="code" href="class_element_plot_data.html">ElementPlotData</a>&amp; plotData);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; std::vector&lt;wxPoint2DDouble&gt; m_sinePts;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;};</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="preprocessor">#endif // SYNCGENERATOR_H</span></div><div class="ttc" id="_machines_8h_html"><div class="ttname"><a href="_machines_8h.html">Machines.h</a></div></div>
+<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdoc">Integration constants to calculate dynamic elements through trapezoidal integration method...</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00105">PowerElement.h:105</a></div></div>
+<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdoc">Form to edit the synchronous machine power data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00034">SyncMachineForm.h:34</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SyncGenerator.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_generator_8h.html">SyncGenerator.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_sync_machine_form_8cpp_source.html b/docs/doxygen/html/_sync_machine_form_8cpp_source.html
index d780763..00ffe1f 100644
--- a/docs/doxygen/html/_sync_machine_form_8cpp_source.html
+++ b/docs/doxygen/html/_sync_machine_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,23 +88,27 @@ $(document).ready(function(){initNavTree('_sync_machine_form_8cpp_source.html','
<div class="title">SyncMachineForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;GeneratorStabForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SyncMachineForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;SyncMachineForm::SyncMachineForm(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator) : <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a>(parent)</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;{</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosResistance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosReactance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegResistance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegReactance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; Layout();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_syncGenerator = syncGenerator;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_parent = parent;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_textCtrlnominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>:</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>:</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_checkBoxMaxReactive-&gt;SetValue(data.haveMaxReactive);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_textCtrlMaxRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.maxReactive));</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">switch</span>(data.maxReactiveUnit) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_choiceMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_checkBoxMinReactive-&gt;SetValue(data.haveMinReactive);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_textCtrlMinRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.minReactive));</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">switch</span>(data.minReactiveUnit) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; m_choiceMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_checkBoxUseMachinePower-&gt;SetValue(data.useMachineBase);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_textCtrlPosResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.positiveResistance));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_textCtrlPosReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.positiveReactance));</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_textCtrlNegResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.negativeResistance));</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_textCtrlNegReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.negativeReactance));</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.zeroReactance));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_textCtrlGrdResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.groundResistance));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_textCtrlGrdReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.groundReactance));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_checkBoxGroundNeutral-&gt;SetValue(data.groundNeutral);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;SyncMachineForm::SyncMachineForm(wxWindow* parent, <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor) : <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a>(parent)</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_buttonStab-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosResistance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosReactance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegResistance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegReactance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; Layout();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_syncMotor = syncMotor;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_parent = parent;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_textCtrlnominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>:</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>:</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_checkBoxMaxReactive-&gt;SetValue(data.haveMaxReactive);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_textCtrlMaxRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.maxReactive));</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">switch</span>(data.maxReactiveUnit) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_choiceMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_checkBoxMinReactive-&gt;SetValue(data.haveMinReactive);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_textCtrlMinRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.minReactive));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">switch</span>(data.minReactiveUnit) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; }</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; m_choiceMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_checkBoxUseMachinePower-&gt;SetValue(data.useMachineBase);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_textCtrlPosResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.positiveResistance));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_textCtrlPosReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.positiveReactance));</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_textCtrlNegResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.negativeResistance));</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_textCtrlNegReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.negativeReactance));</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.zeroReactance));</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_textCtrlGrdResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.groundResistance));</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_textCtrlGrdReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.groundReactance));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_checkBoxGroundNeutral-&gt;SetValue(data.groundNeutral);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;}</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;SyncMachineForm::~SyncMachineForm() {}</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnCheckMaxReactive(wxCommandEvent&amp; event)</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;{</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(m_checkBoxMaxReactive-&gt;GetValue());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_choiceMaxRectivePower-&gt;Enable(m_checkBoxMaxReactive-&gt;GetValue());</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;}</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnCheckMinReactive(wxCommandEvent&amp; event)</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;{</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(m_checkBoxMinReactive-&gt;GetValue());</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_choiceMinRectivePower-&gt;Enable(m_checkBoxMinReactive-&gt;GetValue());</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;{</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;}</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">if</span>(m_syncGenerator) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>* stabForm = <span class="keyword">new</span> <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>(m_parent, m_syncGenerator);</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(stabForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; stabForm-&gt;Destroy();</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; }</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; stabForm-&gt;Destroy();</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; EndModal(wxID_CANCEL);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; }</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; }</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;}</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;<span class="keywordtype">bool</span> SyncMachineForm::ValidateData()</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;{</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">if</span>(m_syncGenerator) {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlnominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; }</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; data.haveMaxReactive = m_checkBoxMaxReactive-&gt;GetValue();</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span>(data.haveMaxReactive) {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlMaxRectivePower-&gt;GetValue(), data.maxReactive,</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">switch</span>(m_choiceMaxRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; }</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; }</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; data.haveMinReactive = m_checkBoxMinReactive-&gt;GetValue();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span>(data.haveMinReactive) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlMinRectivePower-&gt;GetValue(), data.minReactive,</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Min reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">switch</span>(m_choiceMinRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; }</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; data.useMachineBase = m_checkBoxUseMachinePower-&gt;GetValue();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlPosResistance-&gt;GetValue(), data.positiveResistance,</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlPosReactance-&gt;GetValue(), data.positiveReactance,</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlNegResistance-&gt;GetValue(), data.negativeResistance,</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlNegReactance-&gt;GetValue(), data.negativeReactance,</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroReactance,</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlGrdResistance-&gt;GetValue(), data.groundResistance,</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlGrdReactance-&gt;GetValue(), data.groundReactance,</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; data.groundNeutral = m_checkBoxGroundNeutral-&gt;GetValue();</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_syncMotor) {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = m_syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160;</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlnominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; }</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160;</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; data.haveMaxReactive = m_checkBoxMaxReactive-&gt;GetValue();</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">if</span>(data.haveMaxReactive) {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlMaxRectivePower-&gt;GetValue(), data.maxReactive,</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">switch</span>(m_choiceMaxRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; }</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; data.haveMinReactive = m_checkBoxMinReactive-&gt;GetValue();</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">if</span>(data.haveMinReactive) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlMinRectivePower-&gt;GetValue(), data.minReactive,</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Min reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">switch</span>(m_choiceMinRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; data.useMachineBase = m_checkBoxUseMachinePower-&gt;GetValue();</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlPosResistance-&gt;GetValue(), data.positiveResistance,</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlPosReactance-&gt;GetValue(), data.positiveReactance,</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlNegResistance-&gt;GetValue(), data.negativeResistance,</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlNegReactance-&gt;GetValue(), data.negativeReactance,</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroReactance,</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlGrdResistance-&gt;GetValue(), data.groundResistance,</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlGrdReactance-&gt;GetValue(), data.groundReactance,</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; data.groundNeutral = m_checkBoxGroundNeutral-&gt;GetValue();</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; m_syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160;}</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar)</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;{</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; wxString label = staticText-&gt;GetLabel();</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; label[label.length() - 2] = newChar;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; staticText-&gt;SetLabel(label);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;}</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_generator_stab_form_8h.html">GeneratorStabForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_machine_form_8h.html">SyncMachineForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;SyncMachineForm::SyncMachineForm(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator) : <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a>(parent)</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;{</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosResistance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosReactance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegResistance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegReactance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; Layout();</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_syncGenerator = syncGenerator;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_parent = parent;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_textCtrlnominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>:</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_checkBoxMaxReactive-&gt;SetValue(data.haveMaxReactive);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_textCtrlMaxRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.maxReactive));</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">switch</span>(data.maxReactiveUnit) {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_choiceMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_checkBoxMinReactive-&gt;SetValue(data.haveMinReactive);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_textCtrlMinRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.minReactive));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">switch</span>(data.minReactiveUnit) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; }</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_choiceMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_checkBoxUseMachinePower-&gt;SetValue(data.useMachineBase);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; m_textCtrlPosResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.positiveResistance));</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_textCtrlPosReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.positiveReactance));</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_textCtrlNegResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.negativeResistance));</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; m_textCtrlNegReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.negativeReactance));</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.zeroReactance));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; m_textCtrlGrdResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.groundResistance));</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_textCtrlGrdReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncGenerator::StringFromDouble</a>(data.groundReactance));</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_checkBoxGroundNeutral-&gt;SetValue(data.groundNeutral);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;SyncMachineForm::SyncMachineForm(wxWindow* parent, <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor) : <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a>(parent)</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_buttonStab-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosResistance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; ReplaceStaticTextLabelChar(m_staticTextPosReactance, L<span class="stringliteral">&#39;\u2081&#39;</span>);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegResistance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; ReplaceStaticTextLabelChar(m_staticTextNegReactance, L<span class="stringliteral">&#39;\u2082&#39;</span>);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroResistance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; ReplaceStaticTextLabelChar(m_staticTextZeroReactance, L<span class="stringliteral">&#39;\u2080&#39;</span>);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; Layout();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_syncMotor = syncMotor;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; m_parent = parent;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; m_textCtrlnominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>:</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>:</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>:</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; m_textCtrlActivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.activePower));</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">switch</span>(data.activePowerUnit) {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_choiceActivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>:</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; m_choiceActivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>:</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; m_choiceActivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; m_choiceActivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; }</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_textCtrlReactivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.reactivePower));</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">switch</span>(data.reactivePowerUnit) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; m_choiceReactivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_choiceReactivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_choiceReactivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; m_choiceReactivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; }</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_checkBoxMaxReactive-&gt;SetValue(data.haveMaxReactive);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; m_textCtrlMaxRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.maxReactive));</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">switch</span>(data.maxReactiveUnit) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_choiceMaxRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_choiceMaxRectivePower-&gt;Enable(data.haveMaxReactive);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_checkBoxMinReactive-&gt;SetValue(data.haveMinReactive);</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_textCtrlMinRectivePower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.minReactive));</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">switch</span>(data.minReactiveUnit) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>:</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(0);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>:</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(1);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(2);</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>:</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_choiceMinRectivePower-&gt;SetSelection(3);</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; }</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_choiceMinRectivePower-&gt;Enable(data.haveMinReactive);</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_checkBoxUseMachinePower-&gt;SetValue(data.useMachineBase);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; m_textCtrlPosResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.positiveResistance));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_textCtrlPosReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.positiveReactance));</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_textCtrlNegResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.negativeResistance));</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; m_textCtrlNegReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.negativeReactance));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.zeroReactance));</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; m_textCtrlGrdResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.groundResistance));</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_textCtrlGrdReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">SyncMotor::StringFromDouble</a>(data.groundReactance));</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_checkBoxGroundNeutral-&gt;SetValue(data.groundNeutral);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160;}</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;SyncMachineForm::~SyncMachineForm() {}</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnCheckMaxReactive(wxCommandEvent&amp; event)</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;{</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; m_textCtrlMaxRectivePower-&gt;Enable(m_checkBoxMaxReactive-&gt;GetValue());</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_choiceMaxRectivePower-&gt;Enable(m_checkBoxMaxReactive-&gt;GetValue());</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;}</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnCheckMinReactive(wxCommandEvent&amp; event)</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160;{</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; m_textCtrlMinRectivePower-&gt;Enable(m_checkBoxMinReactive-&gt;GetValue());</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_choiceMinRectivePower-&gt;Enable(m_checkBoxMinReactive-&gt;GetValue());</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160;}</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160;{</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160;}</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;{</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">if</span>(m_syncGenerator) {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>* stabForm = <span class="keyword">new</span> <a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>(m_parent, m_syncGenerator);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(stabForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; stabForm-&gt;Destroy();</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; stabForm-&gt;Destroy();</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; EndModal(wxID_CANCEL);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160;}</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;<span class="keywordtype">bool</span> SyncMachineForm::ValidateData()</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;{</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">if</span>(m_syncGenerator) {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = m_syncGenerator-&gt;GetElectricalData();</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlnominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; }</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; }</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; data.haveMaxReactive = m_checkBoxMaxReactive-&gt;GetValue();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(data.haveMaxReactive) {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlMaxRectivePower-&gt;GetValue(), data.maxReactive,</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">switch</span>(m_choiceMaxRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; }</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; }</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; data.haveMinReactive = m_checkBoxMinReactive-&gt;GetValue();</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>(data.haveMinReactive) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlMinRectivePower-&gt;GetValue(), data.minReactive,</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Min reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">switch</span>(m_choiceMinRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; }</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; }</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; data.useMachineBase = m_checkBoxUseMachinePower-&gt;GetValue();</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlPosResistance-&gt;GetValue(), data.positiveResistance,</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlPosReactance-&gt;GetValue(), data.positiveReactance,</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlNegResistance-&gt;GetValue(), data.negativeResistance,</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlNegReactance-&gt;GetValue(), data.negativeReactance,</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroReactance,</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlGrdResistance-&gt;GetValue(), data.groundResistance,</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(!m_syncGenerator-&gt;DoubleFromString(m_parent, m_textCtrlGrdReactance-&gt;GetValue(), data.groundReactance,</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; data.groundNeutral = m_checkBoxGroundNeutral-&gt;GetValue();</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; m_syncGenerator-&gt;SetElectricalData(data);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_syncMotor) {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = m_syncMotor-&gt;GetElectricalData();</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlnominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlActivePower-&gt;GetValue(), data.activePower,</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Active power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">switch</span>(m_choiceActivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlReactivePower-&gt;GetValue(), data.reactivePower,</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; }</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; data.haveMaxReactive = m_checkBoxMaxReactive-&gt;GetValue();</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">if</span>(data.haveMaxReactive) {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlMaxRectivePower-&gt;GetValue(), data.maxReactive,</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Max reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">switch</span>(m_choiceMaxRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; }</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; data.haveMinReactive = m_checkBoxMinReactive-&gt;GetValue();</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">if</span>(data.haveMinReactive) {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlMinRectivePower-&gt;GetValue(), data.minReactive,</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Min reactive power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">switch</span>(m_choiceMinRectivePower-&gt;GetSelection()) {</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">case</span> 0:</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> 1:</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">case</span> 2:</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">case</span> 3:</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; }</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; }</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; data.useMachineBase = m_checkBoxUseMachinePower-&gt;GetValue();</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlPosResistance-&gt;GetValue(), data.positiveResistance,</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlPosReactance-&gt;GetValue(), data.positiveReactance,</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Positive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlNegResistance-&gt;GetValue(), data.negativeResistance,</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160;</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlNegReactance-&gt;GetValue(), data.negativeReactance,</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Negative reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroReactance,</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlGrdResistance-&gt;GetValue(), data.groundResistance,</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">if</span>(!m_syncMotor-&gt;DoubleFromString(m_parent, m_textCtrlGrdReactance-&gt;GetValue(), data.groundReactance,</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; data.groundNeutral = m_checkBoxGroundNeutral-&gt;GetValue();</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; m_syncMotor-&gt;SetElectricalData(data);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160;}</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160;<span class="keywordtype">void</span> SyncMachineForm::ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar)</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160;{</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; wxString label = staticText-&gt;GetLabel();</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; label[label.length() - 2] = newChar;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; staticText-&gt;SetLabel(label);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160;}</div><div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="_sync_machine_form_8h_html"><div class="ttname"><a href="_sync_machine_form_8h.html">SyncMachineForm.h</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
<div class="ttc" id="class_sync_machine_form_base_html"><div class="ttname"><a href="class_sync_machine_form_base.html">SyncMachineFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00148">ElementForm.h:148</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00011">GeneratorStabForm.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="_generator_stab_form_8h_html"><div class="ttname"><a href="_generator_stab_form_8h.html">GeneratorStabForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdoc">Form to edit the synchronous generator data for electromechanical studies. </div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00035">GeneratorStabForm.h:35</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_sync_machine_form_8h.html b/docs/doxygen/html/_sync_machine_form_8h.html
new file mode 100644
index 0000000..30ad9aa
--- /dev/null
+++ b/docs/doxygen/html/_sync_machine_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SyncMachineForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sync_machine_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SyncMachineForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_sync_machine_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_machine_form.html">SyncMachineForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the synchronous machine power data. <a href="class_sync_machine_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_machine_form_8h.html">SyncMachineForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_sync_machine_form_8h_source.html b/docs/doxygen/html/_sync_machine_form_8h_source.html
index e57afbf..15aa6ca 100644
--- a/docs/doxygen/html/_sync_machine_form_8h_source.html
+++ b/docs/doxygen/html/_sync_machine_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,17 @@ $(document).ready(function(){initNavTree('_sync_machine_form_8h_source.html','')
<div class="title">SyncMachineForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SYNCMACHINEFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SYNCMACHINEFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"><a class="line" href="class_sync_machine_form.html"> 10</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a> : <span class="keyword">public</span> <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;{</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator);</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(wxWindow* parent, <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor);</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>();</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCheckMaxReactive(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCheckMinReactive(wxCommandEvent&amp; event);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* m_syncGenerator = NULL;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* m_syncMotor = NULL;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;};</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#endif // SYNCMACHINEFORM_H</span></div><div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
+<a href="_sync_machine_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SYNCMACHINEFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SYNCMACHINEFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_generator_stab_form.html">GeneratorStabForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"><a class="line" href="class_sync_machine_form.html"> 34</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a> : <span class="keyword">public</span> <a class="code" href="class_sync_machine_form_base.html">SyncMachineFormBase</a></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;{</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(wxWindow* parent, <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(wxWindow* parent, <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); };</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCheckMaxReactive(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCheckMinReactive(wxCommandEvent&amp; event);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ReplaceStaticTextLabelChar(wxStaticText* staticText, <span class="keywordtype">wchar_t</span> newChar);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* m_syncGenerator = NULL;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* m_syncMotor = NULL;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;<span class="preprocessor">#endif // SYNCMACHINEFORM_H</span></div><div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
<div class="ttc" id="class_sync_machine_form_base_html"><div class="ttname"><a href="class_sync_machine_form_base.html">SyncMachineFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00148">ElementForm.h:148</a></div></div>
-<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00010">SyncMachineForm.h:10</a></div></div>
-<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00011">GeneratorStabForm.h:11</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
+<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdoc">Form to edit the synchronous machine power data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00034">SyncMachineForm.h:34</a></div></div>
+<div class="ttc" id="class_generator_stab_form_html"><div class="ttname"><a href="class_generator_stab_form.html">GeneratorStabForm</a></div><div class="ttdoc">Form to edit the synchronous generator data for electromechanical studies. </div><div class="ttdef"><b>Definition:</b> <a href="_generator_stab_form_8h_source.html#l00035">GeneratorStabForm.h:35</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SyncMachineForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_machine_form_8h.html">SyncMachineForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_sync_motor_8cpp_source.html b/docs/doxygen/html/_sync_motor_8cpp_source.html
index 2b95142..7c4589b 100644
--- a/docs/doxygen/html/_sync_motor_8cpp_source.html
+++ b/docs/doxygen/html/_sync_motor_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,24 +88,26 @@ $(document).ready(function(){initNavTree('_sync_motor_8cpp_source.html','');});
<div class="title">SyncMotor.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;SyncMachineForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;SyncMotor::SyncMotor() : <a class="code" href="class_machines.html">Machines</a>() {}</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;SyncMotor::SyncMotor(wxString name) : <a class="code" href="class_machines.html">Machines</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;SyncMotor::~SyncMotor() {}</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keywordtype">void</span> SyncMotor::DrawSymbol()<span class="keyword"> const </span>{ DrawArc(m_position, 12, 30, 330, 10, GL_LINE_STRIP); }</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278"> 8</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278">SyncMotor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Synchronous Condenser&quot;</span>));</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f"> 16</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>* syncMotorForm = <span class="keyword">new</span> <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; syncMotorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Synchronous Condenser&quot;</span>));</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordflow">if</span>(syncMotorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; syncMotorForm-&gt;Destroy();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; }</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; syncMotorForm-&gt;Destroy();</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> SyncMotor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> machineBasePower = 1.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; machineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// Active power</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(data.activePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; data.activePower = activePower / systemPowerBase;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="comment">// Reactive power</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(data.reactivePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; data.reactivePower = reactivePower / systemPowerBase;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Max reactive power</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(data.maxReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; data.maxReactive = maxReactive / systemPowerBase;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="comment">// Min reactive power</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(data.minReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; data.minReactive = minReactive / systemPowerBase;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> machineBaseImpedance = (baseVoltage * baseVoltage) / machineBasePower;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Fault data</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data.positiveResistance = (data.positiveResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; data.positiveReactance = (data.positiveReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; data.negativeResistance = (data.negativeResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; data.negativeReactance = (data.negativeReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; data.zeroResistance = (data.zeroResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; data.zeroReactance = (data.zeroReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; data.groundResistance = (data.groundResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data.groundReactance = (data.groundReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; data.faultCurrent[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; data.faultCurrent[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; data.faultCurrent[2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;}</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d"> 100</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d">SyncMotor::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;{</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;}</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313"> 108</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor::GetCopy</a>()</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;{</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210"> 115</a></span>&#160;wxString <a class="code" href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210">SyncMotor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_sync_motor_html_a035b63a3dfd356daff0bf1cee9672313"><div class="ttname"><a href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00108">SyncMotor.cpp:108</a></div></div>
-<div class="ttc" id="class_sync_motor_html_a7b3102220ea5f7e19690af045a6c8278"><div class="ttname"><a href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278">SyncMotor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00008">SyncMotor.cpp:8</a></div></div>
-<div class="ttc" id="class_sync_motor_html_a2ab8e43d5452f5d7f9ac375566a65210"><div class="ttname"><a href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210">SyncMotor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00115">SyncMotor.cpp:115</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00010">SyncMachineForm.h:10</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_sync_motor_html_a038162c828595f58782fe97dea2c864d"><div class="ttname"><a href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d">SyncMotor::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00100">SyncMotor.cpp:100</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="class_sync_motor_html_a3201b22e0271517f5ed3df85da6cee6f"><div class="ttname"><a href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00016">SyncMotor.cpp:16</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_machine_form_8h.html">SyncMachineForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;SyncMotor::SyncMotor() : <a class="code" href="class_machines.html">Machines</a>() {}</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;SyncMotor::SyncMotor(wxString name) : <a class="code" href="class_machines.html">Machines</a>() { m_electricalData.name = name; }</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;SyncMotor::~SyncMotor() {}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keywordtype">void</span> SyncMotor::DrawSymbol()<span class="keyword"> const </span>{ DrawArc(m_position, 12, 30, 330, 10, GL_LINE_STRIP); }</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278"> 25</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278">SyncMotor::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit Synchronous Condenser&quot;</span>));</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f"> 33</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>* syncMotorForm = <span class="keyword">new</span> <a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; syncMotorForm-&gt;SetTitle(_(<span class="stringliteral">&quot;Synchronous Condenser&quot;</span>));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">if</span>(syncMotorForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; syncMotorForm-&gt;Destroy();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; syncMotorForm-&gt;Destroy();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;<a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> SyncMotor::GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;{</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> machineBasePower = 1.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; machineBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Active power</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> activePower = GetValueFromUnit(data.activePower, data.activePowerUnit);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(data.activePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.activePower = (activePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; data.activePower = activePower / systemPowerBase;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; }</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; data.activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Reactive power</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> reactivePower = GetValueFromUnit(data.reactivePower, data.reactivePowerUnit);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(data.reactivePowerUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.reactivePower = (reactivePower * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; data.reactivePower = reactivePower / systemPowerBase;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; data.reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="comment">// Max reactive power</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> maxReactive = GetValueFromUnit(data.maxReactive, data.maxReactiveUnit);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">if</span>(data.maxReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.maxReactive = (maxReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; data.maxReactive = maxReactive / systemPowerBase;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; data.maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="comment">// Min reactive power</span></div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">double</span> minReactive = GetValueFromUnit(data.minReactive, data.minReactiveUnit);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">if</span>(data.minReactiveUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) data.minReactive = (minReactive * machineBasePower) / systemPowerBase;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; data.minReactive = minReactive / systemPowerBase;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; data.minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">double</span> baseVoltage = GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemPowerBase;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span> machineBaseImpedance = (baseVoltage * baseVoltage) / machineBasePower;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Fault data</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(data.useMachineBase) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; data.positiveResistance = (data.positiveResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; data.positiveReactance = (data.positiveReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; data.negativeResistance = (data.negativeResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; data.negativeReactance = (data.negativeReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; data.zeroResistance = (data.zeroResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; data.zeroReactance = (data.zeroReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; data.groundResistance = (data.groundResistance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; data.groundReactance = (data.groundReactance * machineBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; }</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; data.faultCurrent[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; data.faultCurrent[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; data.faultCurrent[2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;}</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d"> 117</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d">SyncMotor::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;{</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() &gt; 0) {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_electricalData.nominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; m_electricalData.nominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; }</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;}</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313"> 125</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor::GetCopy</a>()</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;{</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* copy = <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"><a class="line" href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210"> 132</a></span>&#160;wxString <a class="code" href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210">SyncMotor::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">double</span> activePower = m_electricalData.activePower;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(!m_online) activePower = 0.0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP = &quot;</span>) + wxString::FromDouble(activePower, 5);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.activePowerUnit) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; tipText += _(<span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; tipText += _(<span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; tipText += _(<span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; }</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">double</span> reactivePower = m_electricalData.reactivePower;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(!m_online) reactivePower = 0.0;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ = &quot;</span>) + wxString::FromDouble(reactivePower, 5);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.reactivePowerUnit) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; tipText += _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; tipText += _(<span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; tipText += _(<span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; tipText += _(<span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_sync_motor_html_a035b63a3dfd356daff0bf1cee9672313"><div class="ttname"><a href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00125">SyncMotor.cpp:125</a></div></div>
+<div class="ttc" id="class_sync_motor_html_a7b3102220ea5f7e19690af045a6c8278"><div class="ttname"><a href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278">SyncMotor::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00025">SyncMotor.cpp:25</a></div></div>
+<div class="ttc" id="class_sync_motor_html_a2ab8e43d5452f5d7f9ac375566a65210"><div class="ttname"><a href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210">SyncMotor::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00132">SyncMotor.cpp:132</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="_sync_machine_form_8h_html"><div class="ttname"><a href="_sync_machine_form_8h.html">SyncMachineForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdoc">Form to edit the synchronous machine power data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00034">SyncMachineForm.h:34</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="class_sync_motor_html_a038162c828595f58782fe97dea2c864d"><div class="ttname"><a href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d">SyncMotor::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00117">SyncMotor.cpp:117</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="class_sync_motor_html_a3201b22e0271517f5ed3df85da6cee6f"><div class="ttname"><a href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8cpp_source.html#l00033">SyncMotor.cpp:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_sync_motor_8h.html b/docs/doxygen/html/_sync_motor_8h.html
new file mode 100644
index 0000000..4de597b
--- /dev/null
+++ b/docs/doxygen/html/_sync_motor_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/SyncMotor.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_sync_motor_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">SyncMotor.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_machines_8h_source.html">Machines.h</a>&quot;</code><br />
+</div>
+<p><a href="_sync_motor_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_sync_motor.html">SyncMotor</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Synchronous motor (synchronous compensator) power element. <a href="class_sync_motor.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_motor_8h.html">SyncMotor.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_sync_motor_8h_source.html b/docs/doxygen/html/_sync_motor_8h_source.html
index d4a2879..c14907d 100644
--- a/docs/doxygen/html/_sync_motor_8h_source.html
+++ b/docs/doxygen/html/_sync_motor_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,25 +88,26 @@ $(document).ready(function(){initNavTree('_sync_motor_8h_source.html','');});
<div class="title">SyncMotor.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef SYNCMOTOR_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define SYNCMOTOR_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Machines.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="struct_sync_motor_electrical_data.html"> 8</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 13.8;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keywordtype">bool</span> haveMaxReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; <span class="keywordtype">double</span> maxReactive = 9999.0;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordtype">bool</span> haveMinReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> minReactive = -9999.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">bool</span> useMachineBase = <span class="keyword">true</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> positiveResistance = 0.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordtype">double</span> positiveReactance = 1.0;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> negativeResistance = 0.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordtype">double</span> negativeReactance = 1.0;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordtype">double</span> zeroReactance = 1.0;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> groundResistance = 0.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> groundReactance = 0.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> groundNeutral = <span class="keyword">true</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> plotSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordtype">double</span> inertia = 1.0;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> damping = 0.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">bool</span> useAVR = <span class="keyword">false</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">bool</span> useSpeedGovernor = <span class="keyword">false</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> armResistance = 0.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> potierReactance = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> satFactor = 0.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> syncXd = 0.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> syncXq = 0.0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">double</span> transXd = 1.0;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> transXq = 0.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordtype">double</span> transTd0 = 0.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> transTq0 = 0.0;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordtype">double</span> subXd = 0.0;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> subXq = 0.0;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">double</span> subTd0 = 0.0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> subTq0 = 0.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// Machine state variables</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; std::complex&lt;double&gt; terminalVoltage;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; terminalVoltageVector;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; std::complex&lt;double&gt; electricalPower;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; electricalPowerVector;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">double</span> pm;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; std::vector&lt;double&gt; mechanicalPowerVector;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> speed;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; std::vector&lt;double&gt; freqVector;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> fieldVoltage;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; std::vector&lt;double&gt; fieldVoltageVector;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> delta;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; std::vector&lt;double&gt; deltaVector;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> initialFieldVoltage;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Internal machine variables</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordtype">double</span> tranEq;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">double</span> tranEd;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">double</span> subEq;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordtype">double</span> subEd;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordtype">double</span> pe;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="comment">// Variables to extrapolate</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">double</span> oldId;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">double</span> oldIq;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> oldPe;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="comment">// Integration constants</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSpeed;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icDelta;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEq;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEd;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEq;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEd;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="comment">// Control</span></div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avr = NULL;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGov = NULL;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Control solvers</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* avrSolver = NULL;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* speedGovSolver = NULL;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; Machines::SyncMachineModel model = Machines::SM_MODEL_1;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"><a class="line" href="class_sync_motor.html"> 110</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>(wxString name);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; ~<a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;};</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="preprocessor">#endif // SYNCMOTOR_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00020">ControlElementSolver.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00088">PowerElement.h:88</a></div></div>
-<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00010">SyncMachineForm.h:10</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00020">ControlElementContainer.h:20</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00009">Machines.h:9</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<a href="_sync_motor_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef SYNCMOTOR_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define SYNCMOTOR_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_machines_8h.html">Machines.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_machine_form.html">SyncMachineForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="struct_sync_motor_electrical_data.html"> 25</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> nominalVoltage = 13.8;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> activePower = 100.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> activePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordtype">double</span> reactivePower = 0.0;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> reactivePowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">bool</span> haveMaxReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">double</span> maxReactive = 9999.0;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> maxReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">bool</span> haveMinReactive = <span class="keyword">false</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> minReactive = -9999.0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> minReactiveUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">bool</span> useMachineBase = <span class="keyword">true</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> positiveResistance = 0.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> positiveReactance = 1.0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> negativeResistance = 0.0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> negativeReactance = 1.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordtype">double</span> zeroReactance = 1.0;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">double</span> groundResistance = 0.0;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> groundReactance = 0.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">bool</span> groundNeutral = <span class="keyword">true</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; std::complex&lt;double&gt; faultCurrent[3] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Stability</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">bool</span> plotSyncMachine = <span class="keyword">false</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">double</span> inertia = 1.0;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> damping = 0.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">bool</span> useAVR = <span class="keyword">false</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">bool</span> useSpeedGovernor = <span class="keyword">false</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> armResistance = 0.0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">double</span> potierReactance = 0.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">double</span> satFactor = 0.0;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">double</span> syncXd = 0.0;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">double</span> syncXq = 0.0;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">double</span> transXd = 1.0;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> transXq = 0.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">double</span> transTd0 = 0.0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordtype">double</span> transTq0 = 0.0;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">double</span> subXd = 0.0;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordtype">double</span> subXq = 0.0;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">double</span> subTd0 = 0.0;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordtype">double</span> subTq0 = 0.0;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// Machine state variables</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::complex&lt;double&gt; terminalVoltage;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; terminalVoltageVector;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; std::complex&lt;double&gt; electricalPower;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; std::vector&lt;std::complex&lt;double&gt; &gt; electricalPowerVector;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> pm;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; std::vector&lt;double&gt; mechanicalPowerVector;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordtype">double</span> speed;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; std::vector&lt;double&gt; freqVector;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">double</span> fieldVoltage;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; std::vector&lt;double&gt; fieldVoltageVector;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">double</span> delta;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;double&gt; deltaVector;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">double</span> initialFieldVoltage;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Internal machine variables</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> tranEq;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">double</span> tranEd;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">double</span> subEq;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">double</span> subEd;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">double</span> pe;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="comment">// Variables to extrapolate</span></div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">double</span> oldId;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">double</span> oldIq;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">double</span> oldPe;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Integration constants</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSpeed;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icDelta;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEq;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icTranEd;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEq;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <a class="code" href="struct_integration_constant.html">IntegrationConstant</a> icSubEd;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="comment">// Control</span></div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* avr = NULL;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <a class="code" href="class_control_element_container.html">ControlElementContainer</a>* speedGov = NULL;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="comment">// Control solvers</span></div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* avrSolver = NULL;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_control_element_solver.html">ControlElementSolver</a>* speedGovSolver = NULL;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; Machines::SyncMachineModel model = Machines::SM_MODEL_1;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;};</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"><a class="line" href="class_sync_motor.html"> 134</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a> : <span class="keyword">public</span> <a class="code" href="class_machines.html">Machines</a></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;{</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>(wxString name);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; ~<a class="code" href="class_sync_motor.html">SyncMotor</a>();</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DrawSymbol() <span class="keyword">const</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> GetElectricalData() { <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricalData(<a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> m_electricalData;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;};</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;<span class="preprocessor">#endif // SYNCMOTOR_H</span></div><div class="ttc" id="_machines_8h_html"><div class="ttname"><a href="_machines_8h.html">Machines.h</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_control_element_solver_html"><div class="ttname"><a href="class_control_element_solver.html">ControlElementSolver</a></div><div class="ttdoc">Solves in the time the control system. Can solve the control system directly from a ControlEditor or ...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_solver_8h_source.html#l00045">ControlElementSolver.h:45</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="struct_integration_constant_html"><div class="ttname"><a href="struct_integration_constant.html">IntegrationConstant</a></div><div class="ttdoc">Integration constants to calculate dynamic elements through trapezoidal integration method...</div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00105">PowerElement.h:105</a></div></div>
+<div class="ttc" id="class_sync_machine_form_html"><div class="ttname"><a href="class_sync_machine_form.html">SyncMachineForm</a></div><div class="ttdoc">Form to edit the synchronous machine power data. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_machine_form_8h_source.html#l00034">SyncMachineForm.h:34</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_control_element_container_html"><div class="ttname"><a href="class_control_element_container.html">ControlElementContainer</a></div><div class="ttdoc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic li...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_container_8h_source.html#l00045">ControlElementContainer.h:45</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_machines_html"><div class="ttname"><a href="class_machines.html">Machines</a></div><div class="ttdoc">Abstract class for rotary machines power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_machines_8h_source.html#l00033">Machines.h:33</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>SyncMotor.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_sync_motor_8h.html">SyncMotor.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_text_8cpp_source.html b/docs/doxygen/html/_text_8cpp_source.html
index f42b498..d7d9290 100644
--- a/docs/doxygen/html/_text_8cpp_source.html
+++ b/docs/doxygen/html/_text_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,57 +88,68 @@ $(document).ready(function(){initNavTree('_text_8cpp_source.html','');});
<div class="title">Text.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TextForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Text.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;Text::Text() : <a class="code" href="class_graphical_element.html">GraphicalElement</a>() { SetText(m_text); }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;Text::Text(wxPoint2DDouble position) : <a class="code" href="class_graphical_element.html">GraphicalElement</a>()</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;{</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_position = position;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; SetText(m_text);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;}</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;Text::~Text()</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;{</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">if</span>(m_glString) <span class="keyword">delete</span> m_glString;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordflow">if</span>(m_glStringArray) <span class="keyword">delete</span> m_glStringArray;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"><a class="line" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0"> 30</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;}</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keywordtype">void</span> Text::Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="comment">// Draw selection rectangle</span></div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; glPushMatrix();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.5);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position + wxPoint2DDouble(m_borderSize / 2.0, m_borderSize / 2.0), m_rect.m_width,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_rect.m_height);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="comment">// Draw text (layer 2)</span></div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(!m_isMultlineText) { <span class="comment">// Only one line</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_glString-&gt;bind();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_glString-&gt;render(m_position.m_x, m_position.m_y);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Multiples lines</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_glStringArray-&gt;bind();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="comment">// The text will be printed centralized.</span></div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> lineHeight = m_height / (double)m_numberOfLines;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_numberOfLines; i++) {</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; m_glStringArray-&gt;get(i)</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; .render(m_position.m_x, m_position.m_y - m_height / 2.0 + lineHeight / 2.0 + lineHeight * <span class="keywordtype">double</span>(i));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glPopMatrix();</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"><a class="line" href="class_text.html#a9923c820cd77b411257ba48beceafeaa"> 75</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">RotatedRectanglesIntersects</a>(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> Text::SetText(wxString text)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_text = text;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; GLuint* idString = NULL;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; GLuint* idStringArray = NULL;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">if</span>(m_glString) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">delete</span> m_glString;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_glString = NULL;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; idString = <span class="keyword">new</span> GLuint;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glGenTextures(1, idString);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(m_glStringArray) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">delete</span> m_glStringArray;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_glStringArray = NULL;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; idStringArray = <span class="keyword">new</span> GLuint;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; glGenTextures(1, idStringArray);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_numberOfLines = m_text.Freq(<span class="charliteral">&#39;\n&#39;</span>) + 1;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(m_numberOfLines == 1) { <span class="comment">// Only one line</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_isMultlineText = <span class="keyword">false</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_glString = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(m_text);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_glString-&gt;setFont(font);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; m_glString-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_width = m_glString-&gt;getWidth();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; m_height = m_glString-&gt;getheight();</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_isMultlineText = <span class="keyword">true</span>;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; m_glStringArray = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string_array.html">wxGLStringArray</a>();</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; dc.SetFont(font);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; m_width = 0.0;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_height = 0.0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; wxString multText = m_text;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_numberOfLines; ++i) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; wxString nextLine;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; wxString currentLine = multText.BeforeFirst(<span class="charliteral">&#39;\n&#39;</span>, &amp;nextLine);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; multText = nextLine;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_glStringArray-&gt;addString(currentLine);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; wxSize size = dc.GetTextExtent(currentLine);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">if</span>(size.GetWidth() &gt; m_width) m_width = size.GetWidth();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_height += size.GetHeight();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_glStringArray-&gt;setFont(font);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; m_glStringArray-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(idString) glDeleteTextures(1, idString);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(idStringArray) glDeleteTextures(1, idStringArray);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// Update text rectangle.</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;}</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"><a class="line" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3"> 145</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;{</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;}</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160;<span class="keywordtype">bool</span> Text::ShowForm(wxWindow* parent, std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;{</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <a class="code" href="class_text_form.html">TextForm</a>* textForm = <span class="keyword">new</span> <a class="code" href="class_text_form.html">TextForm</a>(parent, <span class="keyword">this</span>, elementList);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">if</span>(textForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; textForm-&gt;Destroy();</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; textForm-&gt;Destroy();</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;}</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;<span class="keywordtype">void</span> Text::UpdateText(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;{</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">switch</span>(m_elementType) {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">case</span> TYPE_NONE:</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; SetText(m_text);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">if</span>(bus) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">double</span> baseVoltage = data.nominalVoltage;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage *= 1e3;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; SetText(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE: {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordtype">double</span> voltage = std::abs(data.voltage);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; SetText(wxString::FromDouble(voltage, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; SetText(wxString::FromDouble(voltage * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; SetText(wxString::FromDouble(voltage * baseVoltage / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordtype">double</span> angle = std::arg(data.voltage);</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>: {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; SetText(wxString::FromDouble(angle, m_decimalPlaces) + <span class="stringliteral">&quot; rad&quot;</span>);</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>: {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; SetText(wxString::FromDouble(wxRadToDeg(angle), m_decimalPlaces) + (wxString)L<span class="stringliteral">&#39;\u00B0&#39;</span>);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; std::abs(data.faultCurrent[2])};</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; wxString str =</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; SetText(str);</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; SetText(str);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; wxString str =</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; SetText(str);</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; }</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">double</span> faultVoltage[3] = {std::abs(data.faultVoltage[0]), std::abs(data.faultVoltage[1]),</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; std::abs(data.faultVoltage[2])};</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; wxString str =</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="stringliteral">&quot;Va = &quot;</span> + wxString::FromDouble(faultVoltage[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> + wxString::FromDouble(faultVoltage[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> + wxString::FromDouble(faultVoltage[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; SetText(str);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; wxString str = <span class="stringliteral">&quot;Va = &quot;</span> +</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; wxString::FromDouble(faultVoltage[0] * baseVoltage, m_decimalPlaces) +</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> +</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; wxString::FromDouble(faultVoltage[1] * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> +</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; wxString::FromDouble(faultVoltage[2] * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; SetText(str);</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; wxString str =</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="stringliteral">&quot;Va = &quot;</span> +</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; wxString::FromDouble(faultVoltage[0] * baseVoltage / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> +</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; wxString::FromDouble(faultVoltage[1] * baseVoltage / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> +</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; wxString::FromDouble(faultVoltage[2] * baseVoltage / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; SetText(str);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; SetText(wxString::FromDouble(data.scPower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VA&quot;</span>);</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="stringliteral">&quot; kVA&quot;</span>);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="stringliteral">&quot; MVA&quot;</span>);</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; }</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = <span class="keyword">static_cast&lt;</span><a class="code" href="class_sync_generator.html">SyncGenerator</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span>(syncGenerator) {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordtype">double</span> baseVoltage = syncGenerator-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; SetText(data.name);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">double</span> activePower = data.activePower;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePower = 0.0;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; SetText(wxString::FromDouble(activePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; }</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordtype">double</span> reactivePower = data.reactivePower;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePower = 0.0;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; SetText(wxString::FromDouble(reactivePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; std::abs(data.faultCurrent[2])};</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; wxString str =</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; SetText(str);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; SetText(str);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; wxString str =</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; SetText(str);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; }</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">if</span>(line) {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordtype">double</span> baseVoltage = data.nominalVoltage;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage *= 1e3;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; SetText(data.name);</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordtype">double</span> activePF = std::real(data.powerFlow[m_direction]);</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePF = 0.0;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; SetText(wxString::FromDouble(activePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; }</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordtype">double</span> reactivePF = std::imag(data.powerFlow[m_direction]);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePF = 0.0;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; }</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordtype">double</span> losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) losses = 0.0;</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; SetText(wxString::FromDouble(losses, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; }</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordtype">double</span> current = std::abs(data.current[m_direction]);</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) current = 0.0;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; SetText(wxString::FromDouble(current, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; SetText(wxString::FromDouble(current * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; SetText(wxString::FromDouble(current * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[m_direction][0]),</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; std::abs(data.faultCurrent[m_direction][1]),</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; std::abs(data.faultCurrent[m_direction][2])};</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; wxString str =</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; SetText(str);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; SetText(str);</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; wxString str =</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; SetText(str);</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; }</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; }</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = <span class="keyword">static_cast&lt;</span><a class="code" href="class_transformer.html">Transformer</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">if</span>(transformer) {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; <span class="keywordtype">double</span> baseVoltage[2] = {data.primaryNominalVoltage, data.secondaryNominalVoltage};</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">if</span>(data.primaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage[0] *= 1e3;</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">if</span>(data.secondaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage[1] *= 1e3;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordtype">double</span> baseCurrent[2] = {systemPowerBase / (std::sqrt(3.0) * baseVoltage[0]),</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; systemPowerBase / (std::sqrt(3.0) * baseVoltage[1])};</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; SetText(data.name);</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordtype">double</span> activePF = std::real(data.powerFlow[m_direction]);</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePF = 0.0;</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; SetText(wxString::FromDouble(activePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; }</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordtype">double</span> reactivePF = std::imag(data.powerFlow[m_direction]);</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePF = 0.0;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; }</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordtype">double</span> losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) losses = 0.0;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; SetText(wxString::FromDouble(losses, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; }</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordtype">double</span> current = std::abs(data.current[m_direction]);</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) current = 0.0;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; SetText(wxString::FromDouble(current, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; SetText(wxString::FromDouble(current * baseCurrent[m_direction], m_decimalPlaces) +</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="stringliteral">&quot; A&quot;</span>);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; SetText(</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; wxString::FromDouble(current * baseCurrent[m_direction] / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>);</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; }</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[m_direction][0]),</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; std::abs(data.faultCurrent[m_direction][1]),</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; std::abs(data.faultCurrent[m_direction][2])};</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; wxString str =</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; SetText(str);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; wxString str =</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction], m_decimalPlaces) +</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1] * baseCurrent[m_direction],</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2] * baseCurrent[m_direction],</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; SetText(str);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; SetText(str);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <a class="code" href="class_load.html">Load</a>* load = <span class="keyword">static_cast&lt;</span><a class="code" href="class_load.html">Load</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">if</span>(load) {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="keywordflow">if</span>(data.loadType == CONST_IMPEDANCE &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; sPower = std::pow(std::abs(v), 2) * sPower;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; }</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">if</span>(!load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; SetText(data.name);</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; }</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; }</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; }</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; }</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_sync_motor.html">SyncMotor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">if</span>(syncMotor) {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <span class="keywordflow">if</span>(!syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; SetText(data.name);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; }</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; }</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; }</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; }</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_ind_motor.html">IndMotor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">if</span>(indMotor) {</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; <span class="keywordflow">if</span>(!indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; SetText(data.name);</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; }</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; }</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; }</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; }</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_capacitor.html">Capacitor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">if</span>(capacitor) {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordtype">double</span> reativePower = data.reactivePower;</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; <span class="keywordflow">if</span>(!capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; reativePower = 0.0;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; std::complex&lt;double&gt; v =</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; reativePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; }</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; SetText(data.name);</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; }</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; }</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; }</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; }</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; }</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_inductor.html">Inductor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">if</span>(inductor) {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordtype">double</span> reativePower = data.reactivePower;</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <span class="keywordflow">if</span>(!inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; reativePower = 0.0;</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; std::complex&lt;double&gt; v =</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; reativePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; }</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; SetText(data.name);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; }</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; }</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; }</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; }</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; }</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;}</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"><a class="line" href="class_text.html#a06e740065c875633e458c0d8f860c43e"> 950</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a>()</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160;{</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <a class="code" href="class_text.html">Text</a>* copy = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="comment">// The pointers to wxGLString must be different or can cause crashes.</span></div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; copy-&gt;m_glString = NULL;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; copy-&gt;m_glStringArray = NULL;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; copy-&gt;SetText(copy-&gt;m_text);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160;}</div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00030">Text.cpp:30</a></div></div>
-<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00006">GraphicalElement.h:6</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00015">PowerElement.h:15</a></div></div>
-<div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00008">IndMotor.h:8</a></div></div>
-<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00008">SyncGenerator.h:8</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00145">Text.cpp:145</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00008">Inductor.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00075">Text.cpp:75</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00053">Element.cpp:53</a></div></div>
-<div class="ttc" id="class_text_html_a06e740065c875633e458c0d8f860c43e"><div class="ttname"><a href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00950">Text.cpp:950</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00016">PowerElement.h:16</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00008">TextForm.h:8</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00007">Line.h:7</a></div></div>
-<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00013">Load.h:13</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_form_8h.html">TextForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_8h.html">Text.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#ifdef USING_WX_3_0_X</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;DegreesAndRadians.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;Text::Text() : <a class="code" href="class_graphical_element.html">GraphicalElement</a>() { SetText(m_text); }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;Text::Text(wxPoint2DDouble position) : <a class="code" href="class_graphical_element.html">GraphicalElement</a>()</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;{</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_position = position;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; SetText(m_text);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;}</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;Text::~Text()</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;{</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">if</span>(m_glString) <span class="keyword">delete</span> m_glString;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordflow">if</span>(m_glStringArray) <span class="keyword">delete</span> m_glStringArray;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;}</div><div class="line"><a name="l00047"></a><span class="lineno"><a class="line" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0"> 47</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxPoint2DDouble ptR = <a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -m_angle);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;}</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keywordtype">void</span> Text::Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;{</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="comment">// Draw selection rectangle</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glPushMatrix();</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.5);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <a class="code" href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">DrawRectangle</a>(m_position + wxPoint2DDouble(m_borderSize / 2.0, m_borderSize / 2.0), m_rect.m_width,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_rect.m_height);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="comment">// Draw text (layer 2)</span></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(!m_isMultlineText) { <span class="comment">// Only one line</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_glString-&gt;bind();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_glString-&gt;render(m_position.m_x, m_position.m_y);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Multiples lines</span></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_glStringArray-&gt;bind();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="comment">// The text will be printed centralized.</span></div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">double</span> lineHeight = m_height / (double)m_numberOfLines;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_numberOfLines; i++) {</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_glStringArray-&gt;get(i)</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; .render(m_position.m_x, m_position.m_y - m_height / 2.0 + lineHeight / 2.0 + lineHeight * <span class="keywordtype">double</span>(i));</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glPopMatrix();</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"><a class="line" href="class_text.html#a9923c820cd77b411257ba48beceafeaa"> 92</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">return</span> <a class="code" href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">RotatedRectanglesIntersects</a>(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keywordtype">void</span> Text::SetText(wxString text)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;{</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_text = text;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; GLuint* idString = NULL;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; GLuint* idStringArray = NULL;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">if</span>(m_glString) {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keyword">delete</span> m_glString;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_glString = NULL;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; idString = <span class="keyword">new</span> GLuint;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; glGenTextures(1, idString);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(m_glStringArray) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keyword">delete</span> m_glStringArray;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_glStringArray = NULL;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; idStringArray = <span class="keyword">new</span> GLuint;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; glGenTextures(1, idStringArray);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_numberOfLines = m_text.Freq(<span class="charliteral">&#39;\n&#39;</span>) + 1;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(m_numberOfLines == 1) { <span class="comment">// Only one line</span></div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_isMultlineText = <span class="keyword">false</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_glString = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(m_text);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_glString-&gt;setFont(font);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_glString-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_width = m_glString-&gt;getWidth();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; m_height = m_glString-&gt;getheight();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_isMultlineText = <span class="keyword">true</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; m_glStringArray = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string_array.html">wxGLStringArray</a>();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; dc.SetFont(font);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; m_width = 0.0;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; m_height = 0.0;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; wxString multText = m_text;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; m_numberOfLines; ++i) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; wxString nextLine;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; wxString currentLine = multText.BeforeFirst(<span class="charliteral">&#39;\n&#39;</span>, &amp;nextLine);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; multText = nextLine;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; m_glStringArray-&gt;addString(currentLine);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; wxSize size = dc.GetTextExtent(currentLine);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">if</span>(size.GetWidth() &gt; m_width) m_width = size.GetWidth();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; m_height += size.GetHeight();</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; m_glStringArray-&gt;setFont(font);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_glStringArray-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(idString) glDeleteTextures(1, idString);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(idStringArray) glDeleteTextures(1, idStringArray);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Update text rectangle.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_position);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;}</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160;</div><div class="line"><a name="l00162"></a><span class="lineno"><a class="line" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3"> 162</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160;{</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160;}</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;<span class="keywordtype">bool</span> Text::ShowForm(wxWindow* parent, std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;{</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <a class="code" href="class_text_form.html">TextForm</a>* textForm = <span class="keyword">new</span> <a class="code" href="class_text_form.html">TextForm</a>(parent, <span class="keyword">this</span>, elementList);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">if</span>(textForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; textForm-&gt;Destroy();</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; textForm-&gt;Destroy();</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;}</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160;<span class="keywordtype">void</span> Text::UpdateText(<span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;{</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">switch</span>(m_elementType) {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> TYPE_NONE:</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; SetText(m_text);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">if</span>(bus) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordtype">double</span> baseVoltage = data.nominalVoltage;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage *= 1e3;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; SetText(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE: {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordtype">double</span> voltage = std::abs(data.voltage);</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; SetText(wxString::FromDouble(voltage, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; SetText(wxString::FromDouble(voltage * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; SetText(wxString::FromDouble(voltage * baseVoltage / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; }</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordtype">double</span> angle = std::arg(data.voltage);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>: {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; SetText(wxString::FromDouble(angle, m_decimalPlaces) + <span class="stringliteral">&quot; rad&quot;</span>);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>: {</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; SetText(wxString::FromDouble(wxRadToDeg(angle), m_decimalPlaces) + (wxString)L<span class="stringliteral">&#39;\u00B0&#39;</span>);</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; std::abs(data.faultCurrent[2])};</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; wxString str =</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; SetText(str);</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; SetText(str);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; wxString str =</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; SetText(str);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; }</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">double</span> faultVoltage[3] = {std::abs(data.faultVoltage[0]), std::abs(data.faultVoltage[1]),</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; std::abs(data.faultVoltage[2])};</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; wxString str =</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="stringliteral">&quot;Va = &quot;</span> + wxString::FromDouble(faultVoltage[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> + wxString::FromDouble(faultVoltage[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> + wxString::FromDouble(faultVoltage[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; SetText(str);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; wxString str = <span class="stringliteral">&quot;Va = &quot;</span> +</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; wxString::FromDouble(faultVoltage[0] * baseVoltage, m_decimalPlaces) +</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> +</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; wxString::FromDouble(faultVoltage[1] * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> +</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; wxString::FromDouble(faultVoltage[2] * baseVoltage, m_decimalPlaces) + <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; SetText(str);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; wxString str =</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="stringliteral">&quot;Va = &quot;</span> +</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; wxString::FromDouble(faultVoltage[0] * baseVoltage / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; str += <span class="stringliteral">&quot;\nVb = &quot;</span> +</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; wxString::FromDouble(faultVoltage[1] * baseVoltage / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; str += <span class="stringliteral">&quot;\nVc = &quot;</span> +</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; wxString::FromDouble(faultVoltage[2] * baseVoltage / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; SetText(str);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; SetText(wxString::FromDouble(data.scPower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VA&quot;</span>);</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="stringliteral">&quot; kVA&quot;</span>);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; SetText(wxString::FromDouble(data.scPower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="stringliteral">&quot; MVA&quot;</span>);</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; }</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; }</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; }</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = <span class="keyword">static_cast&lt;</span><a class="code" href="class_sync_generator.html">SyncGenerator</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(syncGenerator) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a> data = syncGenerator-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordtype">double</span> baseVoltage = syncGenerator-&gt;GetValueFromUnit(data.nominalVoltage, data.nominalVoltageUnit);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; SetText(data.name);</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordtype">double</span> activePower = data.activePower;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePower = 0.0;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; SetText(wxString::FromDouble(activePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; SetText(wxString::FromDouble(activePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">double</span> reactivePower = data.reactivePower;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(!syncGenerator-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePower = 0.0;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; SetText(wxString::FromDouble(reactivePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; SetText(wxString::FromDouble(reactivePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; }</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[0]), std::abs(data.faultCurrent[1]),</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; std::abs(data.faultCurrent[2])};</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; wxString str =</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; SetText(str);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; SetText(str);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; wxString str =</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; SetText(str);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; }</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; <span class="keywordflow">if</span>(line) {</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <a class="code" href="struct_line_electrical_data.html">LineElectricalData</a> data = line-&gt;GetElectricalData();</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordtype">double</span> baseVoltage = data.nominalVoltage;</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(data.nominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage *= 1e3;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">double</span> baseCurrent = systemPowerBase / (std::sqrt(3.0) * baseVoltage);</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; SetText(data.name);</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordtype">double</span> activePF = std::real(data.powerFlow[m_direction]);</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePF = 0.0;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; SetText(wxString::FromDouble(activePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; }</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordtype">double</span> reactivePF = std::imag(data.powerFlow[m_direction]);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePF = 0.0;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; }</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordtype">double</span> losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) losses = 0.0;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; SetText(wxString::FromDouble(losses, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; }</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordtype">double</span> current = std::abs(data.current[m_direction]);</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) current = 0.0;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; SetText(wxString::FromDouble(current, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; SetText(wxString::FromDouble(current * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; SetText(wxString::FromDouble(current * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; }</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[m_direction][0]),</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; std::abs(data.faultCurrent[m_direction][1]),</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; std::abs(data.faultCurrent[m_direction][2])};</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">if</span>(!line-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; wxString str =</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; SetText(str);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent, m_decimalPlaces) +</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent, m_decimalPlaces) + <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; SetText(str);</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; wxString str =</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; SetText(str);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; }</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = <span class="keyword">static_cast&lt;</span><a class="code" href="class_transformer.html">Transformer</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">if</span>(transformer) {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; <span class="keywordtype">double</span> baseVoltage[2] = {data.primaryNominalVoltage, data.secondaryNominalVoltage};</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">if</span>(data.primaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage[0] *= 1e3;</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">if</span>(data.secondaryNominalVoltageUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>) baseVoltage[1] *= 1e3;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordtype">double</span> baseCurrent[2] = {systemPowerBase / (std::sqrt(3.0) * baseVoltage[0]),</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; systemPowerBase / (std::sqrt(3.0) * baseVoltage[1])};</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; SetText(data.name);</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordtype">double</span> activePF = std::real(data.powerFlow[m_direction]);</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) activePF = 0.0;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; SetText(wxString::FromDouble(activePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; SetText(wxString::FromDouble(activePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; }</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordtype">double</span> reactivePF = std::imag(data.powerFlow[m_direction]);</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) reactivePF = 0.0;</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; SetText(wxString::FromDouble(reactivePF, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; SetText(wxString::FromDouble(reactivePF * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; }</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordtype">double</span> losses = std::abs(std::real(data.powerFlow[0]) + std::real(data.powerFlow[1]));</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) losses = 0.0;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; SetText(wxString::FromDouble(losses, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e3, m_decimalPlaces) + <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; SetText(wxString::FromDouble(losses * systemPowerBase / 1e6, m_decimalPlaces) + <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; }</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordtype">double</span> current = std::abs(data.current[m_direction]);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) current = 0.0;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; SetText(wxString::FromDouble(current, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; SetText(wxString::FromDouble(current * baseCurrent[m_direction], m_decimalPlaces) +</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="stringliteral">&quot; A&quot;</span>);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; SetText(</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; wxString::FromDouble(current * baseCurrent[m_direction] / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>);</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; }</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordtype">double</span> faultCurrent[3] = {std::abs(data.faultCurrent[m_direction][0]),</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; std::abs(data.faultCurrent[m_direction][1]),</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; std::abs(data.faultCurrent[m_direction][2])};</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">if</span>(!transformer-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) faultCurrent[0] = faultCurrent[1] = faultCurrent[2] = 0.0;</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; wxString str =</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> + wxString::FromDouble(faultCurrent[0], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2], m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>;</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; SetText(str);</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; wxString str =</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction], m_decimalPlaces) +</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> + wxString::FromDouble(faultCurrent[1] * baseCurrent[m_direction],</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> + wxString::FromDouble(faultCurrent[2] * baseCurrent[m_direction],</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="stringliteral">&quot; A&quot;</span>;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; SetText(str);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; wxString str = <span class="stringliteral">&quot;Ia = &quot;</span> +</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; wxString::FromDouble(faultCurrent[0] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; str += <span class="stringliteral">&quot;\nIb = &quot;</span> +</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; wxString::FromDouble(faultCurrent[1] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; str += <span class="stringliteral">&quot;\nIc = &quot;</span> +</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; wxString::FromDouble(faultCurrent[2] * baseCurrent[m_direction] / 1e3,</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; m_decimalPlaces) +</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <span class="stringliteral">&quot; kA&quot;</span>;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; SetText(str);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <a class="code" href="class_load.html">Load</a>* load = <span class="keyword">static_cast&lt;</span><a class="code" href="class_load.html">Load</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">if</span>(load) {</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <a class="code" href="struct_load_electrical_data.html">LoadElectricalData</a> data = load-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; <span class="keywordflow">if</span>(data.loadType == CONST_IMPEDANCE &amp;&amp; load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; std::complex&lt;double&gt; v = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(load-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; sPower = std::pow(std::abs(v), 2) * sPower;</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; }</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">if</span>(!load-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; SetText(data.name);</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; }</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; }</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; }</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; }</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; }</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; }</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; }</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; }</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; }</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; }</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_sync_motor.html">SyncMotor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">if</span>(syncMotor) {</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <a class="code" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a> data = syncMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">if</span>(!syncMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; SetText(data.name);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; }</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; }</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; }</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; }</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; }</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_ind_motor.html">IndMotor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">if</span>(indMotor) {</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a> data = indMotor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; std::complex&lt;double&gt; sPower(data.activePower, data.reactivePower);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">if</span>(!indMotor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>()) sPower = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; SetText(data.name);</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; SetText(wxString::FromDouble(sPower.real(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; }</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; W&quot;</span>);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="stringliteral">&quot; kW&quot;</span>);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; }</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; SetText(wxString::FromDouble(sPower.real() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="stringliteral">&quot; MW&quot;</span>);</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; }</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160; }</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; SetText(wxString::FromDouble(sPower.imag(), m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; }</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase, m_decimalPlaces) +</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; }</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; }</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; SetText(wxString::FromDouble(sPower.imag() * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; }</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; }</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; }</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; }</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_capacitor.html">Capacitor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">if</span>(capacitor) {</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a> data = capacitor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordtype">double</span> reativePower = data.reactivePower;</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; <span class="keywordflow">if</span>(!capacitor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; reativePower = 0.0;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; std::complex&lt;double&gt; v =</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(capacitor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; reativePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; }</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; SetText(data.name);</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; }</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; }</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; }</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; }</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; }</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = <span class="keyword">static_cast&lt;</span><a class="code" href="class_inductor.html">Inductor</a>*<span class="keyword">&gt;</span>(m_element);</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">if</span>(inductor) {</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="struct_inductor_electrical_data.html">InductorElectricalData</a> data = inductor-&gt;GetPUElectricalData(systemPowerBase);</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; <span class="keywordtype">double</span> reativePower = data.reactivePower;</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; <span class="keywordflow">if</span>(!inductor-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>())</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; reativePower = 0.0;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; std::complex&lt;double&gt; v =</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(inductor-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData().voltage;</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; reativePower *= std::pow(std::abs(v), 2);</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; }</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; <span class="keywordflow">switch</span>(m_dataType) {</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; SetText(data.name);</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">switch</span>(m_unit) {</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; SetText(wxString::FromDouble(reativePower, m_decimalPlaces) + <span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; }</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase, m_decimalPlaces) + <span class="stringliteral">&quot; VAr&quot;</span>);</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; }</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e3, m_decimalPlaces) +</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="stringliteral">&quot; kVAr&quot;</span>);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; }</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; SetText(wxString::FromDouble(reativePower * systemPowerBase / 1e6, m_decimalPlaces) +</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; <span class="stringliteral">&quot; MVAr&quot;</span>);</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; }</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; }</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; }</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; }</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160;}</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"><a class="line" href="class_text.html#a06e740065c875633e458c0d8f860c43e"> 967</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a>()</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160;{</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <a class="code" href="class_text.html">Text</a>* copy = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="comment">// The pointers to wxGLString must be different or can cause crashes.</span></div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; copy-&gt;m_glString = NULL;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; copy-&gt;m_glStringArray = NULL;</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; copy-&gt;SetText(copy-&gt;m_text);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160;}</div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00047">Text.cpp:47</a></div></div>
+<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdoc">Abstract class for graphical elements shown with power elements in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00030">GraphicalElement.h:30</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00032">PowerElement.h:32</a></div></div>
+<div class="ttc" id="struct_ind_motor_electrical_data_html"><div class="ttname"><a href="struct_ind_motor_electrical_data.html">IndMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00025">IndMotor.h:25</a></div></div>
+<div class="ttc" id="struct_sync_generator_electrical_data_html"><div class="ttname"><a href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00025">SyncGenerator.h:25</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00162">Text.cpp:162</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00047">PowerElement.h:47</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="struct_inductor_electrical_data_html"><div class="ttname"><a href="struct_inductor_electrical_data.html">InductorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00025">Inductor.h:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00092">Text.cpp:92</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="class_element_html_a6c37e613808c5ee3bc37bb14a1fe85c8"><div class="ttname"><a href="class_element.html#a6c37e613808c5ee3bc37bb14a1fe85c8">Element::DrawRectangle</a></div><div class="ttdeci">virtual void DrawRectangle(wxPoint2DDouble position, double width, double height, GLenum mode=GL_QUADS) const</div><div class="ttdoc">Draw rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00069">Element.cpp:69</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
+<div class="ttc" id="class_text_html_a06e740065c875633e458c0d8f860c43e"><div class="ttname"><a href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00967">Text.cpp:967</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00033">PowerElement.h:33</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdoc">Form to edit the text graphical data. </div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00032">TextForm.h:32</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="struct_line_electrical_data_html"><div class="ttname"><a href="struct_line_electrical_data.html">LineElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00024">Line.h:24</a></div></div>
+<div class="ttc" id="struct_load_electrical_data_html"><div class="ttname"><a href="struct_load_electrical_data.html">LoadElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00026">Load.h:26</a></div></div>
+<div class="ttc" id="_text_8h_html"><div class="ttname"><a href="_text_8h.html">Text.h</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="_text_form_8h_html"><div class="ttname"><a href="_text_form_8h.html">TextForm.h</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00048">PowerElement.h:48</a></div></div>
<div class="ttc" id="classwx_g_l_string_array_html"><div class="ttname"><a href="classwx_g_l_string_array.html">wxGLStringArray</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00168">wxGLString.h:168</a></div></div>
-<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00132">Element.cpp:132</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
+<div class="ttc" id="class_element_html_a01563b5b2fed2860132f4dd1593f9eea"><div class="ttname"><a href="class_element.html#a01563b5b2fed2860132f4dd1593f9eea">Element::RotatedRectanglesIntersects</a></div><div class="ttdeci">virtual bool RotatedRectanglesIntersects(wxRect2DDouble rect1, wxRect2DDouble rect2, double angle1, double angle2) const</div><div class="ttdoc">Check if two roteted rectangles intersect. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00147">Element.cpp:147</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00008">Capacitor.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
-<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00008">SyncMotor.h:8</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
+<div class="ttc" id="struct_capacitor_electrical_data_html"><div class="ttname"><a href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00025">Capacitor.h:25</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
+<div class="ttc" id="struct_sync_motor_electrical_data_html"><div class="ttname"><a href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00025">SyncMotor.h:25</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_text_8h.html b/docs/doxygen/html/_text_8h.html
new file mode 100644
index 0000000..3c05a89
--- /dev/null
+++ b/docs/doxygen/html/_text_8h.html
@@ -0,0 +1,155 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Text.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_text_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Text.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_graphical_element_8h_source.html">GraphicalElement.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&quot;</code><br />
+<code>#include &quot;wxGLString.h&quot;</code><br />
+</div>
+<p><a href="_text_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_text.html">Text</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight"><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that shows power element informations in workspace. <a href="class_text.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a16b11be27a8e9362dd122c4d879e01ae"><td class="memItemLeft" align="right" valign="top"><a id="a16b11be27a8e9362dd122c4d879e01ae"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ElementType</b> { <br />
+&#160;&#160;<b>TYPE_NONE</b> = 0,
+<b>TYPE_BUS</b>,
+<b>TYPE_CAPACITOR</b>,
+<b>TYPE_IND_MOTOR</b>,
+<br />
+&#160;&#160;<b>TYPE_INDUCTOR</b>,
+<b>TYPE_LINE</b>,
+<b>TYPE_LOAD</b>,
+<b>TYPE_SYNC_GENERATOR</b>,
+<br />
+&#160;&#160;<b>TYPE_SYNC_MOTOR</b>,
+<b>TYPE_TRANSFORMER</b>
+<br />
+ }</td></tr>
+<tr class="separator:a16b11be27a8e9362dd122c4d879e01ae"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="memItemLeft" align="right" valign="top"><a id="ad8ed01ff3ff33333d8e19db4d2818bb6"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>DataType</b> { <br />
+&#160;&#160;<b>DATA_NAME</b>,
+<b>DATA_VOLTAGE</b>,
+<b>DATA_ANGLE</b>,
+<b>DATA_SC_CURRENT</b>,
+<br />
+&#160;&#160;<b>DATA_SC_VOLTAGE</b>,
+<b>DATA_SC_POWER</b>,
+<b>DATA_ACTIVE_POWER</b>,
+<b>DATA_REACTIVE_POWER</b>,
+<br />
+&#160;&#160;<b>DATA_PF_ACTIVE</b>,
+<b>DATA_PF_REACTIVE</b>,
+<b>DATA_PF_LOSSES</b>,
+<b>DATA_PF_CURRENT</b>
+<br />
+ }</td></tr>
+<tr class="separator:ad8ed01ff3ff33333d8e19db4d2818bb6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_text_8h.html">Text.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_text_8h.js b/docs/doxygen/html/_text_8h.js
new file mode 100644
index 0000000..6db81f3
--- /dev/null
+++ b/docs/doxygen/html/_text_8h.js
@@ -0,0 +1,30 @@
+var _text_8h =
+[
+ [ "Text", "class_text.html", "class_text" ],
+ [ "DataType", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6", [
+ [ "DATA_NAME", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ab7040a50973a299b4bb7a583c96daadd", null ],
+ [ "DATA_VOLTAGE", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a2ca371d2e0d1ad3ac5b2b50adfafd9e1", null ],
+ [ "DATA_ANGLE", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a4e82b326f9c3de98460df5362aa44e92", null ],
+ [ "DATA_SC_CURRENT", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6aabd0755439b58817f974429b6fc24b75", null ],
+ [ "DATA_SC_VOLTAGE", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a4c60231ccdc66a26e8496abe76576f24", null ],
+ [ "DATA_SC_POWER", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6af3c8353176bb407fb6b1b40efd5476d1", null ],
+ [ "DATA_ACTIVE_POWER", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6af39976a2a2423b1817236bef5d2213e7", null ],
+ [ "DATA_REACTIVE_POWER", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a77de5416cbae97c24743d0b479d3e942", null ],
+ [ "DATA_PF_ACTIVE", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6aa62cac0375f8d12dad808a2714811d1d", null ],
+ [ "DATA_PF_REACTIVE", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ae1b2bf8507145590a0e4152cc9630d82", null ],
+ [ "DATA_PF_LOSSES", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ad7558996cb619db166f38c76c75bb232", null ],
+ [ "DATA_PF_CURRENT", "_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ad45f89e02b92507cadf1f1116e9474fb", null ]
+ ] ],
+ [ "ElementType", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01ae", [
+ [ "TYPE_NONE", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea01a66f4d8d66e4614c1c900c5a1c37ff", null ],
+ [ "TYPE_BUS", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aeaf00e74cf5eee391e33017bded0e16441", null ],
+ [ "TYPE_CAPACITOR", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea998ba698d626c693ac0221506d9b25f4", null ],
+ [ "TYPE_IND_MOTOR", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aead674b87cc573664b0ed19aea4dad9b28", null ],
+ [ "TYPE_INDUCTOR", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea96ea624f93518535cfa4cdbf874fc5a5", null ],
+ [ "TYPE_LINE", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea6a7fcf36ea744349687acad656884ee6", null ],
+ [ "TYPE_LOAD", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea4924f28256f67f848f35fd2c52316425", null ],
+ [ "TYPE_SYNC_GENERATOR", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea04e67f46cc2905135b5d376518542b12", null ],
+ [ "TYPE_SYNC_MOTOR", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aeac13da57b6eda9c8ec23ed0a371600320", null ],
+ [ "TYPE_TRANSFORMER", "_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea111c77888a1c99bf6aae9e70c460cf5c", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_text_8h_source.html b/docs/doxygen/html/_text_8h_source.html
index 1eff68c..5b4f986 100644
--- a/docs/doxygen/html/_text_8h_source.html
+++ b/docs/doxygen/html/_text_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,34 +88,35 @@ $(document).ready(function(){initNavTree('_text_8h_source.html','');});
<div class="title">Text.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TEXT_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TEXT_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;GraphicalElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">class </span><a class="code" href="class_text_form.html">TextForm</a>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">enum</span> ElementType {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; TYPE_NONE = 0,</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; TYPE_BUS,</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; TYPE_CAPACITOR,</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; TYPE_IND_MOTOR,</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; TYPE_INDUCTOR,</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; TYPE_LINE,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; TYPE_LOAD,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; TYPE_SYNC_GENERATOR,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; TYPE_SYNC_MOTOR,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; TYPE_TRANSFORMER</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;};</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">enum</span> DataType {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; DATA_NAME,</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; DATA_VOLTAGE,</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; DATA_ANGLE,</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; DATA_SC_CURRENT,</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; DATA_SC_VOLTAGE,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; DATA_SC_POWER,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; DATA_ACTIVE_POWER,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DATA_REACTIVE_POWER,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; DATA_PF_ACTIVE,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; DATA_PF_REACTIVE,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DATA_PF_LOSSES,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; DATA_PF_CURRENT</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"><a class="line" href="class_text.html"> 48</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_text.html">Text</a> : <span class="keyword">public</span> <a class="code" href="class_graphical_element.html">GraphicalElement</a></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <a class="code" href="class_text.html">Text</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; ~<a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_text.html#a06e740065c875633e458c0d8f860c43e">GetCopy</a>();</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_text.html#a4f273ea7008c72533327c25caff2e917"> 56</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a4f273ea7008c72533327c25caff2e917">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">true</span>; };</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Intersects</a>(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> wxString GetText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_text; }</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetText(wxString text);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">void</span> SetDataType(<span class="keyword">const</span> DataType&amp; dataType) { m_dataType = dataType; }</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordtype">void</span> SetDirection(<span class="keywordtype">int</span> direction) { m_direction = direction; }</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">void</span> SetElement(<a class="code" href="class_element.html">Element</a>* element) { m_element = element; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordtype">void</span> SetElementNumber(<span class="keywordtype">int</span> elementNumber) { m_elementNumber = elementNumber; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordtype">void</span> SetElementType(<span class="keyword">const</span> ElementType elementType) { m_elementType = elementType; }</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordtype">void</span> SetFontSize(<span class="keywordtype">int</span> fontSize) { m_fontSize = fontSize; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">void</span> SetUnit(<span class="keyword">const</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> unit) { m_unit = unit; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordtype">void</span> SetDecimalPlaces(<span class="keywordtype">int</span> decimalPlaces) { m_decimalPlaces = decimalPlaces; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">const</span> DataType GetDataType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dataType; }</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">int</span> GetDirection()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_direction; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_element.html">Element</a>* GetElement() { <span class="keywordflow">return</span> m_element; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">int</span> GetElementNumber()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementNumber; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">const</span> ElementType GetElementType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementType; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordtype">int</span> GetFontSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_fontSize; }</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">const</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> GetUnit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_unit; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordtype">int</span> GetDecimalPlaces()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_decimalPlaces; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glString = NULL;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <a class="code" href="classwx_g_l_string_array.html">wxGLStringArray</a>* m_glStringArray = NULL;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; wxString m_text = _(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordtype">int</span> m_numberOfLines;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">bool</span> m_isMultlineText = <span class="keyword">false</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_element.html">Element</a>* m_element = NULL;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; ElementType m_elementType = TYPE_NONE;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">int</span> m_elementNumber;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; DataType m_dataType;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> m_unit;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">int</span> m_direction = 0;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">int</span> m_decimalPlaces = 2;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // TEXT_H</span></div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00030">Text.cpp:30</a></div></div>
-<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00006">GraphicalElement.h:6</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00145">Text.cpp:145</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00075">Text.cpp:75</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="class_text_html_a06e740065c875633e458c0d8f860c43e"><div class="ttname"><a href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00950">Text.cpp:950</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_text_html_a4f273ea7008c72533327c25caff2e917"><div class="ttname"><a href="class_text.html#a4f273ea7008c72533327c25caff2e917">Text::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00056">Text.h:56</a></div></div>
-<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00008">TextForm.h:8</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div><div class="ttdoc">Switching data of power elements. </div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
+<a href="_text_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TEXT_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TEXT_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_graphical_element_8h.html">GraphicalElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_element_8h.html">PowerElement.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_text_form.html">TextForm</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_bus.html">Bus</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">enum</span> ElementType {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; TYPE_NONE = 0,</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; TYPE_BUS,</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; TYPE_CAPACITOR,</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; TYPE_IND_MOTOR,</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; TYPE_INDUCTOR,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; TYPE_LINE,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; TYPE_LOAD,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; TYPE_SYNC_GENERATOR,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; TYPE_SYNC_MOTOR,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; TYPE_TRANSFORMER</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;};</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">enum</span> DataType {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; DATA_NAME,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; DATA_VOLTAGE,</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DATA_ANGLE,</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; DATA_SC_CURRENT,</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; DATA_SC_VOLTAGE,</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; DATA_SC_POWER,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; DATA_ACTIVE_POWER,</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; DATA_REACTIVE_POWER,</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; DATA_PF_ACTIVE,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; DATA_PF_REACTIVE,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; DATA_PF_LOSSES,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; DATA_PF_CURRENT</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;};</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"><a class="line" href="class_text.html"> 72</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_text.html">Text</a> : <span class="keyword">public</span> <a class="code" href="class_graphical_element.html">GraphicalElement</a></div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;{</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <a class="code" href="class_text.html">Text</a>(wxPoint2DDouble position);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; ~<a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_text.html#a06e740065c875633e458c0d8f860c43e">GetCopy</a>();</div><div class="line"><a name="l00080"></a><span class="lineno"><a class="line" href="class_text.html#a4f273ea7008c72533327c25caff2e917"> 80</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a4f273ea7008c72533327c25caff2e917">AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position) { <span class="keywordflow">return</span> <span class="keyword">true</span>; };</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Intersects</a>(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText(<span class="keywordtype">double</span> systemPowerBase);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> wxString GetText()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_text; }</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetText(wxString text);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> SetDataType(<span class="keyword">const</span> DataType&amp; dataType) { m_dataType = dataType; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> SetDirection(<span class="keywordtype">int</span> direction) { m_direction = direction; }</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">void</span> SetElement(<a class="code" href="class_element.html">Element</a>* element) { m_element = element; }</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> SetElementNumber(<span class="keywordtype">int</span> elementNumber) { m_elementNumber = elementNumber; }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> SetElementType(<span class="keyword">const</span> ElementType elementType) { m_elementType = elementType; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> SetFontSize(<span class="keywordtype">int</span> fontSize) { m_fontSize = fontSize; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">void</span> SetUnit(<span class="keyword">const</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> unit) { m_unit = unit; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">void</span> SetDecimalPlaces(<span class="keywordtype">int</span> decimalPlaces) { m_decimalPlaces = decimalPlaces; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">const</span> DataType GetDataType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_dataType; }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">int</span> GetDirection()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_direction; }</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_element.html">Element</a>* GetElement() { <span class="keywordflow">return</span> m_element; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">int</span> GetElementNumber()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementNumber; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">const</span> ElementType GetElementType()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_elementType; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">int</span> GetFontSize()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_fontSize; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">const</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> GetUnit()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_unit; }</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">int</span> GetDecimalPlaces()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_decimalPlaces; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glString = NULL;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="classwx_g_l_string_array.html">wxGLStringArray</a>* m_glStringArray = NULL;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; wxString m_text = _(<span class="stringliteral">&quot;Text&quot;</span>);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">int</span> m_numberOfLines;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">bool</span> m_isMultlineText = <span class="keyword">false</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <a class="code" href="class_element.html">Element</a>* m_element = NULL;</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; ElementType m_elementType = TYPE_NONE;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">int</span> m_elementNumber;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; DataType m_dataType;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> m_unit;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">int</span> m_direction = 0;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">int</span> m_decimalPlaces = 2;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;};</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="preprocessor">#endif // TEXT_H</span></div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00047">Text.cpp:47</a></div></div>
+<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="class_graphical_element_html"><div class="ttname"><a href="class_graphical_element.html">GraphicalElement</a></div><div class="ttdoc">Abstract class for graphical elements shown with power elements in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_graphical_element_8h_source.html#l00030">GraphicalElement.h:30</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00162">Text.cpp:162</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00092">Text.cpp:92</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="class_text_html_a06e740065c875633e458c0d8f860c43e"><div class="ttname"><a href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00967">Text.cpp:967</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_text_html_a4f273ea7008c72533327c25caff2e917"><div class="ttname"><a href="class_text.html#a4f273ea7008c72533327c25caff2e917">Text::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00080">Text.h:80</a></div></div>
+<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdoc">Form to edit the text graphical data. </div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00032">TextForm.h:32</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html"><div class="ttname"><a href="_power_element_8h.html">PowerElement.h</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="_graphical_element_8h_html"><div class="ttname"><a href="_graphical_element_8h.html">GraphicalElement.h</a></div></div>
<div class="ttc" id="classwx_g_l_string_array_html"><div class="ttname"><a href="classwx_g_l_string_array.html">wxGLStringArray</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00168">wxGLString.h:168</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Text.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_text_8h.html">Text.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_text_form_8cpp_source.html b/docs/doxygen/html/_text_form_8cpp_source.html
index 560f7a4..cec668f 100644
--- a/docs/doxygen/html/_text_form_8cpp_source.html
+++ b/docs/doxygen/html/_text_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,33 +88,34 @@ $(document).ready(function(){initNavTree('_text_form_8cpp_source.html','');});
<div class="title">TextForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TextForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;</div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;TextForm::TextForm(wxWindow* parent, <a class="code" href="class_text.html">Text</a>* text, std::vector&lt;Element*&gt; elementList, <span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160; : <a class="code" href="class_text_form_base.html">TextFormBase</a>(parent)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_parent = parent;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_textToEdit = text;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_allElements.GetElementsFromList(elementList);</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_systemPowerBase = systemPowerBase;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_text = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_text-&gt;SetElementType(text-&gt;GetElementType());</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_text-&gt;SetElementNumber(text-&gt;GetElementNumber());</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_text-&gt;SetElement(text-&gt;GetElement());</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_text-&gt;SetDataType(text-&gt;GetDataType());</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_text-&gt;SetDirection(text-&gt;GetDirection());</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_text-&gt;SetUnit(text-&gt;GetUnit());</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_text-&gt;SetDecimalPlaces(text-&gt;GetDecimalPlaces());</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span>(!LoadChoices()) {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_choiceName-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; m_choiceTextType-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;TextForm::~TextForm() {}</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;<span class="keywordtype">void</span> TextForm::OnElementChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;{</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">switch</span>(m_choiceElement-&gt;GetSelection()) {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_text-&gt;SetElementType(TYPE_BUS);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_text-&gt;SetElementType(TYPE_SYNC_GENERATOR);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_text-&gt;SetElementType(TYPE_LINE);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_text-&gt;SetElementType(TYPE_TRANSFORMER);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_text-&gt;SetElementType(TYPE_LOAD);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_text-&gt;SetElementType(TYPE_CAPACITOR);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">case</span> 6: {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_text-&gt;SetElementType(TYPE_INDUCTOR);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">case</span> 7: {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_text-&gt;SetElementType(TYPE_SYNC_MOTOR);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">case</span> 8: {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_text-&gt;SetElementType(TYPE_IND_MOTOR);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; }</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; ElementTypeChoice();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;}</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;<span class="keywordtype">void</span> TextForm::OnFromBusChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;{</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_text-&gt;SetDirection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_choiceTextToBus-&gt;SetSelection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;}</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;<span class="keywordtype">void</span> TextForm::OnNameChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;{</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_text-&gt;SetElementNumber(m_choiceName-&gt;GetSelection());</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; ElementNumberChoice();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> TextForm::OnTextEnter(wxCommandEvent&amp; event) { Preview(); }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;<span class="keywordtype">void</span> TextForm::OnToBusChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;{</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; m_text-&gt;SetDirection(m_choiceTextToBus-&gt;GetSelection());</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_choiceTextFromBus-&gt;SetSelection(m_choiceTextToBus-&gt;GetSelection());</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160;<span class="keywordtype">void</span> TextForm::OnUnitChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; UnitChoice();</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; Preview();</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;<span class="keywordtype">void</span> TextForm::OnTypeChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_text-&gt;SetDataType(DATA_VOLTAGE);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_text-&gt;SetDataType(DATA_ANGLE);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; m_text-&gt;SetDataType(DATA_SC_VOLTAGE);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_text-&gt;SetDataType(DATA_SC_POWER);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_text-&gt;SetDataType(DATA_ACTIVE_POWER);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; }</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">case</span> TYPE_LINE:</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_text-&gt;SetDataType(DATA_PF_ACTIVE);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_text-&gt;SetDataType(DATA_PF_REACTIVE);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_text-&gt;SetDataType(DATA_PF_LOSSES);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; m_text-&gt;SetDataType(DATA_PF_CURRENT);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; }</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD:</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR:</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; m_text-&gt;SetDataType(DATA_ACTIVE_POWER);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; }</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR:</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; DataTypeChoice();</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() == DATA_NAME) Preview();</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160;}</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;<span class="keywordtype">bool</span> TextForm::LoadChoices()</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;{</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetElementType() == TYPE_NONE) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="comment">// Fill the element possible choices.</span></div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; ElementTypeChoice();</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_choiceName-&gt;SetSelection(m_text-&gt;GetElementNumber());</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; ElementNumberChoice();</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; DataTypeChoice();</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="comment">// Select the saved choices.</span></div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_choiceElement-&gt;SetSelection(0);</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE: {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>: {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; }</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; }</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; }</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; }</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; m_choiceElement-&gt;SetSelection(1);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; }</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; }</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; }</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; }</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; m_choiceElement-&gt;SetSelection(2);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; }</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; }</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; m_choiceElement-&gt;SetSelection(3);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; }</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; }</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; }</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; }</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; }</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; m_choiceElement-&gt;SetSelection(4);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; }</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; }</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; m_choiceElement-&gt;SetSelection(5);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; }</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; m_choiceElement-&gt;SetSelection(6);</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; }</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; }</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; m_choiceElement-&gt;SetSelection(7);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; }</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; }</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; }</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; m_choiceElement-&gt;SetSelection(8);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; }</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; }</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; }</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; }</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;IsEnabled()) m_choiceTextFromBus-&gt;SetSelection(m_text-&gt;GetDirection());</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keywordflow">if</span>(m_choiceTextToBus-&gt;IsEnabled()) m_choiceTextToBus-&gt;SetSelection(m_text-&gt;GetDirection());</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160;</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; m_textCtrlDecimal-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, m_text-&gt;GetDecimalPlaces()));</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; Preview();</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160;</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160;}</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160;<span class="keywordtype">void</span> TextForm::ElementTypeChoice()</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160;{</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; m_choiceTextType-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; m_choiceTextType-&gt;Clear();</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; m_choiceName-&gt;Clear();</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetBusList().size(); i++) {</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_allElements.GetBusList()[i];</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; arrayString.Add(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; }</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetSyncGeneratorList().size(); i++) {</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = m_allElements.GetSyncGeneratorList()[i];</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; arrayString.Add(syncGenerator-&gt;GetElectricalData().name);</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; }</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetLineList().size(); i++) {</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_allElements.GetLineList()[i];</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; arrayString.Add(line-&gt;GetElectricalData().name);</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; }</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetTransformerList().size(); i++) {</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_allElements.GetTransformerList()[i];</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; arrayString.Add(transformer-&gt;GetElectricalData().name);</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; }</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetLoadList().size(); i++) {</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; <a class="code" href="class_load.html">Load</a>* load = m_allElements.GetLoadList()[i];</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; arrayString.Add(load-&gt;GetElectricalData().name);</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; }</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetCapacitorList().size(); i++) {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = m_allElements.GetCapacitorList()[i];</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; arrayString.Add(capacitor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetInductorList().size(); i++) {</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = m_allElements.GetInductorList()[i];</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; arrayString.Add(inductor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; }</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetSyncMotorList().size(); i++) {</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = m_allElements.GetSyncMotorList()[i];</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; arrayString.Add(syncMotor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; }</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetIndMotorList().size(); i++) {</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = m_allElements.GetIndMotorList()[i];</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; arrayString.Add(indMotor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; }</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; m_choiceName-&gt;Append(arrayString);</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; m_choiceName-&gt;Enable();</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;}</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="keywordtype">void</span> TextForm::ElementNumberChoice()</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;{</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; <span class="keywordtype">int</span> index = m_choiceName-&gt;GetSelection();</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; m_text-&gt;SetElementNumber(index);</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; m_choiceTextType-&gt;Clear();</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_allElements.GetBusList()[index];</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; m_text-&gt;SetElement(bus);</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Voltage&quot;</span>));</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault voltage&quot;</span>));</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Short-circuit power&quot;</span>));</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = m_allElements.GetSyncGeneratorList()[index];</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; m_text-&gt;SetElement(syncGenerator);</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160;</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_allElements.GetLineList()[index];</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; m_text-&gt;SetElement(line);</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160;</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power flow&quot;</span>));</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power flow&quot;</span>));</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Losses&quot;</span>));</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Current&quot;</span>));</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_allElements.GetTransformerList()[index];</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; m_text-&gt;SetElement(transformer);</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power flow&quot;</span>));</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power flow&quot;</span>));</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Losses&quot;</span>));</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Current&quot;</span>));</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <a class="code" href="class_load.html">Load</a>* load = m_allElements.GetLoadList()[index];</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; m_text-&gt;SetElement(load);</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160;</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = m_allElements.GetCapacitorList()[index];</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; m_text-&gt;SetElement(capacitor);</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160;</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = m_allElements.GetInductorList()[index];</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; m_text-&gt;SetElement(inductor);</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160;</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = m_allElements.GetSyncMotorList()[index];</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; m_text-&gt;SetElement(syncMotor);</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160;</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = m_allElements.GetIndMotorList()[index];</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; m_text-&gt;SetElement(indMotor);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; }</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; m_choiceTextType-&gt;Append(arrayString);</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; m_choiceTextType-&gt;Enable();</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160;}</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;<span class="keywordtype">void</span> TextForm::DataTypeChoice()</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;{</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; m_choiceTextUnit-&gt;Enable();</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160;</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE:</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;V&quot;</span>));</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kV&quot;</span>));</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Degrees&quot;</span>));</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Radians&quot;</span>));</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT:</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;A&quot;</span>));</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kA&quot;</span>));</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;VA&quot;</span>));</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kVA&quot;</span>));</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MVA&quot;</span>));</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER:</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE:</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;W&quot;</span>));</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kW&quot;</span>));</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MW&quot;</span>));</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; m_choiceTextUnit-&gt;Enable();</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER:</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;VAr&quot;</span>));</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kVAr&quot;</span>));</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MVAr&quot;</span>));</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; }</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; m_choiceTextUnit-&gt;Append(arrayString);</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES) {</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; <span class="keyword">auto</span> it = m_allElements.GetLineList().begin();</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; std::advance(it, m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160;</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;GetParentList()[0]);</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;GetParentList()[1]);</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; wxString bus1Name = bus1-&gt;GetElectricalData().name;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; wxString bus2Name = bus2-&gt;GetElectricalData().name;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; m_choiceTextFromBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; m_choiceTextFromBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; m_choiceTextToBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; m_choiceTextToBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; m_choiceTextFromBus-&gt;SetSelection(0);</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; m_choiceTextToBus-&gt;SetSelection(0);</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; m_choiceTextFromBus-&gt;Enable();</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; m_choiceTextToBus-&gt;Enable();</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES) {</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <span class="keyword">auto</span> it = m_allElements.GetTransformerList().begin();</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; std::advance(it, m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;GetParentList()[0]);</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;GetParentList()[1]);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; wxString bus1Name = bus1-&gt;GetElectricalData().name;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; wxString bus2Name = bus2-&gt;GetElectricalData().name;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; m_choiceTextFromBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; m_choiceTextFromBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; m_choiceTextToBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; m_choiceTextToBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; m_choiceTextFromBus-&gt;SetSelection(0);</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; m_choiceTextToBus-&gt;SetSelection(0);</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; m_choiceTextFromBus-&gt;Enable();</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; m_choiceTextToBus-&gt;Enable();</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; }</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; }</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160;}</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;<span class="keywordtype">void</span> TextForm::UnitChoice()</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;{</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE:</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>);</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>);</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; }</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>);</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; }</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT:</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>);</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>);</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; }</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>);</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER:</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE:</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>);</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>);</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; }</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER:</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>);</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>);</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>);</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; }</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; }</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;}</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="keywordtype">void</span> TextForm::Preview()</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordtype">double</span> decimalPlaces = m_text-&gt;GetDecimalPlaces();</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <span class="keywordflow">if</span>(m_textCtrlDecimal-&gt;GetValue().ToDouble(&amp;decimalPlaces)) m_text-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; m_text-&gt;UpdateText(m_systemPowerBase);</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160;</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; m_textCtrlPreview-&gt;SetValue(m_text-&gt;GetText());</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160;}</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160;<span class="keywordtype">bool</span> TextForm::ValidateData()</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;{</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">if</span>(m_choiceElement-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">if</span>(m_choiceName-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; <span class="keywordflow">if</span>(m_choiceTextType-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_NAME &amp;&amp; m_choiceTextUnit-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetElementType() == TYPE_LINE || m_text-&gt;GetElementType() == TYPE_TRANSFORMER) {</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES &amp;&amp; m_text-&gt;GetDataType() != DATA_NAME) {</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordflow">if</span>(m_choiceTextToBus-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; }</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; }</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160;</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;IsEnabled() &amp;&amp; m_choiceTextToBus-&gt;IsEnabled())</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; m_text-&gt;SetDirection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <span class="keywordtype">double</span> decimalPlaces = m_text-&gt;GetDecimalPlaces();</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; <span class="keywordflow">if</span>(m_textCtrlDecimal-&gt;GetValue().ToDouble(&amp;decimalPlaces)) m_text-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; m_textToEdit-&gt;SetElementType(m_text-&gt;GetElementType());</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; m_textToEdit-&gt;SetElementNumber(m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; m_textToEdit-&gt;SetElement(m_text-&gt;GetElement());</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; m_textToEdit-&gt;SetDataType(m_text-&gt;GetDataType());</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; m_textToEdit-&gt;SetDirection(m_text-&gt;GetDirection());</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; m_textToEdit-&gt;SetUnit(m_text-&gt;GetUnit());</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; m_textToEdit-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; m_textToEdit-&gt;UpdateText(m_systemPowerBase);</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160;}</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160;<span class="keywordtype">void</span> TextForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160;{</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; wxString errorMsg = _(<span class="stringliteral">&quot;There are blank fields.&quot;</span>);</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; }</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160;}</div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00015">PowerElement.h:15</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00019">PowerElement.h:19</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00018">PowerElement.h:18</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00016">PowerElement.h:16</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00025">PowerElement.h:25</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00024">PowerElement.h:24</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00023">PowerElement.h:23</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_form_8h.html">TextForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;TextForm::TextForm(wxWindow* parent, <a class="code" href="class_text.html">Text</a>* text, std::vector&lt;Element*&gt; elementList, <span class="keywordtype">double</span> systemPowerBase)</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; : <a class="code" href="class_text_form_base.html">TextFormBase</a>(parent)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_parent = parent;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_textToEdit = text;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_allElements.GetElementsFromList(elementList);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_systemPowerBase = systemPowerBase;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_text = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>();</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_text-&gt;SetElementType(text-&gt;GetElementType());</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_text-&gt;SetElementNumber(text-&gt;GetElementNumber());</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_text-&gt;SetElement(text-&gt;GetElement());</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_text-&gt;SetDataType(text-&gt;GetDataType());</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_text-&gt;SetDirection(text-&gt;GetDirection());</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_text-&gt;SetUnit(text-&gt;GetUnit());</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_text-&gt;SetDecimalPlaces(text-&gt;GetDecimalPlaces());</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(!LoadChoices()) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_choiceName-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; m_choiceTextType-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; }</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;TextForm::~TextForm() {}</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="keywordtype">void</span> TextForm::OnElementChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;{</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">switch</span>(m_choiceElement-&gt;GetSelection()) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_text-&gt;SetElementType(TYPE_BUS);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_text-&gt;SetElementType(TYPE_SYNC_GENERATOR);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_text-&gt;SetElementType(TYPE_LINE);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_text-&gt;SetElementType(TYPE_TRANSFORMER);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_text-&gt;SetElementType(TYPE_LOAD);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; m_text-&gt;SetElementType(TYPE_CAPACITOR);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">case</span> 6: {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_text-&gt;SetElementType(TYPE_INDUCTOR);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">case</span> 7: {</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_text-&gt;SetElementType(TYPE_SYNC_MOTOR);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">case</span> 8: {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_text-&gt;SetElementType(TYPE_IND_MOTOR);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; }</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; ElementTypeChoice();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;}</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="keywordtype">void</span> TextForm::OnFromBusChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;{</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_text-&gt;SetDirection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_choiceTextToBus-&gt;SetSelection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;}</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;<span class="keywordtype">void</span> TextForm::OnNameChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;{</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_text-&gt;SetElementNumber(m_choiceName-&gt;GetSelection());</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; ElementNumberChoice();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;}</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;<span class="keywordtype">void</span> TextForm::OnTextEnter(wxCommandEvent&amp; event) { Preview(); }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;<span class="keywordtype">void</span> TextForm::OnToBusChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;{</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_text-&gt;SetDirection(m_choiceTextToBus-&gt;GetSelection());</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; m_choiceTextFromBus-&gt;SetSelection(m_choiceTextToBus-&gt;GetSelection());</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;<span class="keywordtype">void</span> TextForm::OnUnitChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; UnitChoice();</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; Preview();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;<span class="keywordtype">void</span> TextForm::OnTypeChoiceSelected(wxCommandEvent&amp; event)</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_text-&gt;SetDataType(DATA_VOLTAGE);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_text-&gt;SetDataType(DATA_ANGLE);</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; m_text-&gt;SetDataType(DATA_SC_VOLTAGE);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; m_text-&gt;SetDataType(DATA_SC_POWER);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; }</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; m_text-&gt;SetDataType(DATA_ACTIVE_POWER);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; }</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordflow">case</span> TYPE_LINE:</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_text-&gt;SetDataType(DATA_PF_ACTIVE);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; m_text-&gt;SetDataType(DATA_PF_REACTIVE);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; m_text-&gt;SetDataType(DATA_PF_LOSSES);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; m_text-&gt;SetDataType(DATA_PF_CURRENT);</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; m_text-&gt;SetDataType(DATA_SC_CURRENT);</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD:</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR:</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_text-&gt;SetDataType(DATA_ACTIVE_POWER);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; }</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR:</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextType-&gt;GetSelection()) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; m_text-&gt;SetDataType(DATA_NAME);</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_text-&gt;SetDataType(DATA_REACTIVE_POWER);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; DataTypeChoice();</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() == DATA_NAME) Preview();</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160;<span class="keywordtype">bool</span> TextForm::LoadChoices()</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetElementType() == TYPE_NONE) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// Fill the element possible choices.</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; ElementTypeChoice();</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; m_choiceName-&gt;SetSelection(m_text-&gt;GetElementNumber());</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; ElementNumberChoice();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; DataTypeChoice();</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="comment">// Select the saved choices.</span></div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_choiceElement-&gt;SetSelection(0);</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE: {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>: {</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>: {</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; }</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; }</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; }</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; }</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; m_choiceElement-&gt;SetSelection(1);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; }</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; }</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; }</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; m_choiceElement-&gt;SetSelection(2);</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; }</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; }</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; }</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; m_choiceElement-&gt;SetSelection(3);</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE: {</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; }</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; m_choiceTextType-&gt;SetSelection(3);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; m_choiceTextType-&gt;SetSelection(4);</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT: {</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; m_choiceTextType-&gt;SetSelection(5);</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>: {</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>: {</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; }</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; }</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; m_choiceElement-&gt;SetSelection(4);</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; }</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; }</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; m_choiceElement-&gt;SetSelection(5);</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160;</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; }</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; m_choiceElement-&gt;SetSelection(6);</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; }</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; }</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; m_choiceElement-&gt;SetSelection(7);</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; }</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; }</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; m_choiceElement-&gt;SetSelection(8);</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; m_choiceTextType-&gt;SetSelection(0);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER: {</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; m_choiceTextType-&gt;SetSelection(1);</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>: {</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>: {</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>: {</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; }</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER: {</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; m_choiceTextType-&gt;SetSelection(2);</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetUnit()) {</div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; m_choiceTextUnit-&gt;SetSelection(0);</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>: {</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; m_choiceTextUnit-&gt;SetSelection(1);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>: {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; m_choiceTextUnit-&gt;SetSelection(2);</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>: {</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; m_choiceTextUnit-&gt;SetSelection(3);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; }</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; }</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;IsEnabled()) m_choiceTextFromBus-&gt;SetSelection(m_text-&gt;GetDirection());</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; <span class="keywordflow">if</span>(m_choiceTextToBus-&gt;IsEnabled()) m_choiceTextToBus-&gt;SetSelection(m_text-&gt;GetDirection());</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; m_textCtrlDecimal-&gt;SetValue(wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, m_text-&gt;GetDecimalPlaces()));</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; Preview();</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160;</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160;}</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160;</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160;<span class="keywordtype">void</span> TextForm::ElementTypeChoice()</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160;{</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; m_choiceTextType-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; m_choiceTextType-&gt;Clear();</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; m_choiceName-&gt;Clear();</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetBusList().size(); i++) {</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_allElements.GetBusList()[i];</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; arrayString.Add(bus-&gt;GetElectricalData().name);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; }</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetSyncGeneratorList().size(); i++) {</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = m_allElements.GetSyncGeneratorList()[i];</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; arrayString.Add(syncGenerator-&gt;GetElectricalData().name);</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetLineList().size(); i++) {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_allElements.GetLineList()[i];</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; arrayString.Add(line-&gt;GetElectricalData().name);</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetTransformerList().size(); i++) {</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_allElements.GetTransformerList()[i];</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; arrayString.Add(transformer-&gt;GetElectricalData().name);</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetLoadList().size(); i++) {</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; <a class="code" href="class_load.html">Load</a>* load = m_allElements.GetLoadList()[i];</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; arrayString.Add(load-&gt;GetElectricalData().name);</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; }</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetCapacitorList().size(); i++) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = m_allElements.GetCapacitorList()[i];</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; arrayString.Add(capacitor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetInductorList().size(); i++) {</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = m_allElements.GetInductorList()[i];</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; arrayString.Add(inductor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; }</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetSyncMotorList().size(); i++) {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = m_allElements.GetSyncMotorList()[i];</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; arrayString.Add(syncMotor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160; }</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_allElements.GetIndMotorList().size(); i++) {</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = m_allElements.GetIndMotorList()[i];</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; arrayString.Add(indMotor-&gt;GetElectricalData().name);</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; }</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; }</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; m_choiceName-&gt;Append(arrayString);</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; m_choiceName-&gt;Enable();</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160;}</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;<span class="keywordtype">void</span> TextForm::ElementNumberChoice()</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;{</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordtype">int</span> index = m_choiceName-&gt;GetSelection();</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; m_text-&gt;SetElementNumber(index);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; m_choiceTextType-&gt;Clear();</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <span class="keywordflow">case</span> TYPE_BUS: {</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = m_allElements.GetBusList()[index];</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; m_text-&gt;SetElement(bus);</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Voltage&quot;</span>));</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Angle&quot;</span>));</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault voltage&quot;</span>));</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Short-circuit power&quot;</span>));</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_GENERATOR: {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* syncGenerator = m_allElements.GetSyncGeneratorList()[index];</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; m_text-&gt;SetElement(syncGenerator);</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160;</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <a class="code" href="class_line.html">Line</a>* line = m_allElements.GetLineList()[index];</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; m_text-&gt;SetElement(line);</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160;</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power flow&quot;</span>));</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power flow&quot;</span>));</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Losses&quot;</span>));</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Current&quot;</span>));</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = m_allElements.GetTransformerList()[index];</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; m_text-&gt;SetElement(transformer);</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power flow&quot;</span>));</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power flow&quot;</span>));</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Losses&quot;</span>));</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Current&quot;</span>));</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Fault current&quot;</span>));</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">case</span> TYPE_LOAD: {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; <a class="code" href="class_load.html">Load</a>* load = m_allElements.GetLoadList()[index];</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; m_text-&gt;SetElement(load);</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160;</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">case</span> TYPE_CAPACITOR: {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* capacitor = m_allElements.GetCapacitorList()[index];</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; m_text-&gt;SetElement(capacitor);</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <span class="keywordflow">case</span> TYPE_INDUCTOR: {</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* inductor = m_allElements.GetInductorList()[index];</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; m_text-&gt;SetElement(inductor);</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160;</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">case</span> TYPE_SYNC_MOTOR: {</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* syncMotor = m_allElements.GetSyncMotorList()[index];</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; m_text-&gt;SetElement(syncMotor);</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160;</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <span class="keywordflow">case</span> TYPE_IND_MOTOR: {</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* indMotor = m_allElements.GetIndMotorList()[index];</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_text-&gt;SetElement(indMotor);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Name&quot;</span>));</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Active power&quot;</span>));</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Reactive power&quot;</span>));</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; }</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; m_choiceTextType-&gt;Append(arrayString);</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; m_choiceTextType-&gt;Enable();</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160;}</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;<span class="keywordtype">void</span> TextForm::DataTypeChoice()</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;{</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; m_choiceTextFromBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; m_choiceTextToBus-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; m_choiceTextToBus-&gt;Clear();</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; m_choiceTextFromBus-&gt;Clear();</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; m_choiceTextUnit-&gt;Clear();</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; m_choiceTextUnit-&gt;Enable();</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160;</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; wxArrayString arrayString;</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE:</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;V&quot;</span>));</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kV&quot;</span>));</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Degrees&quot;</span>));</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;Radians&quot;</span>));</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT:</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;A&quot;</span>));</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kA&quot;</span>));</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;VA&quot;</span>));</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kVA&quot;</span>));</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MVA&quot;</span>));</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER:</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE:</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;W&quot;</span>));</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kW&quot;</span>));</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MW&quot;</span>));</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; m_choiceTextUnit-&gt;Enable();</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER:</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;p.u.&quot;</span>));</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;VAr&quot;</span>));</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;kVAr&quot;</span>));</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; arrayString.Add(_(<span class="stringliteral">&quot;MVAr&quot;</span>));</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; }</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; m_choiceTextUnit-&gt;Append(arrayString);</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetElementType()) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; <span class="keywordflow">case</span> TYPE_LINE: {</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES) {</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; <span class="keyword">auto</span> it = m_allElements.GetLineList().begin();</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; std::advance(it, m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160; <a class="code" href="class_line.html">Line</a>* line = *it;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160;</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;GetParentList()[0]);</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(line-&gt;GetParentList()[1]);</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; wxString bus1Name = bus1-&gt;GetElectricalData().name;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160; wxString bus2Name = bus2-&gt;GetElectricalData().name;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160;</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; m_choiceTextFromBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; m_choiceTextFromBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; m_choiceTextToBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; m_choiceTextToBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; m_choiceTextFromBus-&gt;SetSelection(0);</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; m_choiceTextToBus-&gt;SetSelection(0);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; m_choiceTextFromBus-&gt;Enable();</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; m_choiceTextToBus-&gt;Enable();</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; }</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">case</span> TYPE_TRANSFORMER: {</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES) {</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160; <span class="keyword">auto</span> it = m_allElements.GetTransformerList().begin();</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; std::advance(it, m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* transformer = *it;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160;</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;GetParentList()[0]);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(transformer-&gt;GetParentList()[1]);</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; wxString bus1Name = bus1-&gt;GetElectricalData().name;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; wxString bus2Name = bus2-&gt;GetElectricalData().name;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; m_choiceTextFromBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; m_choiceTextFromBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; m_choiceTextToBus-&gt;Append(bus2Name);</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; m_choiceTextToBus-&gt;Append(bus1Name);</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; m_choiceTextFromBus-&gt;SetSelection(0);</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; m_choiceTextToBus-&gt;SetSelection(0);</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160; m_choiceTextFromBus-&gt;Enable();</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; m_choiceTextToBus-&gt;Enable();</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; }</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; }</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;}</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160;</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;<span class="keywordtype">void</span> TextForm::UnitChoice()</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;{</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">switch</span>(m_text-&gt;GetDataType()) {</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; <span class="keywordflow">case</span> DATA_NAME: {</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160; m_choiceTextUnit-&gt;Enable(<span class="keyword">false</span>);</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordflow">return</span>;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; <span class="keywordflow">case</span> DATA_VOLTAGE:</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordflow">case</span> DATA_SC_VOLTAGE: {</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>);</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>);</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; }</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; <span class="keywordflow">case</span> DATA_ANGLE: {</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a>);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a>);</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="keywordflow">case</span> DATA_SC_CURRENT:</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">case</span> DATA_PF_CURRENT: {</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a>);</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a>);</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; }</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; <span class="keywordflow">case</span> DATA_SC_POWER: {</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>);</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>);</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; <span class="keywordflow">case</span> DATA_ACTIVE_POWER:</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; <span class="keywordflow">case</span> DATA_PF_ACTIVE:</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160; <span class="keywordflow">case</span> DATA_PF_LOSSES: {</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a>);</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a>);</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a>);</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; }</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keywordflow">case</span> DATA_REACTIVE_POWER:</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keywordflow">case</span> DATA_PF_REACTIVE: {</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <span class="keywordflow">switch</span>(m_choiceTextUnit-&gt;GetSelection()) {</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>);</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a>);</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a>);</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; m_text-&gt;SetUnit(<a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a>);</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; }</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; }</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160;}</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;<span class="keywordtype">void</span> TextForm::Preview()</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160;{</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordtype">double</span> decimalPlaces = m_text-&gt;GetDecimalPlaces();</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <span class="keywordflow">if</span>(m_textCtrlDecimal-&gt;GetValue().ToDouble(&amp;decimalPlaces)) m_text-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160;</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; m_text-&gt;UpdateText(m_systemPowerBase);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160;</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; m_textCtrlPreview-&gt;SetValue(m_text-&gt;GetText());</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160;}</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160;</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160;<span class="keywordtype">bool</span> TextForm::ValidateData()</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;{</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; <span class="keywordflow">if</span>(m_choiceElement-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; <span class="keywordflow">if</span>(m_choiceName-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160; <span class="keywordflow">if</span>(m_choiceTextType-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_NAME &amp;&amp; m_choiceTextUnit-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetElementType() == TYPE_LINE || m_text-&gt;GetElementType() == TYPE_TRANSFORMER) {</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; <span class="keywordflow">if</span>(m_text-&gt;GetDataType() != DATA_PF_LOSSES &amp;&amp; m_text-&gt;GetDataType() != DATA_NAME) {</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">if</span>(m_choiceTextToBus-&gt;GetSelection() == -1) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; }</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; }</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160;</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordflow">if</span>(m_choiceTextFromBus-&gt;IsEnabled() &amp;&amp; m_choiceTextToBus-&gt;IsEnabled())</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; m_text-&gt;SetDirection(m_choiceTextFromBus-&gt;GetSelection());</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keywordtype">double</span> decimalPlaces = m_text-&gt;GetDecimalPlaces();</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; <span class="keywordflow">if</span>(m_textCtrlDecimal-&gt;GetValue().ToDouble(&amp;decimalPlaces)) m_text-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160;</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; m_textToEdit-&gt;SetElementType(m_text-&gt;GetElementType());</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; m_textToEdit-&gt;SetElementNumber(m_text-&gt;GetElementNumber());</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; m_textToEdit-&gt;SetElement(m_text-&gt;GetElement());</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160; m_textToEdit-&gt;SetDataType(m_text-&gt;GetDataType());</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; m_textToEdit-&gt;SetDirection(m_text-&gt;GetDirection());</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; m_textToEdit-&gt;SetUnit(m_text-&gt;GetUnit());</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; m_textToEdit-&gt;SetDecimalPlaces(decimalPlaces);</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; m_textToEdit-&gt;UpdateText(m_systemPowerBase);</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160;}</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160;</div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160;<span class="keywordtype">void</span> TextForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160;{</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; wxString errorMsg = _(<span class="stringliteral">&quot;There are blank fields.&quot;</span>);</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, errorMsg, _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; }</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160;}</div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2751885c0f17f3c2e4e8ea341f62dc9c">UNIT_A</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00032">PowerElement.h:32</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa2035461eacf2ebcf3274bc419ef327d3">UNIT_DEGREE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00047">PowerElement.h:47</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0e44ebcb07116662322ee536abc0e990">UNIT_MW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00036">PowerElement.h:36</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa6576f8a845540ae6439ec850ab4e7a6b">UNIT_kW</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00035">PowerElement.h:35</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa81c9e03cb1e74d13cd9a1c928a38b392">UNIT_kA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00033">PowerElement.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaae578be70360e9692f38d175c5f709871">UNIT_MVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00042">PowerElement.h:42</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa13d53193dc339f40ca63ace836fc366d">UNIT_kVAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00041">PowerElement.h:41</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa7f67491156c61b945c7a28a12d13740c">UNIT_VAr</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00040">PowerElement.h:40</a></div></div>
+<div class="ttc" id="_text_form_8h_html"><div class="ttname"><a href="_text_form_8h.html">TextForm.h</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa613165a3bff40fee33d02e7b730e3bb5">UNIT_RADIAN</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00048">PowerElement.h:48</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
<div class="ttc" id="class_text_form_base_html"><div class="ttname"><a href="class_text_form_base.html">TextFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00714">ElementForm.h:714</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00017">PowerElement.h:17</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa1b7fe4f8de747aebfcbe3df2ec78279c">UNIT_W</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00034">PowerElement.h:34</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_text_form_8h.html b/docs/doxygen/html/_text_form_8h.html
new file mode 100644
index 0000000..b198318
--- /dev/null
+++ b/docs/doxygen/html/_text_form_8h.html
@@ -0,0 +1,117 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/TextForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_text_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TextForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_text_8h_source.html">Text.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&quot;</code><br />
+</div>
+<p><a href="_text_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_text_form.html">TextForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the text graphical data. <a href="class_text_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_text_form_8h.html">TextForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_text_form_8h_source.html b/docs/doxygen/html/_text_form_8h_source.html
index c57318c..fa0168c 100644
--- a/docs/doxygen/html/_text_form_8h_source.html
+++ b/docs/doxygen/html/_text_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,17 +88,18 @@ $(document).ready(function(){initNavTree('_text_form_8h_source.html','');});
<div class="title">TextForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TEXTFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TEXTFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Text.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_text_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_text_form.html">TextForm</a> : <span class="keyword">public</span> <a class="code" href="class_text_form_base.html">TextFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_text_form.html">TextForm</a>(wxWindow* parent, <a class="code" href="class_text.html">Text</a>* text, std::vector&lt;Element*&gt; elementList, <span class="keywordtype">double</span> systemPowerBase = 100e6);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_text_form.html">TextForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> LoadChoices();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ElementTypeChoice();</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ElementNumberChoice();</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DataTypeChoice();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UnitChoice();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Preview();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUnitChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnElementChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFromBusChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNameChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTextEnter(wxCommandEvent&amp; event);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnToBusChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTypeChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_text.html">Text</a>* m_text = NULL;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_text.html">Text</a>* m_textToEdit = NULL;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> m_allElements;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordtype">double</span> m_systemPowerBase;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;};</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#endif // TEXTFORM_H</span></div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div></div>
-<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00008">TextForm.h:8</a></div></div>
-<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00049">ElectricCalculation.h:49</a></div></div>
+<a href="_text_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TEXTFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TEXTFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_8h.html">Text.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electric_calculation_8h.html">ElectricCalculation.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_text_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_text_form.html">TextForm</a> : <span class="keyword">public</span> <a class="code" href="class_text_form_base.html">TextFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_text_form.html">TextForm</a>(wxWindow* parent, <a class="code" href="class_text.html">Text</a>* text, std::vector&lt;Element*&gt; elementList, <span class="keywordtype">double</span> systemPowerBase = 100e6);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_text_form.html">TextForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> LoadChoices();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ElementTypeChoice();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> ElementNumberChoice();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> DataTypeChoice();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UnitChoice();</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Preview();</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnUnitChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnElementChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnFromBusChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnNameChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTextEnter(wxCommandEvent&amp; event);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnToBusChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTypeChoiceSelected(wxCommandEvent&amp; event);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <a class="code" href="class_text.html">Text</a>* m_text = NULL;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <a class="code" href="class_text.html">Text</a>* m_textToEdit = NULL;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <a class="code" href="class_electric_calculation.html">ElectricCalculation</a> m_allElements;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">double</span> m_systemPowerBase;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;};</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;<span class="preprocessor">#endif // TEXTFORM_H</span></div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="_electric_calculation_8h_html"><div class="ttname"><a href="_electric_calculation_8h.html">ElectricCalculation.h</a></div></div>
+<div class="ttc" id="class_text_form_html"><div class="ttname"><a href="class_text_form.html">TextForm</a></div><div class="ttdoc">Form to edit the text graphical data. </div><div class="ttdef"><b>Definition:</b> <a href="_text_form_8h_source.html#l00032">TextForm.h:32</a></div></div>
+<div class="ttc" id="_text_8h_html"><div class="ttname"><a href="_text_8h.html">Text.h</a></div></div>
+<div class="ttc" id="class_electric_calculation_html"><div class="ttname"><a href="class_electric_calculation.html">ElectricCalculation</a></div><div class="ttdoc">Base class of electric calculations, with general methods. </div><div class="ttdef"><b>Definition:</b> <a href="_electric_calculation_8h_source.html#l00066">ElectricCalculation.h:66</a></div></div>
<div class="ttc" id="class_text_form_base_html"><div class="ttname"><a href="class_text_form_base.html">TextFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00714">ElementForm.h:714</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>TextForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_text_form_8h.html">TextForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_transfer_function_8cpp_source.html b/docs/doxygen/html/_transfer_function_8cpp_source.html
index be2dd27..ea4db24 100644
--- a/docs/doxygen/html/_transfer_function_8cpp_source.html
+++ b/docs/doxygen/html/_transfer_function_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,20 @@ $(document).ready(function(){initNavTree('_transfer_function_8cpp_source.html','
<div class="title">TransferFunction.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TransferFunction.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;TransferFunctionForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;TransferFunction::TransferFunction(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="comment">// Superscript unicode numbers</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_supNumber[0] = L<span class="stringliteral">&#39;\u2070&#39;</span>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_supNumber[1] = L<span class="stringliteral">&#39;\u00B9&#39;</span>;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_supNumber[2] = L<span class="stringliteral">&#39;\u00B2&#39;</span>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_supNumber[3] = L<span class="stringliteral">&#39;\u00B3&#39;</span>;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_supNumber[4] = L<span class="stringliteral">&#39;\u2074&#39;</span>;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_supNumber[5] = L<span class="stringliteral">&#39;\u2075&#39;</span>;</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_supNumber[6] = L<span class="stringliteral">&#39;\u2076&#39;</span>;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_supNumber[7] = L<span class="stringliteral">&#39;\u2077&#39;</span>;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_supNumber[8] = L<span class="stringliteral">&#39;\u2078&#39;</span>;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_supNumber[9] = L<span class="stringliteral">&#39;\u2079&#39;</span>;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_numerator.clear();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_numerator.push_back(1);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; m_denominator.clear();</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; m_denominator.push_back(1);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; m_denominator.push_back(1);</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; UpdateTFText();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <a class="code" href="class_node.html">Node</a>* node1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; node1-&gt;StartMove(m_position);</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="class_node.html">Node</a>* node2 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; node2-&gt;SetAngle(180.0);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; node2-&gt;StartMove(m_position);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_nodeList.push_back(node1);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_nodeList.push_back(node2);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;}</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;TransferFunction::~TransferFunction() {}</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e"> 35</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; }</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; std::vector&lt;wxPoint2DDouble&gt; linePts;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; linePts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2 + 5 + m_borderSize, m_position.m_y));</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; linePts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2 - 5 - m_borderSize, m_position.m_y));</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; DrawLine(linePts);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; DrawNodes();</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_glStringNum-&gt;bind();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; m_glStringNum-&gt;render(m_position.m_x, m_position.m_y - m_height / 4);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_glStringDen-&gt;bind();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; m_glStringDen-&gt;render(m_position.m_x, m_position.m_y + m_height / 4);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">void</span> TransferFunction::SetText(wxString numerator, wxString denominator)</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(m_glStringNum) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">delete</span> m_glStringNum;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; m_glStringNum = NULL;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_glStringNum = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(numerator);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_glStringNum-&gt;setFont(font);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_glStringNum-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">if</span>(m_glStringDen) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">delete</span> m_glStringDen;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_glStringDen = NULL;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_glStringDen = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(denominator);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_glStringDen-&gt;setFont(font);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; m_glStringDen-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> nWidth = m_glStringNum-&gt;getWidth() + 5 + m_borderSize;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">double</span> dWidth = m_glStringDen-&gt;getWidth() + 5 + m_borderSize;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_width = nWidth &gt; dWidth ? nWidth : dWidth;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_height = m_glStringNum-&gt;getheight() + m_glStringDen-&gt;getheight() + 2 * m_borderSize;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; SetPosition(m_position); <span class="comment">// Update rect properly.</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;}</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;wxString TransferFunction::GetSuperscriptNumber(<span class="keywordtype">int</span> number)</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;{</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; wxString strNumber = wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, number);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; wxString superscriptStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)strNumber.length(); ++i) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; wxString digitStr = strNumber[i];</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">long</span> digit = 0;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; digitStr.ToLong(&amp;digit);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; superscriptStr += wxString(m_supNumber[digit]);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordflow">return</span> superscriptStr;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;}</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keywordtype">void</span> TransferFunction::GetTFString(wxString&amp; numerator, wxString&amp; denominator)</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;{</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; numerator = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; denominator = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">int</span> index = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_numerator.size()) - 1;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_numerator.begin(), itEnd = m_numerator.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordflow">if</span>(value != 0.0) {</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; wxString signal;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(index == static_cast&lt;int&gt;(m_numerator.size()) - 1) {</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; signal += <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; signal += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; signal += <span class="stringliteral">&quot;+ &quot;</span>;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; signal += <span class="stringliteral">&quot;- &quot;</span>;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; }</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordflow">if</span>(index == 0) {</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == 1) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; numerator += signal + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; numerator += signal + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; }</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; numerator += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; }</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; --index;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; index = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_denominator.size()) - 1;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_denominator.begin(), itEnd = m_denominator.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(value != 0.0) {</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wxString signal;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(index == static_cast&lt;int&gt;(m_denominator.size()) - 1) {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; signal += <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; signal += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; signal += <span class="stringliteral">&quot;+ &quot;</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; signal += <span class="stringliteral">&quot;- &quot;</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(index == 0) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0);</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == 1) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; denominator += signal + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; denominator += signal + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; denominator += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; }</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; --index;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; }</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;}</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;<span class="keywordtype">void</span> TransferFunction::UpdateTFText()</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;{</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; wxString num, den;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; GetTFString(num, den);</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; SetText(num, den);</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() == 2) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; }</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160;}</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"><a class="line" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10"> 209</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;{</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>* tfForm = <span class="keyword">new</span> <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="keywordflow">if</span>(tfForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; tfForm-&gt;Destroy();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; }</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; tfForm-&gt;Destroy();</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;}</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160;</div><div class="line"><a name="l00220"></a><span class="lineno"><a class="line" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423"> 220</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;{</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; }</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;}</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160;<span class="keywordtype">void</span> TransferFunction::CalculateSpaceState(<span class="keywordtype">int</span> maxIteration, <span class="keywordtype">double</span> error)</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;{</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_maxIteration = maxIteration;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_error = error;</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_denominator.size());</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; std::vector&lt;double&gt; denominator = m_denominator;</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; std::vector&lt;double&gt; numerator;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordtype">int</span> k = order;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordtype">int</span> numIndex = i - (order - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_numerator.size()));</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <span class="keywordflow">if</span>(numIndex &lt; 0)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; numerator.push_back(0.0);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; numerator.push_back(m_numerator[numIndex]);</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; k--;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; }</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> ss;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (order - 1); i++) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; std::vector&lt;double&gt; lineA;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (order - 1); j++) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="keywordflow">if</span>(j == i + 1)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; lineA.push_back(1.0);</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; lineA.push_back(0.0);</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; }</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; ss.A.push_back(lineA);</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; ss.B.push_back(0.0);</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; ss.C.push_back(0.0);</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order - 1; i++) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; ss.A[order - 2][i] = -(denominator[order - 1 - i] / denominator[0]);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; ss.C[i] = (numerator[order - 1 - i] - denominator[order - 1 - i] * numerator[0]) / denominator[0];</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; ss.B[order - 2] = 1.0;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; ss.D = numerator[0];</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; m_ss = ss;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160;</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="comment">// Reset state</span></div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; m_x.clear();</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; m_dx.clear();</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160;</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_denominator.size(); ++i) {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; m_x.push_back(0.0);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_dx.push_back(0.0);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;}</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160;</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;<span class="keywordtype">bool</span> TransferFunction::Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;{</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_ss.A.size());</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; std::vector&lt;double&gt; x;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; std::vector&lt;double&gt; oldx;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; std::vector&lt;double&gt; dx;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; std::vector&lt;double&gt; olddx;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; x.push_back(m_x[i]);</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; oldx.push_back(m_x[i]);</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; dx.push_back(m_dx[i]);</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; olddx.push_back(m_dx[i]);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordtype">bool</span> exit = <span class="keyword">false</span>;</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordtype">int</span> iter = 0;</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">while</span>(!exit) {</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordtype">double</span> xError = 0.0;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">double</span> dxError = 0.0;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; <span class="comment">// Trapezoidal method</span></div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; x[i] = m_x[i] + 0.5 * timeStep * (m_dx[i] + dx[i]);</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span>(std::abs(x[i] - oldx[i]) &gt; xError) xError = std::abs(x[i] - oldx[i]);</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; oldx[i] = x[i];</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; }</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="comment">// x&#39; = Ax + Bu</span></div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; dx[i] = 0.0;</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; j++) dx[i] += m_ss.A[i][j] * x[j];</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; dx[i] += m_ss.B[i] * input;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(std::abs(dx[i] - olddx[i]) &gt; dxError) dxError = std::abs(dx[i] - olddx[i]);</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; olddx[i] = dx[i];</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; }</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span>(std::max(xError, dxError) &lt; m_error) exit = <span class="keyword">true</span>;</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; iter++;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(iter &gt;= m_maxIteration) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; m_output = 0.0;</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; m_output += m_ss.C[i] * x[i];</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; m_x[i] = x[i];</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; m_dx[i] = dx[i];</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; }</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; m_output += m_ss.D * input;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;}</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160;</div><div class="line"><a name="l00359"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862"> 359</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a>()</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;{</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* copy = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(m_elementID);</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; m_glStringNum = NULL;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_glStringDen = NULL;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; UpdateTFText();</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_transfer_function_html_afe15de93ab4f93032560a6139091ef10"><div class="ttname"><a href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00209">TransferFunction.cpp:209</a></div></div>
-<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00006">ControlElement.h:6</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a3312f7e9499aa99742093d3b60547862"><div class="ttname"><a href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00359">TransferFunction.cpp:359</a></div></div>
-<div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00008">TransferFunctionForm.h:8</a></div></div>
-<div class="ttc" id="struct_transfer_function_1_1_space_state_html"><div class="ttname"><a href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00014">TransferFunction.h:14</a></div></div>
-<div class="ttc" id="class_transfer_function_html_ae145b86db1450a19a3ed32084ee60423"><div class="ttname"><a href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00220">TransferFunction.cpp:220</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a0cd1dec850117741abb04b608c7b3f1e"><div class="ttname"><a href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00035">TransferFunction.cpp:35</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_8h.html">TransferFunction.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_form_8h.html">TransferFunctionForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;TransferFunction::TransferFunction(<span class="keywordtype">int</span> <span class="keywordtype">id</span>) : <a class="code" href="class_control_element.html">ControlElement</a>(id)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="comment">// Superscript unicode numbers</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_supNumber[0] = L<span class="stringliteral">&#39;\u2070&#39;</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_supNumber[1] = L<span class="stringliteral">&#39;\u00B9&#39;</span>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_supNumber[2] = L<span class="stringliteral">&#39;\u00B2&#39;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_supNumber[3] = L<span class="stringliteral">&#39;\u00B3&#39;</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_supNumber[4] = L<span class="stringliteral">&#39;\u2074&#39;</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_supNumber[5] = L<span class="stringliteral">&#39;\u2075&#39;</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_supNumber[6] = L<span class="stringliteral">&#39;\u2076&#39;</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_supNumber[7] = L<span class="stringliteral">&#39;\u2077&#39;</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_supNumber[8] = L<span class="stringliteral">&#39;\u2078&#39;</span>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_supNumber[9] = L<span class="stringliteral">&#39;\u2079&#39;</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_numerator.clear();</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_numerator.push_back(1);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; m_denominator.clear();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_denominator.push_back(1);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; m_denominator.push_back(1);</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; UpdateTFText();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <a class="code" href="class_node.html">Node</a>* node1 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(-m_width / 2, 0), Node::NODE_IN, m_borderSize);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; node1-&gt;StartMove(m_position);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="class_node.html">Node</a>* node2 = <span class="keyword">new</span> <a class="code" href="class_node.html">Node</a>(m_position + wxPoint2DDouble(m_width / 2, 0), Node::NODE_OUT, m_borderSize);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; node2-&gt;SetAngle(180.0);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; node2-&gt;StartMove(m_position);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_nodeList.push_back(node1);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_nodeList.push_back(node2);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;}</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;TransferFunction::~TransferFunction() {}</div><div class="line"><a name="l00052"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e"> 52</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordtype">double</span> borderSize = (m_borderSize * 2.0 + 1.0) / scale;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; DrawRectangle(m_position, m_width + borderSize, m_height + borderSize);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; DrawRectangle(m_position, m_width, m_height);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; DrawRectangle(m_position, m_width, m_height, GL_LINE_LOOP);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; std::vector&lt;wxPoint2DDouble&gt; linePts;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; linePts.push_back(wxPoint2DDouble(m_position.m_x - m_width / 2 + 5 + m_borderSize, m_position.m_y));</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; linePts.push_back(wxPoint2DDouble(m_position.m_x + m_width / 2 - 5 - m_borderSize, m_position.m_y));</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; DrawLine(linePts);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; DrawNodes();</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; glEnable(GL_TEXTURE_2D);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; glColor4d(0.0, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_glStringNum-&gt;bind();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_glStringNum-&gt;render(m_position.m_x, m_position.m_y - m_height / 4);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_glStringDen-&gt;bind();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_glStringDen-&gt;render(m_position.m_x, m_position.m_y + m_height / 4);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;}</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keywordtype">void</span> TransferFunction::SetText(wxString numerator, wxString denominator)</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; wxFont font(m_fontSize, wxFONTFAMILY_DEFAULT, wxFONTSTYLE_NORMAL, wxFONTWEIGHT_NORMAL);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; wxScreenDC dc;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(m_glStringNum) {</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">delete</span> m_glStringNum;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; m_glStringNum = NULL;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; m_glStringNum = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(numerator);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_glStringNum-&gt;setFont(font);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_glStringNum-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">if</span>(m_glStringDen) {</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">delete</span> m_glStringDen;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; m_glStringDen = NULL;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; }</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_glStringDen = <span class="keyword">new</span> <a class="code" href="classwx_g_l_string.html">wxGLString</a>(denominator);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; m_glStringDen-&gt;setFont(font);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_glStringDen-&gt;consolidate(&amp;dc);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordtype">double</span> nWidth = m_glStringNum-&gt;getWidth() + 5 + m_borderSize;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keywordtype">double</span> dWidth = m_glStringDen-&gt;getWidth() + 5 + m_borderSize;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_width = nWidth &gt; dWidth ? nWidth : dWidth;</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_height = m_glStringNum-&gt;getheight() + m_glStringDen-&gt;getheight() + 2 * m_borderSize;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; SetPosition(m_position); <span class="comment">// Update rect properly.</span></div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;}</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;wxString TransferFunction::GetSuperscriptNumber(<span class="keywordtype">int</span> number)</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;{</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; wxString strNumber = wxString::Format(<span class="stringliteral">&quot;%d&quot;</span>, number);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; wxString superscriptStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)strNumber.length(); ++i) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; wxString digitStr = strNumber[i];</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">long</span> digit = 0;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; digitStr.ToLong(&amp;digit);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; superscriptStr += wxString(m_supNumber[digit]);</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordflow">return</span> superscriptStr;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;}</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;<span class="keywordtype">void</span> TransferFunction::GetTFString(wxString&amp; numerator, wxString&amp; denominator)</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;{</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; numerator = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; denominator = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">int</span> index = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_numerator.size()) - 1;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_numerator.begin(), itEnd = m_numerator.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordflow">if</span>(value != 0.0) {</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; wxString signal;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordflow">if</span>(index == static_cast&lt;int&gt;(m_numerator.size()) - 1) {</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; signal += <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; signal += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; signal += <span class="stringliteral">&quot;+ &quot;</span>;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; signal += <span class="stringliteral">&quot;- &quot;</span>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; }</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160;</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(index == 0) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == 1) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; numerator += signal + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; }</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; numerator += signal + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; numerator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; }</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; }</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; numerator += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; --index;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; index = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_denominator.size()) - 1;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_denominator.begin(), itEnd = m_denominator.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(value != 0.0) {</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; wxString signal;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">if</span>(index == static_cast&lt;int&gt;(m_denominator.size()) - 1) {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; signal += <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; signal += <span class="stringliteral">&quot;-&quot;</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">if</span>(value &gt;= 0.0)</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; signal += <span class="stringliteral">&quot;+ &quot;</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; signal += <span class="stringliteral">&quot;- &quot;</span>;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(index == 0) {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0);</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(index == 1) {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; denominator += signal + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(value == 1.0) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; denominator += signal + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; denominator += signal + StringFromDouble(std::abs(value), 0) + <span class="stringliteral">&quot;s&quot;</span> + GetSuperscriptNumber(index);</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; }</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; }</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; denominator += <span class="stringliteral">&quot; &quot;</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; --index;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; }</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160;}</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;<span class="keywordtype">void</span> TransferFunction::UpdateTFText()</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;{</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; wxString num, den;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; GetTFString(num, den);</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; SetText(num, den);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(m_nodeList.size() == 2) {</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; }</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160;}</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"><a class="line" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10"> 226</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;{</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>* tfForm = <span class="keyword">new</span> <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(tfForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; tfForm-&gt;Destroy();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; tfForm-&gt;Destroy();</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;}</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"><a class="line" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423"> 237</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160;{</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">if</span>(clockwise)</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_angle += 90.0;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; m_angle -= 90.0;</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360.0)</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; m_angle = 0.0;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle &lt; 0)</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; m_angle = 270.0;</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0) {</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 90.0) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 180.0) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(m_width / 2, 0));</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(-m_width / 2, 0));</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_angle == 270.0) {</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; m_nodeList[0]-&gt;SetPosition(m_position + wxPoint2DDouble(0, m_height / 2));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; m_nodeList[1]-&gt;SetPosition(m_position + wxPoint2DDouble(0, -m_height / 2));</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; }</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_nodeList.begin(), itEnd = m_nodeList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; <a class="code" href="class_node.html">Node</a>* node = *it;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; node-&gt;Rotate(clockwise);</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;}</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;</div><div class="line"><a name="l00268"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a"> 268</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction::CalculateSpaceState</a>(<span class="keywordtype">int</span> maxIteration, <span class="keywordtype">double</span> error)</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160;{</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_maxIteration = maxIteration;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; m_error = error;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_denominator.size());</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; std::vector&lt;double&gt; denominator = m_denominator;</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; std::vector&lt;double&gt; numerator;</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; </div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="comment">//[Ref.] http://lpsa.swarthmore.edu/Representations/SysRepTransformations/TF2SS.html</span></div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="keywordtype">int</span> k = order;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordtype">int</span> numIndex = i - (order - <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_numerator.size()));</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <span class="keywordflow">if</span>(numIndex &lt; 0)</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; numerator.push_back(0.0);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; numerator.push_back(m_numerator[numIndex]);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; k--;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> ss;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (order - 1); i++) {</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; std::vector&lt;double&gt; lineA;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (order - 1); j++) {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(j == i + 1)</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; lineA.push_back(1.0);</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; lineA.push_back(0.0);</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; ss.A.push_back(lineA);</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; ss.B.push_back(0.0);</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; ss.C.push_back(0.0);</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; }</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order - 1; i++) {</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; ss.A[order - 2][i] = -(denominator[order - 1 - i] / denominator[0]);</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; ss.C[i] = (numerator[order - 1 - i] - denominator[order - 1 - i] * numerator[0]) / denominator[0];</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; }</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; ss.B[order - 2] = 1.0;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; ss.D = numerator[0];</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; m_ss = ss;</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="comment">// Reset state</span></div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; m_x.clear();</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; m_dx.clear();</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; m_denominator.size(); ++i) {</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; m_x.push_back(0.0);</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_dx.push_back(0.0);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; }</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160;}</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160;</div><div class="line"><a name="l00320"></a><span class="lineno"><a class="line" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798"> 320</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">TransferFunction::Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep)</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;{</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordtype">int</span> order = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span>(m_ss.A.size());</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; std::vector&lt;double&gt; x;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; std::vector&lt;double&gt; oldx;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; std::vector&lt;double&gt; dx;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; std::vector&lt;double&gt; olddx;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; x.push_back(m_x[i]);</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; oldx.push_back(m_x[i]);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; dx.push_back(m_dx[i]);</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; olddx.push_back(m_dx[i]);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160;</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; <span class="keywordtype">bool</span> exit = <span class="keyword">false</span>;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordtype">int</span> iter = 0;</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; <span class="keywordflow">while</span>(!exit) {</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordtype">double</span> xError = 0.0;</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; <span class="keywordtype">double</span> dxError = 0.0;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="comment">// Trapezoidal method</span></div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; x[i] = m_x[i] + 0.5 * timeStep * (m_dx[i] + dx[i]);</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordflow">if</span>(std::abs(x[i] - oldx[i]) &gt; xError) xError = std::abs(x[i] - oldx[i]);</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; oldx[i] = x[i];</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// x&#39; = Ax + Bu</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; dx[i] = 0.0;</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; order; j++) dx[i] += m_ss.A[i][j] * x[j];</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; dx[i] += m_ss.B[i] * input;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; <span class="keywordflow">if</span>(std::abs(dx[i] - olddx[i]) &gt; dxError) dxError = std::abs(dx[i] - olddx[i]);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; olddx[i] = dx[i];</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; }</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(std::max(xError, dxError) &lt; m_error) exit = <span class="keyword">true</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; iter++;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(iter &gt;= m_maxIteration) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; }</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; m_output = 0.0;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; order; i++) {</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; m_output += m_ss.C[i] * x[i];</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; m_x[i] = x[i];</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; m_dx[i] = dx[i];</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; }</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; m_output += m_ss.D * input;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;}</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160;</div><div class="line"><a name="l00377"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862"> 377</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a>()</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160;{</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* copy = <span class="keyword">new</span> <a class="code" href="class_transfer_function.html">TransferFunction</a>(m_elementID);</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_glStringNum = NULL;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; m_glStringDen = NULL;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; UpdateTFText();</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160;}</div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_transfer_function_html_afe15de93ab4f93032560a6139091ef10"><div class="ttname"><a href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00226">TransferFunction.cpp:226</a></div></div>
+<div class="ttc" id="class_node_html"><div class="ttname"><a href="class_node.html">Node</a></div><div class="ttdoc">Node of a control element. This class manages the user interaction with the connection and control el...</div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00030">ControlElement.h:30</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a3312f7e9499aa99742093d3b60547862"><div class="ttname"><a href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00377">TransferFunction.cpp:377</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a5f09dd8e5c016a90c69a8e38ef302c8a"><div class="ttname"><a href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction::CalculateSpaceState</a></div><div class="ttdeci">virtual void CalculateSpaceState(int maxIteration=100, double error=1e-3)</div><div class="ttdoc">Convert the transfer function to space state on controllable canonical form (CCF). </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00268">TransferFunction.cpp:268</a></div></div>
+<div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdoc">Form to edit the transfer function control data. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00032">TransferFunctionForm.h:32</a></div></div>
+<div class="ttc" id="struct_transfer_function_1_1_space_state_html"><div class="ttname"><a href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00038">TransferFunction.h:38</a></div></div>
+<div class="ttc" id="class_transfer_function_html_ae145b86db1450a19a3ed32084ee60423"><div class="ttname"><a href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00237">TransferFunction.cpp:237</a></div></div>
+<div class="ttc" id="_transfer_function_form_8h_html"><div class="ttname"><a href="_transfer_function_form_8h.html">TransferFunctionForm.h</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="class_transfer_function_html_ab23ed101f7d4e953e4df0d4d480d9798"><div class="ttname"><a href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">TransferFunction::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculates the time response by the space state form of transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00320">TransferFunction.cpp:320</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a0cd1dec850117741abb04b608c7b3f1e"><div class="ttname"><a href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00052">TransferFunction.cpp:52</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
+<div class="ttc" id="_transfer_function_8h_html"><div class="ttname"><a href="_transfer_function_8h.html">TransferFunction.h</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/_transfer_function_8h.html b/docs/doxygen/html/_transfer_function_8h.html
new file mode 100644
index 0000000..5abcd43
--- /dev/null
+++ b/docs/doxygen/html/_transfer_function_8h.html
@@ -0,0 +1,119 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/TransferFunction.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_transfer_function_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TransferFunction.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&quot;</code><br />
+<code>#include &lt;wx/dcscreen.h&gt;</code><br />
+<code>#include &quot;wxGLString.h&quot;</code><br />
+</div>
+<p><a href="_transfer_function_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transfer_function.html">TransferFunction</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the time response by a frequency domain transfer function. <a href="class_transfer_function.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transfer_function_8h.html">TransferFunction.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_transfer_function_8h_source.html b/docs/doxygen/html/_transfer_function_8h_source.html
index 5fd75a8..6a75258 100644
--- a/docs/doxygen/html/_transfer_function_8h_source.html
+++ b/docs/doxygen/html/_transfer_function_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,24 +88,27 @@ $(document).ready(function(){initNavTree('_transfer_function_8h_source.html','')
<div class="title">TransferFunction.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TRANSFERFUNCTION_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TRANSFERFUNCTION_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ControlElement.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_transfer_function.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"><a class="line" href="struct_transfer_function_1_1_space_state.html"> 14</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; std::vector&lt;std::vector&lt;double&gt; &gt; A;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; std::vector&lt;double&gt; B;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; std::vector&lt;double&gt; C;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">double</span> D;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; };</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; ~<a class="code" href="class_transfer_function.html">TransferFunction</a>();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187"> 25</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00026"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd"> 26</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetNumerator()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_numerator; }</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetDenominator()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_denominator; }</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNumerator(std::vector&lt;double&gt; numerator) { m_numerator = numerator; }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDenominator(std::vector&lt;double&gt; denominator) { m_denominator = denominator; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateTFText();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { UpdateTFText(); }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> GetSpaceState() { <span class="keywordflow">return</span> m_ss; }</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> CalculateSpaceState(<span class="keywordtype">int</span> maxIteration = 100, <span class="keywordtype">double</span> error = 1e-3);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Solve(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; </div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">GetCopy</a>();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetText(wxString numerator, wxString denominator);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keyword">virtual</span> wxString GetSuperscriptNumber(<span class="keywordtype">int</span> number);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetTFString(wxString&amp; numerator, wxString&amp; denominator);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">wchar_t</span> m_supNumber[10];</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringNum = NULL;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringDen = NULL;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; std::vector&lt;double&gt; m_numerator;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; std::vector&lt;double&gt; m_denominator;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> m_ss;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::vector&lt;double&gt; m_x;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::vector&lt;double&gt; m_dx;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordtype">double</span> m_error = 1e-3;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordtype">int</span> m_maxIteration = 100;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;};</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;<span class="preprocessor">#endif // TRANSFERFUNCTION_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_transfer_function_html_afe15de93ab4f93032560a6139091ef10"><div class="ttname"><a href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00209">TransferFunction.cpp:209</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a3312f7e9499aa99742093d3b60547862"><div class="ttname"><a href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00359">TransferFunction.cpp:359</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a6325dec72c7b85178f490c5cf85229bd"><div class="ttname"><a href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd">TransferFunction::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00026">TransferFunction.h:26</a></div></div>
-<div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00008">TransferFunctionForm.h:8</a></div></div>
-<div class="ttc" id="struct_transfer_function_1_1_space_state_html"><div class="ttname"><a href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00014">TransferFunction.h:14</a></div></div>
-<div class="ttc" id="class_transfer_function_html_ae145b86db1450a19a3ed32084ee60423"><div class="ttname"><a href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00220">TransferFunction.cpp:220</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a6a4415d2cf0af290494ea30d586cc187"><div class="ttname"><a href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187">TransferFunction::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00025">TransferFunction.h:25</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
-<div class="ttc" id="class_transfer_function_html_a0cd1dec850117741abb04b608c7b3f1e"><div class="ttname"><a href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00035">TransferFunction.cpp:35</a></div></div>
-<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00053">ControlElement.h:53</a></div></div>
+<a href="_transfer_function_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TRANSFERFUNCTION_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TRANSFERFUNCTION_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_element_8h.html">ControlElement.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcscreen.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;wxGLString.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;</div><div class="line"><a name="l00035"></a><span class="lineno"><a class="line" href="class_transfer_function.html"> 35</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a> : <span class="keyword">public</span> <a class="code" href="class_control_element.html">ControlElement</a></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;{</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00038"></a><span class="lineno"><a class="line" href="struct_transfer_function_1_1_space_state.html"> 38</a></span>&#160; <span class="keyword">struct </span><a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> {</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; std::vector&lt;std::vector&lt;double&gt; &gt; A;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::vector&lt;double&gt; B;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::vector&lt;double&gt; C;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> D;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; };</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>(<span class="keywordtype">int</span> <span class="keywordtype">id</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ~<a class="code" href="class_transfer_function.html">TransferFunction</a>();</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187"> 49</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187">Contains</a>(wxPoint2DDouble position)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Contains(position); }</div><div class="line"><a name="l00050"></a><span class="lineno"><a class="line" href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd"> 50</a></span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd">Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_rect.Intersects(rect); }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">Rotate</a>(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetNumerator()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_numerator; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keyword">virtual</span> std::vector&lt;double&gt; GetDenominator()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_denominator; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNumerator(std::vector&lt;double&gt; numerator) { m_numerator = numerator; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetDenominator(std::vector&lt;double&gt; denominator) { m_denominator = denominator; }</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateTFText();</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> UpdateText() { UpdateTFText(); }</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> GetSpaceState() { <span class="keywordflow">return</span> m_ss; }</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> <a class="code" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">CalculateSpaceState</a>(<span class="keywordtype">int</span> maxIteration = 100, <span class="keywordtype">double</span> error = 1e-3);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> <a class="code" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">Solve</a>(<span class="keywordtype">double</span> input, <span class="keywordtype">double</span> timeStep);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">GetCopy</a>();</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetText(wxString numerator, wxString denominator);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keyword">virtual</span> wxString GetSuperscriptNumber(<span class="keywordtype">int</span> number);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> GetTFString(wxString&amp; numerator, wxString&amp; denominator);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">wchar_t</span> m_supNumber[10];</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringNum = NULL;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <a class="code" href="classwx_g_l_string.html">wxGLString</a>* m_glStringDen = NULL;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keywordtype">int</span> m_fontSize = 10;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; std::vector&lt;double&gt; m_numerator;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; std::vector&lt;double&gt; m_denominator;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <a class="code" href="struct_transfer_function_1_1_space_state.html">SpaceState</a> m_ss;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; std::vector&lt;double&gt; m_x;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; std::vector&lt;double&gt; m_dx;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordtype">double</span> m_error = 1e-3;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">int</span> m_maxIteration = 100;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;};</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;<span class="preprocessor">#endif // TRANSFERFUNCTION_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_transfer_function_html_afe15de93ab4f93032560a6139091ef10"><div class="ttname"><a href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00226">TransferFunction.cpp:226</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a3312f7e9499aa99742093d3b60547862"><div class="ttname"><a href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00377">TransferFunction.cpp:377</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a6325dec72c7b85178f490c5cf85229bd"><div class="ttname"><a href="class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd">TransferFunction::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00050">TransferFunction.h:50</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a5f09dd8e5c016a90c69a8e38ef302c8a"><div class="ttname"><a href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction::CalculateSpaceState</a></div><div class="ttdeci">virtual void CalculateSpaceState(int maxIteration=100, double error=1e-3)</div><div class="ttdoc">Convert the transfer function to space state on controllable canonical form (CCF). </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00268">TransferFunction.cpp:268</a></div></div>
+<div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdoc">Form to edit the transfer function control data. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00032">TransferFunctionForm.h:32</a></div></div>
+<div class="ttc" id="struct_transfer_function_1_1_space_state_html"><div class="ttname"><a href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00038">TransferFunction.h:38</a></div></div>
+<div class="ttc" id="class_transfer_function_html_ae145b86db1450a19a3ed32084ee60423"><div class="ttname"><a href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00237">TransferFunction.cpp:237</a></div></div>
+<div class="ttc" id="class_transfer_function_html_a6a4415d2cf0af290494ea30d586cc187"><div class="ttname"><a href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187">TransferFunction::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00049">TransferFunction.h:49</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="class_transfer_function_html_ab23ed101f7d4e953e4df0d4d480d9798"><div class="ttname"><a href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">TransferFunction::Solve</a></div><div class="ttdeci">virtual bool Solve(double input, double timeStep)</div><div class="ttdoc">Calculates the time response by the space state form of transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00320">TransferFunction.cpp:320</a></div></div>
+<div class="ttc" id="_control_element_8h_html"><div class="ttname"><a href="_control_element_8h.html">ControlElement.h</a></div><div class="ttdoc">Base class of a control element. Provide general methods to other control classes. </div></div>
+<div class="ttc" id="class_transfer_function_html_a0cd1dec850117741abb04b608c7b3f1e"><div class="ttname"><a href="class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e">TransferFunction::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8cpp_source.html#l00052">TransferFunction.cpp:52</a></div></div>
+<div class="ttc" id="class_control_element_html"><div class="ttname"><a href="class_control_element.html">ControlElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_control_element_8h_source.html#l00084">ControlElement.h:84</a></div></div>
<div class="ttc" id="classwx_g_l_string_html"><div class="ttname"><a href="classwx_g_l_string.html">wxGLString</a></div><div class="ttdef"><b>Definition:</b> <a href="wx_g_l_string_8h_source.html#l00077">wxGLString.h:77</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>TransferFunction.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transfer_function_8h.html">TransferFunction.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_transfer_function_form_8cpp_source.html b/docs/doxygen/html/_transfer_function_form_8cpp_source.html
index ef0077b..ae3e1b7 100644
--- a/docs/doxygen/html/_transfer_function_form_8cpp_source.html
+++ b/docs/doxygen/html/_transfer_function_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,8 +88,10 @@ $(document).ready(function(){initNavTree('_transfer_function_form_8cpp_source.ht
<div class="title">TransferFunctionForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TransferFunctionForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;TransferFunction.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;TransferFunctionForm::TransferFunctionForm(wxWindow* parent, <a class="code" href="class_transfer_function.html">TransferFunction</a>* transferFunction)</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160; : <a class="code" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; </div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; m_parent = parent;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; m_tf = transferFunction;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; LoadTFData();</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;}</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;TransferFunctionForm::~TransferFunctionForm() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::OnCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::OnOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;{</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;}</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::LoadTFData()</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keyword">auto</span> num = m_tf-&gt;GetNumerator();</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keyword">auto</span> den = m_tf-&gt;GetDenominator();</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString numStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = num.begin(), itEnd = num.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">if</span>(it == num.begin())</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; numStr = m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; numStr += <span class="stringliteral">&quot; &quot;</span> + m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; }</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_textCtrlNumerator-&gt;SetValue(numStr);</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; wxString denStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = den.begin(), itEnd = den.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">if</span>(it == den.begin())</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; denStr = m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; denStr += <span class="stringliteral">&quot; &quot;</span> + m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; }</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_textCtrlDenominator-&gt;SetValue(denStr);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keywordtype">bool</span> TransferFunctionForm::ValidateData()</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; wxString num = m_textCtrlNumerator-&gt;GetValue();</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; std::vector&lt;double&gt; numerator;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">while</span>(num != <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; wxString rest;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxString strValue = num.BeforeFirst(<span class="charliteral">&#39; &#39;</span>, &amp;rest);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; num = rest;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> value = 0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(!m_tf-&gt;DoubleFromString(<span class="keyword">this</span>, strValue, value,</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Numerator parameters\&quot;.&quot;</span>)))</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; numerator.push_back(value);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxString den = m_textCtrlDenominator-&gt;GetValue();</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; std::vector&lt;double&gt; denominator;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">while</span>(den != <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; wxString rest;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; wxString strValue = den.BeforeFirst(<span class="charliteral">&#39; &#39;</span>, &amp;rest);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; den = rest;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordtype">double</span> value = 0;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">if</span>(!m_tf-&gt;DoubleFromString(<span class="keyword">this</span>, strValue, value,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Denominator parameters\&quot;.&quot;</span>)))</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; denominator.push_back(value);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_tf-&gt;SetNumerator(numerator);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_tf-&gt;SetDenominator(denominator);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_tf-&gt;UpdateTFText();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;}</div><div class="ttc" id="class_transfer_function_form_base_html"><div class="ttname"><a href="class_transfer_function_form_base.html">TransferFunctionFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00775">ElementForm.h:775</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_form_8h.html">TransferFunctionForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transfer_function_8h.html">TransferFunction.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;TransferFunctionForm::TransferFunctionForm(wxWindow* parent, <a class="code" href="class_transfer_function.html">TransferFunction</a>* transferFunction)</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; : <a class="code" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; m_parent = parent;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_tf = transferFunction;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; LoadTFData();</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;}</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;TransferFunctionForm::~TransferFunctionForm() {}</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::OnCancelClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::OnOKClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;}</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keywordtype">void</span> TransferFunctionForm::LoadTFData()</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;{</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">auto</span> num = m_tf-&gt;GetNumerator();</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">auto</span> den = m_tf-&gt;GetDenominator();</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; wxString numStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = num.begin(), itEnd = num.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordflow">if</span>(it == num.begin())</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; numStr = m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; numStr += <span class="stringliteral">&quot; &quot;</span> + m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; }</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_textCtrlNumerator-&gt;SetValue(numStr);</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxString denStr = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = den.begin(), itEnd = den.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordtype">double</span> value = *it;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(it == den.begin())</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; denStr = m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; denStr += <span class="stringliteral">&quot; &quot;</span> + m_tf-&gt;StringFromDouble(value, 0);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; }</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_textCtrlDenominator-&gt;SetValue(denStr);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;<span class="keywordtype">bool</span> TransferFunctionForm::ValidateData()</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; wxString num = m_textCtrlNumerator-&gt;GetValue();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; std::vector&lt;double&gt; numerator;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">while</span>(num != <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; wxString rest;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; wxString strValue = num.BeforeFirst(<span class="charliteral">&#39; &#39;</span>, &amp;rest);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; num = rest;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordtype">double</span> value = 0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(!m_tf-&gt;DoubleFromString(<span class="keyword">this</span>, strValue, value,</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Numerator parameters\&quot;.&quot;</span>)))</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; numerator.push_back(value);</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxString den = m_textCtrlDenominator-&gt;GetValue();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; std::vector&lt;double&gt; denominator;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">while</span>(den != <span class="stringliteral">&quot;&quot;</span>) {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxString rest;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; wxString strValue = den.BeforeFirst(<span class="charliteral">&#39; &#39;</span>, &amp;rest);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; den = rest;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">double</span> value = 0;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordflow">if</span>(!m_tf-&gt;DoubleFromString(<span class="keyword">this</span>, strValue, value,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Denominator parameters\&quot;.&quot;</span>)))</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; denominator.push_back(value);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_tf-&gt;SetNumerator(numerator);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_tf-&gt;SetDenominator(denominator);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; m_tf-&gt;UpdateTFText();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;}</div><div class="ttc" id="_transfer_function_form_8h_html"><div class="ttname"><a href="_transfer_function_form_8h.html">TransferFunctionForm.h</a></div></div>
+<div class="ttc" id="class_transfer_function_form_base_html"><div class="ttname"><a href="class_transfer_function_form_base.html">TransferFunctionFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00775">ElementForm.h:775</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
+<div class="ttc" id="_transfer_function_8h_html"><div class="ttname"><a href="_transfer_function_8h.html">TransferFunction.h</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_transfer_function_form_8h.html b/docs/doxygen/html/_transfer_function_form_8h.html
new file mode 100644
index 0000000..759ef39
--- /dev/null
+++ b/docs/doxygen/html/_transfer_function_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/TransferFunctionForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_transfer_function_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TransferFunctionForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_transfer_function_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transfer_function_form.html">TransferFunctionForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the transfer function control data. <a href="class_transfer_function_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transfer_function_form_8h.html">TransferFunctionForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_transfer_function_form_8h_source.html b/docs/doxygen/html/_transfer_function_form_8h_source.html
index d33d245..1dfc2e7 100644
--- a/docs/doxygen/html/_transfer_function_form_8h_source.html
+++ b/docs/doxygen/html/_transfer_function_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,15 +88,15 @@ $(document).ready(function(){initNavTree('_transfer_function_form_8h_source.html
<div class="title">TransferFunctionForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TRANSFERFUNCTIONFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TRANSFERFUNCTIONFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"><a class="line" href="class_transfer_function_form.html"> 8</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a> : <span class="keyword">public</span> <a class="code" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;{</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>(wxWindow* parent, <a class="code" href="class_transfer_function.html">TransferFunction</a>* transferFunction);</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>();</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keywordtype">void</span> LoadTFData();</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; </div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* m_tf = NULL;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;};</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#endif // TRANSFERFUNCTIONFORM_H</span></div><div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00008">TransferFunctionForm.h:8</a></div></div>
+<a href="_transfer_function_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TRANSFERFUNCTIONFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TRANSFERFUNCTIONFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function.html">TransferFunction</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"><a class="line" href="class_transfer_function_form.html"> 32</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a> : <span class="keyword">public</span> <a class="code" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;{</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>(wxWindow* parent, <a class="code" href="class_transfer_function.html">TransferFunction</a>* transferFunction);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transfer_function_form.html">TransferFunctionForm</a>();</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">void</span> LoadTFData();</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <a class="code" href="class_transfer_function.html">TransferFunction</a>* m_tf = NULL;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;};</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="preprocessor">#endif // TRANSFERFUNCTIONFORM_H</span></div><div class="ttc" id="class_transfer_function_form_html"><div class="ttname"><a href="class_transfer_function_form.html">TransferFunctionForm</a></div><div class="ttdoc">Form to edit the transfer function control data. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_form_8h_source.html#l00032">TransferFunctionForm.h:32</a></div></div>
<div class="ttc" id="class_transfer_function_form_base_html"><div class="ttname"><a href="class_transfer_function_form_base.html">TransferFunctionFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00775">ElementForm.h:775</a></div></div>
-<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00011">TransferFunction.h:11</a></div></div>
+<div class="ttc" id="class_transfer_function_html"><div class="ttname"><a href="class_transfer_function.html">TransferFunction</a></div><div class="ttdoc">Calculates the time response by a frequency domain transfer function. </div><div class="ttdef"><b>Definition:</b> <a href="_transfer_function_8h_source.html#l00035">TransferFunction.h:35</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>TransferFunctionForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transfer_function_form_8h.html">TransferFunctionForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_transformer_8cpp_source.html b/docs/doxygen/html/_transformer_8cpp_source.html
index c1e7a91..27810c6 100644
--- a/docs/doxygen/html/_transformer_8cpp_source.html
+++ b/docs/doxygen/html/_transformer_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,43 +88,45 @@ $(document).ready(function(){initNavTree('_transformer_8cpp_source.html','');});
<div class="title">Transformer.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TransformerForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;Transformer::Transformer() : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;{</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; }</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; }</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;}</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;Transformer::Transformer(wxString name) : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; }</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; }</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;}</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Transformer::~Transformer() {}</div><div class="line"><a name="l00022"></a><span class="lineno"><a class="line" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6"> 22</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() == 0) {</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; m_position = position;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// First point</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent != m_parentList[0]) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="comment">// Get the average between the two bus points.</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_position =</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; wxPoint2DDouble((m_pointList[0].m_x + parentPt.m_x) / 2.0, (m_pointList[0].m_y + parentPt.m_y) / 2.0);</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="comment">// Set the transformer rectangle.</span></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_width = 70.0;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_height = 40.0;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; SetPosition(m_position); <span class="comment">// This method calculates the rectangle propely.</span></div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="comment">// Set the &quot;side&quot; points.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_pointList.push_back(</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; wxPoint2DDouble(m_rect.GetPosition() + wxPoint2DDouble(-10 - m_borderSize, m_height / 2.0)));</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_pointList.push_back(</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; wxPoint2DDouble(m_rect.GetPosition() + wxPoint2DDouble(m_width + 10 + m_borderSize, m_height / 2.0)));</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="comment">// Set first switch point.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; wxPoint2DDouble secondPoint = parentPt;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 2) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; secondPoint = m_pointList[2];</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], secondPoint);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Set the second switch point.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_pointList[m_pointList.size() - 1]));</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// Last point.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;}</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"><a class="line" href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0"> 88</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0">Transformer::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160;}</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"><a class="line" href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422"> 94</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422">Transformer::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="comment">// Draw selection (layer 1).</span></div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; glPushMatrix();</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20 + (m_borderSize + 1.5) / scale, 20,</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; GL_POLYGON);</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20 + (m_borderSize + 1.5) / scale, 20,</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; GL_POLYGON);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; glPopMatrix();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Draw nodes selection.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; DrawCircle(m_pointList[m_pointList.size() - 1], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; }</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; }</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="comment">// Draw transformer (layer 2).</span></div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="comment">// Transformer line</span></div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="comment">// Draw nodes.</span></div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; DrawCircle(m_pointList[m_pointList.size() - 1], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; }</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; DrawSwitches();</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; glPushMatrix();</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20, GL_POLYGON);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20, GL_POLYGON);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20);</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20);</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; DrawPoint(m_rect.GetPosition(), 8.0 * scale);</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; glPopMatrix();</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; }</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;}</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160;</div><div class="line"><a name="l00173"></a><span class="lineno"><a class="line" href="class_transformer.html#a39b58fcf230970601c5d77c088559731"> 173</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a39b58fcf230970601c5d77c088559731">Transformer::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160;}</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"><a class="line" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de"> 179</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;{</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Rotate all the points, except the switches and buses points.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; m_pointList[i] = RotateAtPosition(m_pointList[i], rotAngle);</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;}</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;</div><div class="line"><a name="l00195"></a><span class="lineno"><a class="line" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8"> 195</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;{</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="comment">// Move all the points, except the switches and buses points.</span></div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; }</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; }</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;}</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"><a class="line" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a"> 215</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;{</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; }</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; }</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;}</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"><a class="line" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5"> 249</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;{</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160;}</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160;</div><div class="line"><a name="l00256"></a><span class="lineno"><a class="line" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd"> 256</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160;{</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit tranformer&quot;</span>));</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;}</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160;</div><div class="line"><a name="l00263"></a><span class="lineno"><a class="line" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f"> 263</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;{</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; <a class="code" href="class_transformer_form.html">TransformerForm</a>* transfForm = <span class="keyword">new</span> <a class="code" href="class_transformer_form.html">TransformerForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; <span class="keywordflow">if</span>(transfForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; transfForm-&gt;Destroy();</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; }</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; transfForm-&gt;Destroy();</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;}</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"><a class="line" href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728"> 274</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728">Transformer::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160;{</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() == 1) {</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; m_electricalData.primaryNominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; m_electricalData.primaryNominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nominalVoltage.size() == 2) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; m_electricalData.primaryNominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; m_electricalData.primaryNominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; m_electricalData.secondaryNominalVoltage = nominalVoltage[1];</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_electricalData.secondaryNominalVoltageUnit = nominalVoltageUnit[1];</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; }</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160;}</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;<span class="keywordtype">void</span> Transformer::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160;{</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>: {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; }</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>: {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)m_pointList.size() - 2; i &gt; 0; i--) {</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; }</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160;}</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160;</div><div class="line"><a name="l00310"></a><span class="lineno"><a class="line" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996"> 310</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160;{</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160;</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160;}</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160;</div><div class="line"><a name="l00324"></a><span class="lineno"><a class="line" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6"> 324</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;{</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; }</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; }</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160;</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; }</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160;</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160;</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; }</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;}</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160;</div><div class="line"><a name="l00388"></a><span class="lineno"><a class="line" href="class_transformer.html#a328c419af15701734168c8db62eefa36"> 388</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160;{</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;}</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160;</div><div class="line"><a name="l00394"></a><span class="lineno"><a class="line" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd"> 394</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer::GetCopy</a>()</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160;{</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* copy = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160;}</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160;</div><div class="line"><a name="l00401"></a><span class="lineno"><a class="line" href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b"> 401</a></span>&#160;wxString <a class="code" href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b">Transformer::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; wxString primVoltage = StringFromDouble(m_electricalData.primaryNominalVoltage);</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.primaryNominalVoltageUnit) {</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; primVoltage += _(<span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; primVoltage += _(<span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; }</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; wxString secVoltage = StringFromDouble(m_electricalData.secondaryNominalVoltage);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.secondaryNominalVoltageUnit) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; secVoltage += _(<span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; secVoltage += _(<span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160;</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span> + primVoltage + <span class="stringliteral">&quot; / &quot;</span> + secVoltage;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordtype">int</span> busNumber[2];</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; busNumber[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; busNumber[1] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[1])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160;</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160;}</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160;<a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> Transformer::GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower)</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160;{</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; <span class="keywordtype">double</span> transformerBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordtype">double</span> baseVoltage = 0.0;</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; <span class="keywordflow">if</span>(data.baseVoltage == 0) {</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; baseVoltage = GetValueFromUnit(data.primaryNominalVoltage, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; baseVoltage = GetValueFromUnit(data.secondaryNominalVoltage, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemBasePower;</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; <span class="keywordtype">double</span> transformerBaseImpedance = (baseVoltage * baseVoltage) / transformerBasePower;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="comment">// Resistance</span></div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordtype">double</span> r = data.resistance;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.resistance = (r * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; data.resistance = r / systemBaseImpedance;</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="comment">// Indutive reactance</span></div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; <span class="keywordtype">double</span> x = data.indReactance;</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.indReactance = (x * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; data.indReactance = x / systemBaseImpedance;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; }</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160;</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="comment">// Zero seq. resistance</span></div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; <span class="keywordtype">double</span> r0 = data.zeroResistance;</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.zeroResistance = (r0 * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; <span class="comment">// Zero seq. ind. reactance</span></div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordtype">double</span> x0 = data.zeroIndReactance;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.zeroIndReactance = (x0 * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="comment">// Primary ground resistance</span></div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordtype">double</span> rgp = data.primaryGrndResistance;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.primaryGrndResistance = (rgp * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; <span class="comment">// Primary ground ind reactance</span></div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordtype">double</span> xgp = data.primaryGrndReactance;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.primaryGrndReactance = (xgp * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="comment">// Secondary ground resistance</span></div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordtype">double</span> rgs = data.secondaryGrndResistance;</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.secondaryGrndResistance = (rgs * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; <span class="comment">// Secondary ground ind reactance</span></div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="keywordtype">double</span> xgs = data.secondaryGrndReactance;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.secondaryGrndReactance = (xgs * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; </div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; data.powerFlow[0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; data.powerFlow[1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; data.faultCurrent[0][0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; data.faultCurrent[0][1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; data.faultCurrent[0][2] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; data.faultCurrent[1][0] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; data.faultCurrent[1][1] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; data.faultCurrent[1][2] = std::complex&lt;double&gt;(0,0);</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; }</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00201">Element.h:201</a></div></div>
-<div class="ttc" id="class_transformer_html_a286bcc94f7202a6ff81b66707424a9bd"><div class="ttname"><a href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00394">Transformer.cpp:394</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_transformer_html_aaa6cc999eb77a94dafaec5debb4db3de"><div class="ttname"><a href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00179">Transformer.cpp:179</a></div></div>
-<div class="ttc" id="class_transformer_html_acb55f182a7f6d7af0feb6a94cb62af4f"><div class="ttname"><a href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00263">Transformer.cpp:263</a></div></div>
-<div class="ttc" id="class_transformer_html_a169064f996341f8f8b6881c6a3909f0b"><div class="ttname"><a href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b">Transformer::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00401">Transformer.cpp:401</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00091">Element.cpp:91</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_form_8h.html">TransformerForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;Transformer::Transformer() : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;{</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; }</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; }</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;}</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;Transformer::Transformer(wxString name) : <a class="code" href="class_branch.html">Branch</a>()</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;{</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; 2; i++) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; 3; j++) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_electricalData.faultCurrent[i][j] = std::complex&lt;double&gt;(0.0, 0.0);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; }</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; }</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_electricalData.name = name;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;}</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;Transformer::~Transformer() {}</div><div class="line"><a name="l00039"></a><span class="lineno"><a class="line" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6"> 39</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;{</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(m_parentList.size() == 0) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_position = position;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// First point</span></div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_position));</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent != m_parentList[0]) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_parentList.push_back(parent);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(<span class="keyword">this</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(position, -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate back.</span></div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="comment">// Get the average between the two bus points.</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; m_position =</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; wxPoint2DDouble((m_pointList[0].m_x + parentPt.m_x) / 2.0, (m_pointList[0].m_y + parentPt.m_y) / 2.0);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Set the transformer rectangle.</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_width = 70.0;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_height = 40.0;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; SetPosition(m_position); <span class="comment">// This method calculates the rectangle propely.</span></div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="comment">// Set the &quot;side&quot; points.</span></div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_pointList.push_back(</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; wxPoint2DDouble(m_rect.GetPosition() + wxPoint2DDouble(-10 - m_borderSize, m_height / 2.0)));</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; m_pointList.push_back(</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxPoint2DDouble(m_rect.GetPosition() + wxPoint2DDouble(m_width + 10 + m_borderSize, m_height / 2.0)));</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="comment">// Set first switch point.</span></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxPoint2DDouble secondPoint = parentPt;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 2) {</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; secondPoint = m_pointList[2];</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; }</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_pointList[1] = GetSwitchPoint(m_parentList[0], m_pointList[0], secondPoint);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Set the second switch point.</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_pointList.push_back(GetSwitchPoint(parent, parentPt, m_pointList[m_pointList.size() - 1]));</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_pointList.push_back(parentPt); <span class="comment">// Last point.</span></div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_inserted = <span class="keyword">true</span>;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; wxRect2DDouble genRect(0, 0, 0, 0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; m_switchRect.push_back(genRect);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; UpdateSwitches();</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;}</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"><a class="line" href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0"> 105</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0">Transformer::Contains</a>(wxPoint2DDouble position)<span class="keyword"> const</span></div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; wxPoint2DDouble ptR = RotateAtPosition(position, -m_angle);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">return</span> m_rect.Contains(ptR);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;}</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;</div><div class="line"><a name="l00111"></a><span class="lineno"><a class="line" href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422"> 111</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422">Transformer::Draw</a>(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale)<span class="keyword"> const</span></div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <a class="code" href="class_open_g_l_colour.html">OpenGLColour</a> elementColour;</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">if</span>(m_dynEvent)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; elementColour = m_dynamicEventColour;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; elementColour = m_onlineElementColour;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; } <span class="keywordflow">else</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; elementColour = m_offlineElementColour;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="comment">// Draw selection (layer 1).</span></div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordflow">if</span>(m_selected) {</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; glLineWidth(1.5 + m_borderSize * 2.0);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; glColor4dv(m_selectionColour.GetRGBA());</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; glPushMatrix();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20 + (m_borderSize + 1.5) / scale, 20,</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; GL_POLYGON);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20 + (m_borderSize + 1.5) / scale, 20,</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; GL_POLYGON);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160;</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; glPopMatrix();</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Draw nodes selection.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; DrawCircle(m_pointList[0], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; DrawCircle(m_pointList[m_pointList.size() - 1], 5.0 + m_borderSize / scale, 10, GL_POLYGON);</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; }</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; }</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="comment">// Draw transformer (layer 2).</span></div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="comment">// Transformer line</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; glLineWidth(1.5);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; DrawLine(m_pointList);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="comment">// Draw nodes.</span></div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">if</span>(m_pointList.size() &gt; 0) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; DrawCircle(m_pointList[0], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">if</span>(m_inserted) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; DrawCircle(m_pointList[m_pointList.size() - 1], 5.0, 10, GL_POLYGON);</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; }</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; DrawSwitches();</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; DrawPowerFlowPts();</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; <span class="comment">// Push the current matrix on stack.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; glPushMatrix();</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// Rotate the matrix around the object position.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; glTranslated(m_position.m_x, m_position.m_y, 0.0);</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; glRotated(m_angle, 0.0, 0.0, 1.0);</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; glTranslated(-m_position.m_x, -m_position.m_y, 0.0);</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; glColor4d(1.0, 1.0, 1.0, 1.0);</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20, GL_POLYGON);</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20, GL_POLYGON);</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; glColor4dv(elementColour.<a class="code" href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">GetRGBA</a>());</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(20.0, 20.0), 20, 20);</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; DrawCircle(m_rect.GetPosition() + wxPoint2DDouble(50.0, 20.0), 20, 20);</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; DrawPoint(m_rect.GetPosition(), 8.0 * scale);</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; glPopMatrix();</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; }</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160;}</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160;</div><div class="line"><a name="l00190"></a><span class="lineno"><a class="line" href="class_transformer.html#a39b58fcf230970601c5d77c088559731"> 190</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a39b58fcf230970601c5d77c088559731">Transformer::Intersects</a>(wxRect2DDouble rect)<span class="keyword"> const</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">if</span>(m_angle == 0.0 || m_angle == 180.0) <span class="keywordflow">return</span> m_rect.Intersects(rect);</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">return</span> RotatedRectanglesIntersects(m_rect, rect, m_angle, 0.0);</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160;}</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160;</div><div class="line"><a name="l00196"></a><span class="lineno"><a class="line" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de"> 196</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a>(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160;{</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; m_angle += rotAngle;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">if</span>(m_angle &gt;= 360 || m_angle &lt;= -360) m_angle = 0.0;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Rotate all the points, except the switches and buses points.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; m_pointList[i] = RotateAtPosition(m_pointList[i], rotAngle);</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; }</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160;}</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160;</div><div class="line"><a name="l00212"></a><span class="lineno"><a class="line" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8"> 212</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160;{</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; SetPosition(m_movePos + position - m_moveStartPt);</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; <span class="comment">// Move all the points, except the switches and buses points.</span></div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 2; i &lt; (int)m_pointList.size() - 2; i++) {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; m_pointList[i] = m_movePts[i] + position - m_moveStartPt;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; }</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160;</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; <span class="keywordflow">if</span>(!m_parentList[0]) {</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; }</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(!m_parentList[1]) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160;}</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"><a class="line" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a"> 232</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer::MoveNode</a>(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position)</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;{</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; <span class="comment">// First bus.</span></div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; }</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="comment">// Second bus.</span></div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; m_pointList[0] = m_movePts[0] + position - m_moveStartPt;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span>(m_parentList[0]) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_parentList[0]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_parentList[0] = NULL;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; }</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; m_pointList[m_pointList.size() - 1] = m_movePts[m_pointList.size() - 1] + position - m_moveStartPt;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(m_parentList[1]) {</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; m_parentList[1]-&gt;RemoveChild(<span class="keyword">this</span>);</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; m_parentList[1] = NULL;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; m_online = <span class="keyword">false</span>;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; }</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <span class="comment">// Recalculate switches positions</span></div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;}</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;</div><div class="line"><a name="l00266"></a><span class="lineno"><a class="line" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5"> 266</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a>(wxPoint2DDouble position)</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160;{</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; m_moveStartPt = position;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; m_movePts = m_pointList;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160; m_movePos = m_position;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160;}</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160;</div><div class="line"><a name="l00273"></a><span class="lineno"><a class="line" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd"> 273</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer::GetContextMenu</a>(wxMenu&amp; menu)</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160;{</div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; menu.Append(<a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>, _(<span class="stringliteral">&quot;Edit tranformer&quot;</span>));</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; GeneralMenuItens(menu);</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160;}</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160;</div><div class="line"><a name="l00280"></a><span class="lineno"><a class="line" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f"> 280</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer::ShowForm</a>(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element)</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160;{</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <a class="code" href="class_transformer_form.html">TransformerForm</a>* transfForm = <span class="keyword">new</span> <a class="code" href="class_transformer_form.html">TransformerForm</a>(parent, <span class="keyword">this</span>);</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; <span class="keywordflow">if</span>(transfForm-&gt;ShowModal() == wxID_OK) {</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; transfForm-&gt;Destroy();</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; }</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; transfForm-&gt;Destroy();</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160;}</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160;</div><div class="line"><a name="l00291"></a><span class="lineno"><a class="line" href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728"> 291</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728">Transformer::SetNominalVoltage</a>(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit)</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160;{</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">if</span>(nominalVoltage.size() == 1) {</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; m_electricalData.primaryNominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; m_electricalData.primaryNominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(nominalVoltage.size() == 2) {</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; m_electricalData.primaryNominalVoltage = nominalVoltage[0];</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; m_electricalData.primaryNominalVoltageUnit = nominalVoltageUnit[0];</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; m_electricalData.secondaryNominalVoltage = nominalVoltage[1];</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; m_electricalData.secondaryNominalVoltageUnit = nominalVoltageUnit[1];</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; }</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160;}</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160;</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160;<span class="keywordtype">void</span> Transformer::UpdatePowerFlowArrowsPosition()</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160;{</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; std::vector&lt;wxPoint2DDouble&gt; edges;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; <span class="keywordflow">switch</span>(m_pfDirection) {</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a>: {</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; m_powerFlowArrow.clear();</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a>: {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 1; i &lt; (int)m_pointList.size() - 1; i++) {</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a>: {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = (<span class="keywordtype">int</span>)m_pointList.size() - 2; i &gt; 0; i--) {</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; edges.push_back(m_pointList[i]);</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160; CalculatePowerFlowPts(edges);</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;}</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;</div><div class="line"><a name="l00327"></a><span class="lineno"><a class="line" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996"> 327</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer::RotateNode</a>(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160;{</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordtype">double</span> rotAngle = m_rotationAngle;</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">if</span>(!clockwise) rotAngle = -m_rotationAngle;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span>(parent == m_parentList[0]) {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; m_pointList[0] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[0], rotAngle);</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(parent == m_parentList[1]) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; m_pointList[m_pointList.size() - 1] = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], rotAngle);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160;}</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160;</div><div class="line"><a name="l00341"></a><span class="lineno"><a class="line" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6"> 341</a></span>&#160;<span class="keywordtype">bool</span> <a class="code" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer::SetNodeParent</a>(<a class="code" href="class_element.html">Element</a>* parent)</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;{</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1 &amp;&amp; parent == m_parentList[0]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2 &amp;&amp; parent == m_parentList[1]) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(parent &amp;&amp; m_activeNodeID != 0) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; wxRect2DDouble nodeRect(0, 0, 0, 0);</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; nodeRect = wxRect2DDouble(m_pointList[0].m_x - 5.0 - m_borderSize, m_pointList[0].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; }</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; nodeRect = wxRect2DDouble(m_pointList[m_pointList.size() - 1].m_x - 5.0 - m_borderSize,</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; m_pointList[m_pointList.size() - 1].m_y - 5.0 - m_borderSize,</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; 10 + 2.0 * m_borderSize, 10 + 2.0 * m_borderSize);</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; }</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160;</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(nodeRect)) {</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) {</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="comment">// Check if the user is trying to connect the same bus.</span></div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span>(m_parentList[1] == parent) {</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; m_parentList[0] = parent;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160;</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="comment">// Centralize the node on bus.</span></div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; wxPoint2DDouble parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; m_pointList[0], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>()); <span class="comment">// Rotate click to horizontal position.</span></div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y; <span class="comment">// Centralize on bus.</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; m_pointList[0] = parentPt;</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160;</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; }</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; <span class="keywordflow">if</span>(m_parentList[0] == parent) {</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_activeNodeID = 0;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160;</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; m_parentList[1] = parent;</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160;</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; wxPoint2DDouble parentPt =</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(m_pointList[m_pointList.size() - 1], -parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; parentPt.m_y = parent-&gt;<a class="code" href="class_element.html#a536ad18a847dcc979c984b3cb287f238">GetPosition</a>().m_y;</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; parentPt = parent-&gt;<a class="code" href="class_element.html#a99b213010776b34a27eb814aff288a34">RotateAtPosition</a>(parentPt, parent-&gt;<a class="code" href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">GetAngle</a>());</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; m_pointList[m_pointList.size() - 1] = parentPt;</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160;</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; UpdateSwitchesPosition();</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; }</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 1) m_parentList[0] = NULL;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span>(m_activeNodeID == 2) m_parentList[1] = NULL;</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160;}</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160;</div><div class="line"><a name="l00405"></a><span class="lineno"><a class="line" href="class_transformer.html#a328c419af15701734168c8db62eefa36"> 405</a></span>&#160;<span class="keywordtype">void</span> <a class="code" href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a>(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection)</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160;{</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; m_pfDirection = pfDirection;</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160;}</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160;</div><div class="line"><a name="l00411"></a><span class="lineno"><a class="line" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd"> 411</a></span>&#160;<a class="code" href="class_element.html">Element</a>* <a class="code" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer::GetCopy</a>()</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160;{</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* copy = <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; *copy = *<span class="keyword">this</span>;</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <span class="keywordflow">return</span> copy;</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160;}</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160;</div><div class="line"><a name="l00418"></a><span class="lineno"><a class="line" href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b"> 418</a></span>&#160;wxString <a class="code" href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b">Transformer::GetTipText</a>()<span class="keyword"> const</span></div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; wxString tipText = m_electricalData.name;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; wxString primVoltage = StringFromDouble(m_electricalData.primaryNominalVoltage);</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.primaryNominalVoltageUnit) {</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; primVoltage += _(<span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; primVoltage += _(<span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; }</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; wxString secVoltage = StringFromDouble(m_electricalData.secondaryNominalVoltage);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; <span class="keywordflow">switch</span>(m_electricalData.secondaryNominalVoltageUnit) {</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; secVoltage += _(<span class="stringliteral">&quot; V&quot;</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; secVoltage += _(<span class="stringliteral">&quot; kV&quot;</span>);</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span> + primVoltage + <span class="stringliteral">&quot; / &quot;</span> + secVoltage;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160;</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">if</span>(m_online) {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; tipText += <span class="stringliteral">&quot;\n&quot;</span>;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordtype">int</span> busNumber[2];</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; busNumber[0] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[0])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; busNumber[1] = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(m_parentList[1])-&gt;GetElectricalData().number + 1;</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[0], busNumber[1]) +</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[0].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; tipText += _(<span class="stringliteral">&quot;\nP&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].real(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; tipText += _(<span class="stringliteral">&quot;\nQ&quot;</span>) + wxString::Format(<span class="stringliteral">&quot;(%d-%d) = &quot;</span>, busNumber[1], busNumber[0]) +</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; wxString::FromDouble(m_electricalData.powerFlow[1].imag(), 5) + _(<span class="stringliteral">&quot; p.u.&quot;</span>);</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; }</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; <span class="keywordflow">return</span> tipText;</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160;}</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160;<a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> Transformer::GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower)</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160;{</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = m_electricalData;</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160; <span class="keywordtype">double</span> transformerBasePower = GetValueFromUnit(data.nominalPower, data.nominalPowerUnit);</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordtype">double</span> baseVoltage = 0.0;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; <span class="keywordflow">if</span>(data.baseVoltage == 0) {</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; baseVoltage = GetValueFromUnit(data.primaryNominalVoltage, data.primaryNominalVoltageUnit);</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; baseVoltage = GetValueFromUnit(data.secondaryNominalVoltage, data.secondaryNominalVoltageUnit);</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; }</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <span class="keywordtype">double</span> systemBaseImpedance = (baseVoltage * baseVoltage) / systemBasePower;</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; <span class="keywordtype">double</span> transformerBaseImpedance = (baseVoltage * baseVoltage) / transformerBasePower;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; <span class="comment">// Resistance</span></div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; <span class="keywordtype">double</span> r = data.resistance;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">if</span>(data.resistanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.resistance = (r * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; data.resistance = r / systemBaseImpedance;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; }</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="comment">// Indutive reactance</span></div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordtype">double</span> x = data.indReactance;</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">if</span>(data.indReactanceUnit == <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>) {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.indReactance = (x * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; data.indReactance = x / systemBaseImpedance;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; }</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="comment">// Zero seq. resistance</span></div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="keywordtype">double</span> r0 = data.zeroResistance;</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.zeroResistance = (r0 * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; <span class="comment">// Zero seq. ind. reactance</span></div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordtype">double</span> x0 = data.zeroIndReactance;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.zeroIndReactance = (x0 * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160;</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="comment">// Primary ground resistance</span></div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; <span class="keywordtype">double</span> rgp = data.primaryGrndResistance;</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.primaryGrndResistance = (rgp * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; <span class="comment">// Primary ground ind reactance</span></div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordtype">double</span> xgp = data.primaryGrndReactance;</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.primaryGrndReactance = (xgp * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <span class="comment">// Secondary ground resistance</span></div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordtype">double</span> rgs = data.secondaryGrndResistance;</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.secondaryGrndResistance = (rgs * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160;</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; <span class="comment">// Secondary ground ind reactance</span></div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; <span class="keywordtype">double</span> xgs = data.secondaryGrndReactance;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; <span class="keywordflow">if</span>(data.useTransformerPower) data.secondaryGrndReactance = (xgs * transformerBaseImpedance) / systemBaseImpedance;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">if</span>(!m_online) {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; data.powerFlow[0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; data.powerFlow[1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; data.faultCurrent[0][0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; data.faultCurrent[0][1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; data.faultCurrent[0][2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; data.faultCurrent[1][0] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; data.faultCurrent[1][1] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; data.faultCurrent[1][2] = std::complex&lt;double&gt;(0, 0);</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; }</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">return</span> data;</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160;}</div><div class="ttc" id="class_element_html_a5c75d8a6e28326dd568104a4d9d3473f"><div class="ttname"><a href="class_element.html#a5c75d8a6e28326dd568104a4d9d3473f">Element::GetAngle</a></div><div class="ttdeci">double GetAngle() const</div><div class="ttdoc">Get the element angle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00212">Element.h:212</a></div></div>
+<div class="ttc" id="class_transformer_html_a286bcc94f7202a6ff81b66707424a9bd"><div class="ttname"><a href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00411">Transformer.cpp:411</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_transformer_html_aaa6cc999eb77a94dafaec5debb4db3de"><div class="ttname"><a href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00196">Transformer.cpp:196</a></div></div>
+<div class="ttc" id="class_transformer_html_acb55f182a7f6d7af0feb6a94cb62af4f"><div class="ttname"><a href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00280">Transformer.cpp:280</a></div></div>
+<div class="ttc" id="class_transformer_html_a169064f996341f8f8b6881c6a3909f0b"><div class="ttname"><a href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b">Transformer::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00418">Transformer.cpp:418</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="class_element_html_a99b213010776b34a27eb814aff288a34"><div class="ttname"><a href="class_element.html#a99b213010776b34a27eb814aff288a34">Element::RotateAtPosition</a></div><div class="ttdeci">virtual wxPoint2DDouble RotateAtPosition(wxPoint2DDouble pointToRotate, double angle, bool degrees=true) const</div><div class="ttdoc">Rotate a point as element position being the origin. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_transformer_html_a9652232a076cca0fe3753477ec88f63a"><div class="ttname"><a href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00215">Transformer.cpp:215</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00009">TransformerForm.h:9</a></div></div>
-<div class="ttc" id="class_transformer_html_a67f1e2686932700fe8a83fdc232ea1e8"><div class="ttname"><a href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00195">Transformer.cpp:195</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
-<div class="ttc" id="class_transformer_html_a328c419af15701734168c8db62eefa36"><div class="ttname"><a href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00388">Transformer.cpp:388</a></div></div>
-<div class="ttc" id="class_transformer_html_a7e3cd54e20d795ab9b0b8533ce03b728"><div class="ttname"><a href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728">Transformer::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00274">Transformer.cpp:274</a></div></div>
-<div class="ttc" id="class_transformer_html_adfe51a2198cfc10e1095af9c034681bd"><div class="ttname"><a href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00256">Transformer.cpp:256</a></div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00066">PowerElement.h:66</a></div></div>
-<div class="ttc" id="class_transformer_html_adf0b20286f3de359346b8877d65c1996"><div class="ttname"><a href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00310">Transformer.cpp:310</a></div></div>
-<div class="ttc" id="class_transformer_html_a39b58fcf230970601c5d77c088559731"><div class="ttname"><a href="class_transformer.html#a39b58fcf230970601c5d77c088559731">Transformer::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00173">Transformer.cpp:173</a></div></div>
-<div class="ttc" id="class_transformer_html_a327ff3cf9194c18049e4feac6761ebc0"><div class="ttname"><a href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0">Transformer::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00088">Transformer.cpp:88</a></div></div>
-<div class="ttc" id="class_transformer_html_a4f9137e6190fb630167f671a0da51ab6"><div class="ttname"><a href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00324">Transformer.cpp:324</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00062">PowerElement.h:62</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00048">Element.h:48</a></div></div>
-<div class="ttc" id="class_transformer_html_a1e9e9ba48aa76bdd2ff2e973014ad422"><div class="ttname"><a href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422">Transformer::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00094">Transformer.cpp:94</a></div></div>
-<div class="ttc" id="class_transformer_html_aea52a4562ec5b4a79bf82b8ede32ecc6"><div class="ttname"><a href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00022">Transformer.cpp:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="class_transformer_html_a0395a11dc8173e511a0596ac96bf05e5"><div class="ttname"><a href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00249">Transformer.cpp:249</a></div></div>
-<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00171">Element.h:171</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00065">PowerElement.h:65</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00083">Element.h:83</a></div></div>
-<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00007">Branch.h:7</a></div></div>
+<div class="ttc" id="class_transformer_html_a9652232a076cca0fe3753477ec88f63a"><div class="ttname"><a href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00232">Transformer.cpp:232</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdoc">Form to edit the transformer power data. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00033">TransformerForm.h:33</a></div></div>
+<div class="ttc" id="class_transformer_html_a67f1e2686932700fe8a83fdc232ea1e8"><div class="ttname"><a href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00212">Transformer.cpp:212</a></div></div>
+<div class="ttc" id="_transformer_form_8h_html"><div class="ttname"><a href="_transformer_form_8h.html">TransformerForm.h</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
+<div class="ttc" id="class_transformer_html_a328c419af15701734168c8db62eefa36"><div class="ttname"><a href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer::SetPowerFlowDirection</a></div><div class="ttdeci">virtual void SetPowerFlowDirection(PowerFlowDirection pfDirection)</div><div class="ttdoc">Set the direction of the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00405">Transformer.cpp:405</a></div></div>
+<div class="ttc" id="class_transformer_html_a7e3cd54e20d795ab9b0b8533ce03b728"><div class="ttname"><a href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728">Transformer::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00291">Transformer.cpp:291</a></div></div>
+<div class="ttc" id="class_transformer_html_adfe51a2198cfc10e1095af9c034681bd"><div class="ttname"><a href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00273">Transformer.cpp:273</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740a76c5c56adeea68291ce8b63b8e6cd095">PF_BUS2_TO_BUS1</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00083">PowerElement.h:83</a></div></div>
+<div class="ttc" id="class_transformer_html_adf0b20286f3de359346b8877d65c1996"><div class="ttname"><a href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00327">Transformer.cpp:327</a></div></div>
+<div class="ttc" id="class_transformer_html_a39b58fcf230970601c5d77c088559731"><div class="ttname"><a href="class_transformer.html#a39b58fcf230970601c5d77c088559731">Transformer::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00190">Transformer.cpp:190</a></div></div>
+<div class="ttc" id="class_transformer_html_a327ff3cf9194c18049e4feac6761ebc0"><div class="ttname"><a href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0">Transformer::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00105">Transformer.cpp:105</a></div></div>
+<div class="ttc" id="class_transformer_html_a4f9137e6190fb630167f671a0da51ab6"><div class="ttname"><a href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00341">Transformer.cpp:341</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740aad1f68b93664b1917fafc7cf9b7537d3">PF_NONE</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00079">PowerElement.h:79</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html"><div class="ttname"><a href="class_open_g_l_colour.html">OpenGLColour</a></div><div class="ttdoc">Class to manage color of OpenGL. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00067">Element.h:67</a></div></div>
+<div class="ttc" id="class_transformer_html_a1e9e9ba48aa76bdd2ff2e973014ad422"><div class="ttname"><a href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422">Transformer::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00111">Transformer.cpp:111</a></div></div>
+<div class="ttc" id="class_transformer_html_aea52a4562ec5b4a79bf82b8ede32ecc6"><div class="ttname"><a href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00039">Transformer.cpp:39</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="class_transformer_html_a0395a11dc8173e511a0596ac96bf05e5"><div class="ttname"><a href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8cpp_source.html#l00266">Transformer.cpp:266</a></div></div>
+<div class="ttc" id="class_element_html_a536ad18a847dcc979c984b3cb287f238"><div class="ttname"><a href="class_element.html#a536ad18a847dcc979c984b3cb287f238">Element::GetPosition</a></div><div class="ttdeci">wxPoint2DDouble GetPosition() const</div><div class="ttdoc">Get the element position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00187">Element.h:187</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740ad4f3902fa2c8a1fbd48375c553d40523">PF_BUS1_TO_BUS2</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00082">PowerElement.h:82</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
+<div class="ttc" id="class_open_g_l_colour_html_a12119e58ae1bc7d6888224252695c066"><div class="ttname"><a href="class_open_g_l_colour.html#a12119e58ae1bc7d6888224252695c066">OpenGLColour::GetRGBA</a></div><div class="ttdeci">const GLdouble * GetRGBA() const</div><div class="ttdoc">Get colour in RGBA. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00101">Element.h:101</a></div></div>
+<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdoc">Abstract class for branch power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00031">Branch.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_transformer_8h.html b/docs/doxygen/html/_transformer_8h.html
new file mode 100644
index 0000000..5b3917e
--- /dev/null
+++ b/docs/doxygen/html/_transformer_8h.html
@@ -0,0 +1,136 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Transformer.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_transformer_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Transformer.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;<a class="el" href="_branch_8h_source.html">Branch.h</a>&quot;</code><br />
+</div>
+<p><a href="_transformer_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">struct &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_transformer_electrical_data.html">TransformerElectricalData</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transformer.html">Transformer</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Two-winding transformer power element. <a href="class_transformer.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:ace6b3807048fabdaa8bbf0c8f8860d06"><td class="memItemLeft" align="right" valign="top"><a id="ace6b3807048fabdaa8bbf0c8f8860d06"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>TransformerConnection</b> { <br />
+&#160;&#160;<b>GWYE_GWYE</b> = 0,
+<b>WYE_GWYE</b>,
+<b>GWYE_WYE</b>,
+<b>WYE_WYE</b>,
+<br />
+&#160;&#160;<b>DELTA_GWYE</b>,
+<b>DELTA_WYE</b>,
+<b>GWYE_DELTA</b>,
+<b>WYE_DELTA</b>,
+<br />
+&#160;&#160;<b>DELTA_DELTA</b>
+<br />
+ }</td></tr>
+<tr class="separator:ace6b3807048fabdaa8bbf0c8f8860d06"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transformer_8h.html">Transformer.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_transformer_8h.js b/docs/doxygen/html/_transformer_8h.js
new file mode 100644
index 0000000..0cb13fd
--- /dev/null
+++ b/docs/doxygen/html/_transformer_8h.js
@@ -0,0 +1,16 @@
+var _transformer_8h =
+[
+ [ "TransformerElectricalData", "struct_transformer_electrical_data.html", "struct_transformer_electrical_data" ],
+ [ "Transformer", "class_transformer.html", "class_transformer" ],
+ [ "TransformerConnection", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06", [
+ [ "GWYE_GWYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a4f417627b015a8fed7b3ebf0f8e0fdfe", null ],
+ [ "WYE_GWYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06afc14c39ecae15fd6b25da581ab530ed5", null ],
+ [ "GWYE_WYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06add500826fddc4ad0105a8d88bb8e8da7", null ],
+ [ "WYE_WYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06ac9f8b56645f38eb0620cb69a914f3095", null ],
+ [ "DELTA_GWYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a53db8ed07cc0e8c5b6cd377bf2a37e4f", null ],
+ [ "DELTA_WYE", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06acdee63c4174046055f9c960c38178741", null ],
+ [ "GWYE_DELTA", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a18d745d4045365a77ecf886610922218", null ],
+ [ "WYE_DELTA", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06ae69f44260b5da3ed29f47164d6b97de0", null ],
+ [ "DELTA_DELTA", "_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a5f05b987519c9c5bdc532be11940c61a", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_transformer_8h_source.html b/docs/doxygen/html/_transformer_8h_source.html
index f67c9bb..7a44441 100644
--- a/docs/doxygen/html/_transformer_8h_source.html
+++ b/docs/doxygen/html/_transformer_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,22 +88,23 @@ $(document).ready(function(){initNavTree('_transformer_8h_source.html','');});
<div class="title">Transformer.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TRANSFORMER_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TRANSFORMER_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;Branch.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer_form.html">TransformerForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="keyword">enum</span> TransformerConnection {</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; GWYE_GWYE = 0,</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; WYE_GWYE,</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; GWYE_WYE,</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; WYE_WYE,</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; DELTA_GWYE,</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; DELTA_WYE,</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; GWYE_DELTA,</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; WYE_DELTA,</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; DELTA_DELTA</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;};</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;</div><div class="line"><a name="l00020"></a><span class="lineno"><a class="line" href="struct_transformer_electrical_data.html"> 20</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> {</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordtype">double</span> primaryNominalVoltage = 138.0;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> primaryNominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordtype">double</span> secondaryNominalVoltage = 138.0;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> secondaryNominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordtype">int</span> baseVoltage = 0;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">double</span> resistance = 0.0;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordtype">double</span> indReactance = 1.0;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; TransformerConnection connection = GWYE_GWYE;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordtype">double</span> turnsRatio = 1.0;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordtype">double</span> phaseShift = 0.0;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordtype">bool</span> useTransformerPower = <span class="keyword">false</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; std::complex&lt;double&gt; current[2] = { std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0) };</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; std::complex&lt;double&gt; powerFlow[2] = { std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0) };</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> zeroIndReactance = 1.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <span class="keywordtype">double</span> primaryGrndResistance = 0.0;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> primaryGrndReactance = 0.0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordtype">double</span> secondaryGrndResistance = 0.0;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> secondaryGrndReactance = 0.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; std::complex&lt;double&gt; faultCurrent[2][3];</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;};</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"><a class="line" href="class_transformer.html"> 54</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a> : <span class="keyword">public</span> <a class="code" href="class_branch.html">Branch</a></div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;{</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>(wxString name);</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MoveNode(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateNode(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetNodeParent(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPowerFlowDirection(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricaData(<a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> m_electricalData;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;};</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160;<span class="preprocessor">#endif // TRANSFORMER_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00009">TransformerForm.h:9</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00061">PowerElement.h:61</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
-<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00007">Branch.h:7</a></div></div>
+<a href="_transformer_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TRANSFORMER_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TRANSFORMER_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_branch_8h.html">Branch.h</a>&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer_form.html">TransformerForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">enum</span> TransformerConnection {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; GWYE_GWYE = 0,</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; WYE_GWYE,</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; GWYE_WYE,</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; WYE_WYE,</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; DELTA_GWYE,</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; DELTA_WYE,</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; GWYE_DELTA,</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; WYE_DELTA,</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; DELTA_DELTA</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;};</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"><a class="line" href="struct_transformer_electrical_data.html"> 37</a></span>&#160;<span class="keyword">struct </span><a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="comment">// General</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; wxString name = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordtype">double</span> primaryNominalVoltage = 138.0;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> primaryNominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordtype">double</span> secondaryNominalVoltage = 138.0;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> secondaryNominalVoltageUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordtype">int</span> baseVoltage = 0;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; <span class="keywordtype">double</span> nominalPower = 100.0;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordtype">double</span> resistance = 0.0;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordtype">double</span> indReactance = 1.0;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; TransformerConnection connection = GWYE_GWYE;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordtype">double</span> turnsRatio = 1.0;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordtype">double</span> phaseShift = 0.0;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordtype">bool</span> useTransformerPower = <span class="keyword">false</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="comment">// Power flow (p.u.)</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; std::complex&lt;double&gt; current[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; std::complex&lt;double&gt; powerFlow[2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="comment">// Fault</span></div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordtype">double</span> zeroResistance = 0.0;</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; <span class="keywordtype">double</span> zeroIndReactance = 1.0;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; <span class="keywordtype">double</span> primaryGrndResistance = 0.0;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordtype">double</span> primaryGrndReactance = 0.0;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; <span class="keywordtype">double</span> secondaryGrndResistance = 0.0;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordtype">double</span> secondaryGrndReactance = 0.0;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// p.u. fault data</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; std::complex&lt;double&gt; faultCurrent[2][3];</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;};</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"><a class="line" href="class_transformer.html"> 78</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a> : <span class="keyword">public</span> <a class="code" href="class_branch.html">Branch</a></div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>(wxString name);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transformer.html">Transformer</a>();</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keyword">virtual</span> <a class="code" href="class_element.html">Element</a>* GetCopy();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> AddParent(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Contains(wxPoint2DDouble position) <span class="keyword">const</span>;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Draw(wxPoint2DDouble translation, <span class="keywordtype">double</span> scale) <span class="keyword">const</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> Intersects(wxRect2DDouble rect) <span class="keyword">const</span>;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Rotate(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> Move(wxPoint2DDouble position);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> MoveNode(<a class="code" href="class_element.html">Element</a>* parent, wxPoint2DDouble position);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> StartMove(wxPoint2DDouble position);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> GetContextMenu(wxMenu&amp; menu);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keyword">virtual</span> wxString GetTipText() <span class="keyword">const</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> RotateNode(<a class="code" href="class_element.html">Element</a>* parent, <span class="keywordtype">bool</span> clockwise);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> SetNodeParent(<a class="code" href="class_element.html">Element</a>* parent);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetPowerFlowDirection(<a class="code" href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a> pfDirection);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> ShowForm(wxWindow* parent, <a class="code" href="class_element.html">Element</a>* element);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> GetElectricalData()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_electricalData; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keyword">virtual</span> <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> GetPUElectricalData(<span class="keywordtype">double</span> systemBasePower);</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetElectricaData(<a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> electricalData) { m_electricalData = electricalData; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> SetNominalVoltage(std::vector&lt;double&gt; nominalVoltage, std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordtype">void</span> UpdatePowerFlowArrowsPosition();</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> m_electricalData;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;};</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160;<span class="preprocessor">#endif // TRANSFORMER_H</span></div><div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdoc">Form to edit the transformer power data. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00033">TransformerForm.h:33</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
+<div class="ttc" id="_branch_8h_html"><div class="ttname"><a href="_branch_8h.html">Branch.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a467d3005d31dde0ba0e52cf8e233e740"><div class="ttname"><a href="_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740">PowerFlowDirection</a></div><div class="ttdeci">PowerFlowDirection</div><div class="ttdoc">Direction of power flow arrows. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00078">PowerElement.h:78</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
+<div class="ttc" id="class_branch_html"><div class="ttname"><a href="class_branch.html">Branch</a></div><div class="ttdoc">Abstract class for branch power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_branch_8h_source.html#l00031">Branch.h:31</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Transformer.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transformer_8h.html">Transformer.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_transformer_form_8cpp_source.html b/docs/doxygen/html/_transformer_form_8cpp_source.html
index 196aa16..0ef5881 100644
--- a/docs/doxygen/html/_transformer_form_8cpp_source.html
+++ b/docs/doxygen/html/_transformer_form_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,18 +88,21 @@ $(document).ready(function(){initNavTree('_transformer_form_8cpp_source.html',''
<div class="title">TransformerForm.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;TransformerForm.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;SwitchingForm.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;</div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;TransformerForm::TransformerForm(wxWindow* parent, <a class="code" href="class_transformer.html">Transformer</a>* transformer) : <a class="code" href="class_transformer_form_base.html">TransformerFormBase</a>(parent)</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;{</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160; m_choiceResistance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160; m_choiceReactance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160; </div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160; <span class="comment">//Reset connections choice labels (to be translated)</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; m_choiceConnection-&gt;SetString(0, _(<span class="stringliteral">&quot;Grounded Wye - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; m_choiceConnection-&gt;SetString(1, _(<span class="stringliteral">&quot;Wye - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; m_choiceConnection-&gt;SetString(2, _(<span class="stringliteral">&quot;Grounded Wye - Wye&quot;</span>));</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; m_choiceConnection-&gt;SetString(3, _(<span class="stringliteral">&quot;Wye - Wye&quot;</span>));</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; m_choiceConnection-&gt;SetString(4, _(<span class="stringliteral">&quot;Delta - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; m_choiceConnection-&gt;SetString(5, _(<span class="stringliteral">&quot;Delta - Wye&quot;</span>));</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; m_choiceConnection-&gt;SetString(6, _(<span class="stringliteral">&quot;Grounded Wye - Delta&quot;</span>));</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; m_choiceConnection-&gt;SetString(7, _(<span class="stringliteral">&quot;Wye - Delta&quot;</span>));</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; m_choiceConnection-&gt;SetString(8, _(<span class="stringliteral">&quot;Delta - Delta&quot;</span>));</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; Layout();</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_parent = parent;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_transformer = transformer;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; wxString primVoltStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryNominalVoltage);</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">switch</span>(data.primaryNominalVoltageUnit) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; primVoltStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; primVoltStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; }</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; wxString secVoltStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryNominalVoltage);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">switch</span>(data.secondaryNominalVoltageUnit) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; secVoltStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; secVoltStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; m_staticTextNominalVoltageValue-&gt;SetLabel(wxString::Format(<span class="stringliteral">&quot;%s / %s&quot;</span>, primVoltStr, secVoltStr));</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_choiceBaseVoltage-&gt;SetString(0, primVoltStr);</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; m_choiceBaseVoltage-&gt;SetString(1, secVoltStr);</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; m_choiceBaseVoltage-&gt;SetSelection(data.baseVoltage);</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_textCtrlNominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; }</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_textCtrlResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.resistance));</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">switch</span>(data.resistanceUnit) {</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; m_choiceResistance-&gt;SetSelection(0);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; m_choiceResistance-&gt;SetSelection(1);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; m_textCtrlReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.indReactance));</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">switch</span>(data.indReactanceUnit) {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; m_choiceReactance-&gt;SetSelection(0);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; m_choiceReactance-&gt;SetSelection(1);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; m_choiceConnection-&gt;SetSelection(data.connection);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; m_textCtrlTurnRatio-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.turnsRatio));</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; m_textCtrlPhaseShift-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.phaseShift));</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; </div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_checkUseTransformerPower-&gt;SetValue(data.useTransformerPower);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.zeroIndReactance));</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; m_textCtrlPrimResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryGrndResistance));</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; m_textCtrlPrimReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryGrndReactance));</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_textCtrlSecResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryGrndResistance));</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; m_textCtrlSecReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryGrndReactance));</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;}</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160;TransformerForm::~TransformerForm() {}</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;{</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;}</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;{</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_transformer);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Transfomer: Switching&quot;</span>));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; }</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;}</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keywordtype">bool</span> TransformerForm::ValidateData()</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;{</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = m_transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; data.baseVoltage = m_choiceBaseVoltage-&gt;GetSelection();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlNominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; }</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlResistance-&gt;GetValue(), data.resistance,</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordflow">switch</span>(m_choiceResistance-&gt;GetSelection()) {</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlReactance-&gt;GetValue(), data.indReactance,</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactance-&gt;GetSelection()) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; }</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">switch</span>(m_choiceConnection-&gt;GetSelection()) {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; data.connection = GWYE_GWYE;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; data.connection = WYE_GWYE;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; data.connection = GWYE_WYE;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; data.connection = WYE_WYE;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; data.connection = DELTA_GWYE;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; data.connection = DELTA_WYE;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="keywordflow">case</span> 6: {</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; data.connection = GWYE_DELTA;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="keywordflow">case</span> 7: {</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; data.connection = WYE_DELTA;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="keywordflow">case</span> 8: {</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; data.connection = DELTA_DELTA;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlTurnRatio-&gt;GetValue(), data.turnsRatio,</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Turns ratio\&quot;.&quot;</span>)))</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160;</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPhaseShift-&gt;GetValue(), data.phaseShift,</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Phase shift\&quot;.&quot;</span>)))</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; data.useTransformerPower = m_checkUseTransformerPower-&gt;GetValue();</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero sequence resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroIndReactance,</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero sequence indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPrimResistance-&gt;GetValue(), data.primaryGrndResistance,</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Primary ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160;</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPrimReactance-&gt;GetValue(), data.primaryGrndReactance,</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Primary ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlSecResistance-&gt;GetValue(), data.secondaryGrndResistance,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Secondary ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlSecReactance-&gt;GetValue(), data.secondaryGrndReactance,</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Secondary ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; m_transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00026">PowerElement.h:26</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00013">PowerElement.h:13</a></div></div>
-<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00014">PowerElement.h:14</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00012">PowerElement.h:12</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00022">PowerElement.h:22</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_form_8h.html">TransformerForm.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_switching_form_8h.html">SwitchingForm.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;TransformerForm::TransformerForm(wxWindow* parent, <a class="code" href="class_transformer.html">Transformer</a>* transformer) : <a class="code" href="class_transformer_form_base.html">TransformerFormBase</a>(parent)</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;{</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; m_choiceResistance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; m_choiceReactance-&gt;SetString(1, L<span class="stringliteral">&#39;\u03A9&#39;</span>);</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="comment">// Reset connections choice labels (to be translated)</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; m_choiceConnection-&gt;SetString(0, _(<span class="stringliteral">&quot;Grounded Wye - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; m_choiceConnection-&gt;SetString(1, _(<span class="stringliteral">&quot;Wye - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_choiceConnection-&gt;SetString(2, _(<span class="stringliteral">&quot;Grounded Wye - Wye&quot;</span>));</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_choiceConnection-&gt;SetString(3, _(<span class="stringliteral">&quot;Wye - Wye&quot;</span>));</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_choiceConnection-&gt;SetString(4, _(<span class="stringliteral">&quot;Delta - Grounded Wye&quot;</span>));</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_choiceConnection-&gt;SetString(5, _(<span class="stringliteral">&quot;Delta - Wye&quot;</span>));</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_choiceConnection-&gt;SetString(6, _(<span class="stringliteral">&quot;Grounded Wye - Delta&quot;</span>));</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_choiceConnection-&gt;SetString(7, _(<span class="stringliteral">&quot;Wye - Delta&quot;</span>));</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; m_choiceConnection-&gt;SetString(8, _(<span class="stringliteral">&quot;Delta - Delta&quot;</span>));</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; SetSize(GetBestSize());</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; Layout();</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; m_parent = parent;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_transformer = transformer;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; m_textCtrlName-&gt;SetValue(data.name);</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; wxString primVoltStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryNominalVoltage);</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">switch</span>(data.primaryNominalVoltageUnit) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; primVoltStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; primVoltStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; }</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; wxString secVoltStr = <a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryNominalVoltage);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; <span class="keywordflow">switch</span>(data.secondaryNominalVoltageUnit) {</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a>: {</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; secVoltStr += <span class="stringliteral">&quot; V&quot;</span>;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a>: {</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; secVoltStr += <span class="stringliteral">&quot; kV&quot;</span>;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; m_staticTextNominalVoltageValue-&gt;SetLabel(wxString::Format(<span class="stringliteral">&quot;%s / %s&quot;</span>, primVoltStr, secVoltStr));</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; m_choiceBaseVoltage-&gt;SetString(0, primVoltStr);</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; m_choiceBaseVoltage-&gt;SetString(1, secVoltStr);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; m_choiceBaseVoltage-&gt;SetSelection(data.baseVoltage);</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; m_textCtrlNominalPower-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.nominalPower));</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordflow">switch</span>(data.nominalPowerUnit) {</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>: {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; m_choiceNominalPower-&gt;SetSelection(0);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>: {</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; m_choiceNominalPower-&gt;SetSelection(1);</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>: {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; m_choiceNominalPower-&gt;SetSelection(2);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; }</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160;</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; m_textCtrlResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.resistance));</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordflow">switch</span>(data.resistanceUnit) {</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; m_choiceResistance-&gt;SetSelection(0);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; m_choiceResistance-&gt;SetSelection(1);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; }</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_textCtrlReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.indReactance));</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">switch</span>(data.indReactanceUnit) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>: {</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; m_choiceReactance-&gt;SetSelection(0);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>: {</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; m_choiceReactance-&gt;SetSelection(1);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160;</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; m_choiceConnection-&gt;SetSelection(data.connection);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160;</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; m_textCtrlTurnRatio-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.turnsRatio));</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; m_textCtrlPhaseShift-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.phaseShift));</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_checkUseTransformerPower-&gt;SetValue(data.useTransformerPower);</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160;</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; m_textCtrlZeroResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.zeroResistance));</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; m_textCtrlZeroReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.zeroIndReactance));</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; m_textCtrlPrimResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryGrndResistance));</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; m_textCtrlPrimReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.primaryGrndReactance));</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; m_textCtrlSecResistance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryGrndResistance));</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; m_textCtrlSecReactance-&gt;SetValue(<a class="code" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Transformer::StringFromDouble</a>(data.secondaryGrndReactance));</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;}</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;TransformerForm::~TransformerForm() {}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnCancelButtonClick(wxCommandEvent&amp; event) { EndModal(wxID_CANCEL); }</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnOKButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keywordflow">if</span>(ValidateData()) EndModal(wxID_OK);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160;}</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160;<span class="keywordtype">void</span> TransformerForm::OnStabilityButtonClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;{</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordflow">if</span>(ValidateData()) {</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <a class="code" href="class_switching_form.html">SwitchingForm</a> swForm(m_parent, m_transformer);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; swForm.SetTitle(_(<span class="stringliteral">&quot;Transfomer: Switching&quot;</span>));</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; swForm.ShowModal();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; EndModal(wxID_OK);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; }</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;}</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;<span class="keywordtype">bool</span> TransformerForm::ValidateData()</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;{</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <a class="code" href="struct_transformer_electrical_data.html">TransformerElectricalData</a> data = m_transformer-&gt;GetElectricalData();</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; data.name = m_textCtrlName-&gt;GetValue();</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; data.baseVoltage = m_choiceBaseVoltage-&gt;GetSelection();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlNominalPower-&gt;GetValue(), data.nominalPower,</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Nominal power\&quot;.&quot;</span>)))</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">switch</span>(m_choiceNominalPower-&gt;GetSelection()) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a>;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; data.nominalPowerUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a>;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; }</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlResistance-&gt;GetValue(), data.resistance,</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordflow">switch</span>(m_choiceResistance-&gt;GetSelection()) {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; data.resistanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlReactance-&gt;GetValue(), data.indReactance,</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">switch</span>(m_choiceReactance-&gt;GetSelection()) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a>;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; data.indReactanceUnit = <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; }</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; <span class="keywordflow">switch</span>(m_choiceConnection-&gt;GetSelection()) {</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; <span class="keywordflow">case</span> 0: {</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; data.connection = GWYE_GWYE;</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">case</span> 1: {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; data.connection = WYE_GWYE;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; <span class="keywordflow">case</span> 2: {</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; data.connection = GWYE_WYE;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; <span class="keywordflow">case</span> 3: {</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; data.connection = WYE_WYE;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">case</span> 4: {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; data.connection = DELTA_GWYE;</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; <span class="keywordflow">case</span> 5: {</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; data.connection = DELTA_WYE;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; <span class="keywordflow">case</span> 6: {</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; data.connection = GWYE_DELTA;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">case</span> 7: {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; data.connection = WYE_DELTA;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="keywordflow">case</span> 8: {</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; data.connection = DELTA_DELTA;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160;</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlTurnRatio-&gt;GetValue(), data.turnsRatio,</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Turns ratio\&quot;.&quot;</span>)))</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160;</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPhaseShift-&gt;GetValue(), data.phaseShift,</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Phase shift\&quot;.&quot;</span>)))</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; data.useTransformerPower = m_checkUseTransformerPower-&gt;GetValue();</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160;</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlZeroResistance-&gt;GetValue(), data.zeroResistance,</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero sequence resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; m_parent, m_textCtrlZeroReactance-&gt;GetValue(), data.zeroIndReactance,</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Zero sequence indutive reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPrimResistance-&gt;GetValue(), data.primaryGrndResistance,</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Primary ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlPrimReactance-&gt;GetValue(), data.primaryGrndReactance,</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Primary ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlSecResistance-&gt;GetValue(), data.secondaryGrndResistance,</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Secondary ground resistance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160; <span class="keywordflow">if</span>(!m_transformer-&gt;DoubleFromString(m_parent, m_textCtrlSecReactance-&gt;GetValue(), data.secondaryGrndReactance,</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; _(<span class="stringliteral">&quot;Value entered incorrectly in the field \&quot;Secondary ground reactance\&quot;.&quot;</span>)))</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; m_transformer-&gt;SetElectricaData(data);</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160;}</div><div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaafdab9cc53a2b7b33ae61c568006d1cec">UNIT_OHM</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00043">PowerElement.h:43</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa8cac20ac9e816437ad8487400bb9f027">UNIT_V</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00030">PowerElement.h:30</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa29f80755e4c0ce17e1e4481182e548da">UNIT_kV</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00031">PowerElement.h:31</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaad22bbe1d526c8b9cac230fa6dca82b58">UNIT_PU</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00029">PowerElement.h:29</a></div></div>
+<div class="ttc" id="_transformer_form_8h_html"><div class="ttname"><a href="_transformer_form_8h.html">TransformerForm.h</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaa0120ee2353bba9baf0151108a299f6ae">UNIT_MVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00039">PowerElement.h:39</a></div></div>
<div class="ttc" id="class_transformer_form_base_html"><div class="ttname"><a href="class_transformer_form_base.html">TransformerFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00453">ElementForm.h:453</a></div></div>
-<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00300">Element.cpp:300</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00020">PowerElement.h:20</a></div></div>
-<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00020">Transformer.h:20</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00021">PowerElement.h:21</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="_switching_form_8h_html"><div class="ttname"><a href="_switching_form_8h.html">SwitchingForm.h</a></div></div>
+<div class="ttc" id="class_element_html_abb2e253ec1e86353cd7160209c96553c"><div class="ttname"><a href="class_element.html#abb2e253ec1e86353cd7160209c96553c">Element::StringFromDouble</a></div><div class="ttdeci">static wxString StringFromDouble(double value, int minDecimal=1)</div><div class="ttdoc">Convert a double value to string. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00320">Element.cpp:320</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaab199aa3533e82846acc8c78847d126c9">UNIT_VA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00037">PowerElement.h:37</a></div></div>
+<div class="ttc" id="struct_transformer_electrical_data_html"><div class="ttname"><a href="struct_transformer_electrical_data.html">TransformerElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00037">Transformer.h:37</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220ccaac27252874d11b1bc352981ad491802f5">UNIT_kVA</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00038">PowerElement.h:38</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_transformer_form_8h.html b/docs/doxygen/html/_transformer_form_8h.html
new file mode 100644
index 0000000..a6734d9
--- /dev/null
+++ b/docs/doxygen/html/_transformer_form_8h.html
@@ -0,0 +1,115 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/TransformerForm.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_transformer_form_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> </div>
+ <div class="headertitle">
+<div class="title">TransformerForm.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &quot;ElementForm.h&quot;</code><br />
+</div>
+<p><a href="_transformer_form_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transformer_form.html">TransformerForm</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">Form to edit the transformer power data. <a href="class_transformer_form.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transformer_form_8h.html">TransformerForm.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_transformer_form_8h_source.html b/docs/doxygen/html/_transformer_form_8h_source.html
index 6833e7d..081ffc9 100644
--- a/docs/doxygen/html/_transformer_form_8h_source.html
+++ b/docs/doxygen/html/_transformer_form_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,16 +88,16 @@ $(document).ready(function(){initNavTree('_transformer_form_8h_source.html','');
<div class="title">TransformerForm.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef TRANSFORMERFORM_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define TRANSFORMERFORM_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;</div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;</div><div class="line"><a name="l00009"></a><span class="lineno"><a class="line" href="class_transformer_form.html"> 9</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer_form.html">TransformerForm</a> : <span class="keyword">public</span> <a class="code" href="class_transformer_form_base.html">TransformerFormBase</a></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;{</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160; <a class="code" href="class_transformer_form.html">TransformerForm</a>(wxWindow* parent, <a class="code" href="class_transformer.html">Transformer</a>* transformer);</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transformer_form.html">TransformerForm</a>();</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* m_transformer = NULL;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;};</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#endif // TRANSFORMERFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00008">SwitchingForm.h:8</a></div></div>
-<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00009">TransformerForm.h:9</a></div></div>
+<a href="_transformer_form_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef TRANSFORMERFORM_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define TRANSFORMERFORM_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementForm.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_switching_form.html">SwitchingForm</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00033"></a><span class="lineno"><a class="line" href="class_transformer_form.html"> 33</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer_form.html">TransformerForm</a> : <span class="keyword">public</span> <a class="code" href="class_transformer_form_base.html">TransformerFormBase</a></div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;{</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; <a class="code" href="class_transformer_form.html">TransformerForm</a>(wxWindow* parent, <a class="code" href="class_transformer.html">Transformer</a>* transformer);</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_transformer_form.html">TransformerForm</a>();</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; <span class="keywordtype">bool</span> ValidateData();</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnCancelButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnOKButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnStabilityButtonClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; wxWindow* m_parent = NULL;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* m_transformer = NULL;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;};</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;<span class="preprocessor">#endif // TRANSFORMERFORM_H</span></div><div class="ttc" id="class_switching_form_html"><div class="ttname"><a href="class_switching_form.html">SwitchingForm</a></div><div class="ttdoc">Form to edit the switching data of power elements for electromechanical transient studies...</div><div class="ttdef"><b>Definition:</b> <a href="_switching_form_8h_source.html#l00032">SwitchingForm.h:32</a></div></div>
+<div class="ttc" id="class_transformer_form_html"><div class="ttname"><a href="class_transformer_form.html">TransformerForm</a></div><div class="ttdoc">Form to edit the transformer power data. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_form_8h_source.html#l00033">TransformerForm.h:33</a></div></div>
<div class="ttc" id="class_transformer_form_base_html"><div class="ttname"><a href="class_transformer_form_base.html">TransformerFormBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_form_8h_source.html#l00453">ElementForm.h:453</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>TransformerForm.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_transformer_form_8h.html">TransformerForm.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_workspace_8cpp_source.html b/docs/doxygen/html/_workspace_8cpp_source.html
index 42a543c..6740df2 100644
--- a/docs/doxygen/html/_workspace_8cpp_source.html
+++ b/docs/doxygen/html/_workspace_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,83 +88,100 @@ $(document).ready(function(){initNavTree('_workspace_8cpp_source.html','');});
<div class="title">Workspace.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &quot;Workspace.h&quot;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &quot;Camera.h&quot;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment">//#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &quot;Line.h&quot;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &quot;Transformer.h&quot;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;SyncGenerator.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;IndMotor.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;SyncMotor.h&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &quot;Load.h&quot;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="preprocessor">#include &quot;Inductor.h&quot;</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;Capacitor.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;ElementDataObject.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;Text.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="preprocessor">#include &quot;PowerFlow.h&quot;</span></div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fault_8h.html">Fault.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;Electromechanical.h&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &quot;ElementPlotData.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;ChartView.h&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="comment">// Workspace</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;Workspace::Workspace() : <a class="code" href="class_workspace_base.html">WorkspaceBase</a>(NULL) {}</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar) : <a class="code" href="class_workspace_base.html">WorkspaceBase</a>(parent)</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;{</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; m_name = name;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; m_statusBar = statusBar;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; m_glContext = <span class="keyword">new</span> wxGLContext(m_glCanvas);</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; m_camera = <span class="keyword">new</span> <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; NUM_ELEMENTS; ++i) {</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; m_elementNumber[i] = 1;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> widths[4] = {-3, -1, 100, 100};</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; m_statusBar-&gt;SetStatusWidths(4, widths);</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; m_properties = <span class="keyword">new</span> <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;}</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;Workspace::~Workspace()</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;{</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(*it) <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; }</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; <span class="keywordflow">if</span>(*it) <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; <span class="keywordflow">if</span>(m_camera) <span class="keyword">delete</span> m_camera;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; <span class="keywordflow">if</span>(m_glContext) <span class="keyword">delete</span> m_glContext;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(m_tipWindow) <span class="keyword">delete</span> m_tipWindow;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keywordflow">if</span>(m_properties) <span class="keyword">delete</span> m_properties;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160;}</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160;<span class="keywordtype">void</span> Workspace::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;{</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; wxPaintDC dc(m_glCanvas);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; m_glContext-&gt;SetCurrent(*m_glCanvas);</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; SetViewport();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="comment">// Set GLCanvas scale and translation.</span></div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; glScaled(m_camera-&gt;GetScale(), m_camera-&gt;GetScale(), 0.0); <span class="comment">// Scale</span></div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; glTranslated(m_camera-&gt;GetTranslation().m_x, m_camera-&gt;GetTranslation().m_y, 0.0); <span class="comment">// Translation</span></div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; <span class="comment">// Draw</span></div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="comment">// Elements</span></div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; element-&gt;<a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; }</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; <span class="comment">// Texts</span></div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; text-&gt;Draw(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="comment">// Selection rectangle</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; glColor4d(0.0, 0.5, 1.0, 1.0);</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; glBegin(GL_LINE_LOOP);</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; glEnd();</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.3);</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; glBegin(GL_QUADS);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; glEnd();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; glFlush(); <span class="comment">// Sends all pending information directly to the GPU.</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; m_glCanvas-&gt;SwapBuffers();</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;}</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160;<span class="keywordtype">void</span> Workspace::SetViewport()</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160;{</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; glClearColor(1.0, 1.0, 1.0, 1.0); <span class="comment">// White background.</span></div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; glDisable(GL_DEPTH_TEST);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; glEnable(GL_COLOR_MATERIAL);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; glEnable(GL_BLEND);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; glEnable(GL_LINE_SMOOTH);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">double</span> width = m_glCanvas-&gt;GetSize().x - 1;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">double</span> height = m_glCanvas-&gt;GetSize().y - 1;</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="comment">// Viewport fit the screen.</span></div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; glViewport(0, 0, width, height);</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; glMatrixMode(GL_PROJECTION);</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; gluOrtho2D(0.0, width, height, 0.0);</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160;</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; glMatrixMode(GL_MODELVIEW);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160;}</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160;{</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; wxPoint clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">bool</span> foundElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = NULL;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keywordtype">bool</span> showNewElementForm = <span class="keyword">false</span>;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keywordtype">bool</span> clickOnSwitch = <span class="keyword">false</span>;</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE || m_mode == MODE_DRAG_PASTE) {</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) {</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="comment">// Get the last element inserted on the list.</span></div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; newElement = *(m_elementList.end() - 1);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="comment">// Clicked in any element.</span></div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="comment">// Click at a bus.</span></div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="comment">// Select the bus.</span></div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; foundElement = <span class="keyword">true</span>; <span class="comment">// Element found.</span></div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="comment">// Add the new element&#39;s parent. If the element being inserted returns true, back to</span></div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="comment">// edit mode.</span></div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordflow">if</span>(newElement-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element, m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; showNewElementForm = <span class="keyword">true</span>;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; }</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; }</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; }</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; }</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="comment">// The line element can have an indefined number of points.</span></div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*newElement) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; newElement-&gt;<a class="code" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">AddPoint</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; }</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; }</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span> clickPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>(); <span class="comment">// Reset pickbox state.</span></div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; <span class="comment">// Set movement initial position (not necessarily will be moved).</span></div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; <span class="comment">// Click in selected element node.</span></div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">NodeContains</a>(m_camera-&gt;ScreenToWorld(clickPoint)) != 0 &amp;&amp; element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; m_mode = MODE_MOVE_NODE;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; m_disconnectedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="comment">// Select and show pickbox.</span></div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>();</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; }</div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; <span class="comment">// If pickbox contains the click, move the pickbox</span></div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; m_mode = MODE_MOVE_PICKBOX;</div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; clickPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; }</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; <span class="comment">// If didn&#39;t found a pickbox, move the element</span></div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; <span class="keywordflow">if</span>(!clickPickbox) {</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160; }</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; }</div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160;</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="comment">// Click in a switch.</span></div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">SwitchesContains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; element-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(element-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() ? false : <span class="keyword">true</span>);</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; clickOnSwitch = <span class="keyword">true</span>;</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; }</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160;</div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160;</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; text-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160;</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; }</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; }</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; }</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160;</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; m_mode = MODE_SELECTION_RECT;</div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; m_startSelRect = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; }</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; Redraw();</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160;</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(showNewElementForm) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; <span class="keywordflow">if</span>(newElement) {</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; newElement-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, newElement);</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; <span class="keywordflow">if</span>(clickOnSwitch &amp;&amp; m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160;</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160;}</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160;{</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160; <span class="keywordtype">bool</span> elementEdited = <span class="keyword">false</span>;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; <span class="keywordtype">bool</span> clickOnSwitch = <span class="keyword">false</span>;</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160;</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; <span class="keywordtype">bool</span> elementIsBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <a class="code" href="class_bus.html">Bus</a> oldBus;</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160; <a class="code" href="class_bus.html">Bus</a>* currentBus = NULL;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keywordflow">if</span>((currentBus = dynamic_cast&lt;Bus*&gt;(element))) {</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160; elementIsBus = <span class="keyword">true</span>;</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160; oldBus = *currentBus;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160; }</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element);</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; elementEdited = <span class="keyword">true</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="comment">// If the edited element is a bus and was changed the rated voltage, this voltage must be</span></div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <span class="comment">// propagated through the lines</span></div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160; <span class="keywordflow">if</span>(elementIsBus) {</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// The voltage was changed</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(oldBus.GetElectricalData().nominalVoltage != currentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; oldBus.GetElectricalData().nominalVoltageUnit !=</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; currentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <span class="comment">// Check if the bus has line as child.</span></div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itcEnd = childList.end(); itc != itcEnd; ++itc) {</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*child) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Do you want to change the rated voltage of the path?&quot;</span>),</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; _(<span class="stringliteral">&quot;Warning&quot;</span>), wxYES_NO | wxCENTRE | wxICON_WARNING);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; <span class="keywordflow">if</span>(msgDialog.ShowModal() == wxID_YES)</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; ValidateBusesVoltages(element);</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="keyword">auto</span> data = currentBus-&gt;GetElectricalData();</div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; data.nominalVoltage = oldBus.GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; data.nominalVoltageUnit = oldBus.GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; currentBus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; }</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; }</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; }</div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; }</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; }</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; }</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160;</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; <span class="comment">// Click in a switch.</span></div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">SwitchesContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; element-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(element-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() ? false : <span class="keyword">true</span>);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; clickOnSwitch = <span class="keyword">true</span>;</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; }</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; }</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; text-&gt;ShowForm(<span class="keyword">this</span>, GetElementList());</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; }</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; <span class="keywordflow">if</span>(elementEdited) {</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160; UpdateTextElements();</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; }</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; <span class="keywordflow">if</span>(clickOnSwitch &amp;&amp; m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;}</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160;</div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160;<span class="keywordtype">void</span> Workspace::OnRightClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160;{</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="comment">// Show context menu.</span></div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; wxMenu menu;</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">GetContextMenu</a>(menu)) {</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; menu.SetClientData(element);</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; menu.Bind(wxEVT_COMMAND_MENU_SELECTED, &amp;Workspace::OnPopupClick, <span class="keyword">this</span>);</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160; PopupMenu(&amp;menu);</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160; <span class="keywordflow">if</span>(!menu.GetClientData()) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; }</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; }</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; }</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; }</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; }</div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160;}</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160;</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160;{</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; <span class="comment">// This event (under certain conditions) deselects the elements and back to edit mode or select the elements using</span></div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; <span class="comment">// the selection rectangle.</span></div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; <span class="keywordtype">bool</span> foundPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160; <span class="keywordtype">bool</span> findNewParent = <span class="keyword">false</span>;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordtype">bool</span> updateVoltages = <span class="keyword">false</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; <span class="keyword">auto</span> itnp = m_elementList.begin();</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160;</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160;</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; <span class="comment">// The user was moving a pickbox.</span></div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_MOVE_PICKBOX) {</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; <span class="comment">// Catch only the element that have the pickbox shown.</span></div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()) {</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160; <span class="comment">// If the element is a bus, check if a node is outside.</span></div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160; <span class="comment">// Get all the bus children.</span></div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <a class="code" href="class_element.html">Element</a>* child = m_elementList[i];</div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j];</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="comment">// The child have a parent that is the element.</span></div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160; child-&gt;<a class="code" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>();</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; m_disconnectedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; }</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160; }</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; }</div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; }</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; }</div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; }</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160;</div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; }</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_MOVE_NODE) {</div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = m_elementList[i];</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*parent) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">SetNodeParent</a>(parent)) {</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(element);</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; findNewParent = <span class="keyword">true</span>;</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; itnp = it;</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; element-&gt;<a class="code" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">ResetNodes</a>();</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; }</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; }</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; }</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; <span class="comment">// element-&gt;ResetNodes();</span></div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; }</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; <span class="comment">// Deselect</span></div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">if</span>(!element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; }</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; }</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160;</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; foundPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; }</div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160;</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); it++) {</div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; }</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; <span class="keywordflow">if</span>(!text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; }</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160;</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160; <span class="keywordflow">if</span>(findNewParent) {</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; std::rotate(itnp, itnp + 1, m_elementList.end());</div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; updateVoltages = <span class="keyword">true</span>;</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; }</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; }</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160;</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; <span class="keywordflow">if</span>(m_mode != MODE_INSERT) {</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; }</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160;</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; <span class="keywordflow">if</span>(updateVoltages) {</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160;</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc &amp;&amp; m_disconnectedElement) {</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; m_disconnectedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; RunStaticStudies();</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; }</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160;</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; Redraw();</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;}</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160;</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160;<span class="keywordtype">void</span> Workspace::OnMouseMotion(wxMouseEvent&amp; event)</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160;{</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = *(m_elementList.end() - 1); <span class="comment">// Get the last element in the list.</span></div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160; newElement-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160;</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT: {</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160; <a class="code" href="class_text.html">Text</a>* newText = *(m_textList.end() - 1);</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; newText-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160; <span class="keywordflow">case</span> MODE_DRAG:</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT:</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; m_camera-&gt;SetTranslation(event.GetPosition());</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160;</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; <span class="keywordflow">case</span> MODE_EDIT: {</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; <span class="keywordtype">bool</span> foundPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; <span class="comment">// Show element pickbox (when it has) if the mouse is over the selected object.</span></div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>();</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160;</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="comment">// If the mouse is over a pickbox set correct mouse cursor.</span></div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; foundPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; SetCursor(element-&gt;<a class="code" href="class_element.html#a245924c5be948397b101787dbea565ea">GetBestPickboxCursor</a>());</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; }</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()) redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; }</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; }</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160; }</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160;</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_NODE: {</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; element-&gt;<a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(NULL, m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; }</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; }</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160;</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_PICKBOX: {</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; element-&gt;<a class="code" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">MovePickbox</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160; }</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; }</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT:</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160; <span class="comment">// Move child nodes</span></div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; (*it)-&gt;MoveNode(element, m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; }</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; }</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; <span class="comment">// Text element motion</span></div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; text-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; }</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; }</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160;</div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT: {</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; wxPoint2DDouble currentPos = m_camera-&gt;ScreenToWorld(event.GetPosition());</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; <span class="keywordtype">double</span> x, y, w, h;</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; <span class="keywordflow">if</span>(currentPos.m_x &lt; m_startSelRect.m_x) {</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; x = currentPos.m_x;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; w = m_startSelRect.m_x - currentPos.m_x;</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; x = m_startSelRect.m_x;</div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; w = currentPos.m_x - m_startSelRect.m_x;</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; }</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">if</span>(currentPos.m_y &lt; m_startSelRect.m_y) {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; y = currentPos.m_y;</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; h = m_startSelRect.m_y - currentPos.m_y;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; y = m_startSelRect.m_y;</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; h = currentPos.m_y - m_startSelRect.m_y;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160; }</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160;</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; m_selectionRect = wxRect2DDouble(x, y, w, h);</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; }</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; m_camera-&gt;UpdateMousePosition(event.GetPosition());</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; m_timer-&gt;Start(); <span class="comment">// Restart the timer.</span></div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160;}</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160;{</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; <span class="comment">// Set to drag mode.</span></div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; m_mode = MODE_DRAG_INSERT;</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT: {</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; m_mode = MODE_DRAG_INSERT_TEXT;</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; m_mode = MODE_DRAG_PASTE;</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; m_mode = MODE_DRAG;</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160; }</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160; m_camera-&gt;StartTranslation(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160;}</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160;</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160;{</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT: {</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT: {</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; m_mode = MODE_INSERT_TEXT;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT:</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160; <span class="comment">// Does nothing.</span></div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; }</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160;}</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160;<span class="keywordtype">void</span> Workspace::OnScroll(wxMouseEvent&amp; event)</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160;{</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; <span class="keywordflow">if</span>(event.GetWheelRotation() &gt; 0)</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), +0.05);</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), -0.05);</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160;</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; Redraw();</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160;}</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160;<span class="keywordtype">void</span> Workspace::OnKeyDown(wxKeyEvent&amp; event)</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160;{</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; <span class="keywordtype">bool</span> insertingElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT || m_mode == MODE_INSERT_TEXT) insertingElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160; <span class="keywordtype">char</span> key = <span class="keyword">event</span>.GetUnicodeKey();</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160; <span class="keywordflow">if</span>(key != WXK_NONE) {</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160; <span class="keywordflow">switch</span>(key) {</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">case</span> WXK_ESCAPE: <span class="comment">// Cancel operations.</span></div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; {</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT) {</div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; m_elementList.pop_back(); <span class="comment">// Removes the last element being inserted.</span></div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; Redraw();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_INSERT_TEXT) {</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160; m_textList.pop_back();</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160; Redraw();</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160; }</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">case</span> WXK_DELETE: <span class="comment">// Delete selected elements</span></div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160; {</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; DeleteSelectedElements();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;A&#39;</span>: {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; <a class="code" href="class_text.html">Text</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; m_textList.push_back(newBus);</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; m_mode = MODE_INSERT_TEXT;</div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Text: Click to insert, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Redraw();</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; }</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;F&#39;</span>: {</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) {</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; Fit();</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; }</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;R&#39;</span>: <span class="comment">// Rotate the selected elements.</span></div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; {</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;B&#39;</span>: <span class="comment">// Insert a bus.</span></div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; {</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()),</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Bus %d&quot;</span>), GetElementNumber(ID_BUS)));</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; IncrementElementNumber(ID_BUS);</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; m_elementList.push_back(newBus);</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Bus: Click to insert, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; Redraw();</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; }</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;L&#39;</span>: {</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; <span class="keywordflow">if</span>(!event.ControlDown() &amp;&amp; <span class="keyword">event</span>.ShiftDown()) { <span class="comment">// Insert a load.</span></div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; <a class="code" href="class_load.html">Load</a>* newLoad = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>(wxString::Format(_(<span class="stringliteral">&quot;Load %d&quot;</span>), GetElementNumber(ID_LOAD)));</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; IncrementElementNumber(ID_LOAD);</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; m_elementList.push_back(newLoad);</div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Load: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown() &amp;&amp; !<span class="keyword">event</span>.ShiftDown()) { <span class="comment">// Insert a power line.</span></div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; <a class="code" href="class_line.html">Line</a>* newLine = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>(wxString::Format(_(<span class="stringliteral">&quot;Line %d&quot;</span>), GetElementNumber(ID_LINE)));</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; IncrementElementNumber(ID_LINE);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; m_elementList.push_back(newLine);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Line: Click on two buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; }</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; Redraw();</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; }</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="comment">// Tests - Ctrl + Shift + L</span></div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(event.ControlDown() &amp;&amp; <span class="keyword">event</span>.ShiftDown()) {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; UpdateTextElements();</div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; }</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;T&#39;</span>: <span class="comment">// Insert a transformer.</span></div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; {</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* newTransformer =</div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>(wxString::Format(_(<span class="stringliteral">&quot;Transformer %d&quot;</span>), GetElementNumber(ID_TRANSFORMER)));</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; IncrementElementNumber(ID_TRANSFORMER);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; m_elementList.push_back(newTransformer);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Transformer: Click on two buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; Redraw();</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; }</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;G&#39;</span>: <span class="comment">// Insert a generator.</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* newGenerator =</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>(wxString::Format(_(<span class="stringliteral">&quot;Generator %d&quot;</span>), GetElementNumber(ID_SYNCGENERATOR)));</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; IncrementElementNumber(ID_SYNCGENERATOR);</div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; m_elementList.push_back(newGenerator);</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Generator: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; Redraw();</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; }</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;I&#39;</span>: {</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) { <span class="comment">// Insert an inductor.</span></div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* newInductor =</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>(wxString::Format(_(<span class="stringliteral">&quot;Inductor %d&quot;</span>), GetElementNumber(ID_INDUCTOR)));</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; IncrementElementNumber(ID_INDUCTOR);</div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; m_elementList.push_back(newInductor);</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Inductor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; } <span class="keywordflow">else</span> <span class="comment">// Insert an induction motor.</span></div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; {</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* newIndMotor =</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>(wxString::Format(_(<span class="stringliteral">&quot;Induction motor %d&quot;</span>), GetElementNumber(ID_INDMOTOR)));</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; IncrementElementNumber(ID_INDMOTOR);</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; m_elementList.push_back(newIndMotor);</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Induction Motor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; }</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; Redraw();</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; }</div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;K&#39;</span>: <span class="comment">// Insert a synchronous condenser.</span></div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; {</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* newSyncCondenser =</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>(wxString::Format(_(<span class="stringliteral">&quot;Synchronous condenser %d&quot;</span>), GetElementNumber(ID_SYNCMOTOR)));</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; IncrementElementNumber(ID_SYNCMOTOR);</div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; m_elementList.push_back(newSyncCondenser);</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Synchronous Condenser: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; Redraw();</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; }</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;C&#39;</span>: {</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) { <span class="comment">// Insert a capacitor.</span></div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* newCapacitor =</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>(wxString::Format(_(<span class="stringliteral">&quot;Capacitor %d&quot;</span>), GetElementNumber(ID_CAPACITOR)));</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; IncrementElementNumber(ID_CAPACITOR);</div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; m_elementList.push_back(newCapacitor);</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Capacitor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; Redraw();</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_CONTROL) { <span class="comment">// Copy.</span></div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; CopySelection();</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; }</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; }</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;V&#39;</span>: {</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_CONTROL) {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; Paste();</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; }</div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; }</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; }</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; }</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160;</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160;}</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160;</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateStatusBar()</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160;{</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">case</span> MODE_DRAG: {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: DRAG&quot;</span>), 1);</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160;</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; <span class="keywordflow">case</span> MODE_PASTE:</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: PASTE&quot;</span>), 1);</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160;</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT:</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT: {</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: INSERT&quot;</span>), 1);</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT:</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_PICKBOX:</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_NODE:</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT:</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160; <span class="keywordflow">case</span> MODE_EDIT: {</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; m_statusBar-&gt;SetStatusText(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: EDIT&quot;</span>), 1);</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; m_statusBar-&gt;SetStatusText(wxString::Format(_(<span class="stringliteral">&quot;ZOOM: %d%%&quot;</span>), (<span class="keywordtype">int</span>)(m_camera-&gt;GetScale() * 100.0)), 2);</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; m_statusBar-&gt;SetStatusText(</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; wxString::Format(wxT(<span class="stringliteral">&quot;X: %.1f Y: %.1f&quot;</span>), m_camera-&gt;GetMousePosition().m_x, m_camera-&gt;GetMousePosition().m_y),</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; 3);</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160;}</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;<span class="keywordtype">void</span> Workspace::OnPopupClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160;{</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; wxMenu* menu = <span class="keyword">static_cast&lt;</span>wxMenu*<span class="keyword">&gt;</span>(<span class="keyword">event</span>.GetEventObject());</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <a class="code" href="class_element.html">Element</a>* element = <span class="keyword">static_cast&lt;</span><a class="code" href="class_element.html">Element</a>*<span class="keyword">&gt;</span>(menu-&gt;GetClientData());</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">switch</span>(event.GetId()) {</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>: {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element)) UpdateTextElements();</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>: {</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160; line-&gt;AddNode(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; Redraw();</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>: {</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160; line-&gt;RemoveNode(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160; Redraw();</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>: {</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>();</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; iElement-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; }</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; }</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; }</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; Redraw();</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>: {</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; iElement-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent, <span class="keyword">false</span>);</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; }</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; }</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; }</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; Redraw();</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>: {</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160;</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; <span class="keywordflow">if</span>(element == iElement) {</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itEnd = childList.end(); itc != itEnd; ++itc) {</div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <span class="keywordflow">if</span>(child) {</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(element);</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(child);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; std::vector&lt;Element*&gt; parentList = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itp = parentList.begin(), itEnd = parentList.end(); itp != itEnd; ++itp) {</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itp;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(element);</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; }</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160; }</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160;</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itt = m_textList.begin(); itt != m_textList.end(); ++itt) {</div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *itt;</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == element) {</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; m_textList.erase(itt--);</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; }</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; }</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160;</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; m_elementList.erase(it);</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; menu-&gt;SetClientData(NULL);</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; }</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; }</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;}</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160;</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160;<span class="keywordtype">void</span> Workspace::RotateSelectedElements(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160;{</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; <span class="keywordflow">if</span>(parent) { <span class="comment">// Check if parent is not null</span></div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; element-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent, clockwise);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="comment">// Update the positions used on motion action, the element will not be necessarily</span></div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; <span class="comment">// moved.</span></div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; }</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160; }</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(clockwise);</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; }</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; }</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160;</div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="comment">// Rotate text element</span></div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); it++) {</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; text-&gt;<a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(clockwise);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; text-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; }</div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; }</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; Redraw();</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160;}</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160;</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160;<span class="keywordtype">void</span> Workspace::DeleteSelectedElements()</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160;{</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; <span class="comment">// Don&#39;t set the end of the list at the loop&#39;s begin.</span></div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itEnd = childList.end(); itc != itEnd; ++itc) {</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; <span class="keywordflow">if</span>(child) {</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(element);</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(child);</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; }</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160; }</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160; std::vector&lt;Element*&gt; parentList = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itp = parentList.begin(), itEnd = parentList.end(); itp != itEnd; ++itp) {</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itp;</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(element);</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; }</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160; }</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160;</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itt = m_textList.begin(); itt != m_textList.end(); ++itt) {</div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *itt;</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == element) {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; m_textList.erase(itt--);</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; }</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; }</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160;</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; m_elementList.erase(it--);</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; }</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; }</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160;</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160; m_textList.erase(it--);</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; }</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; }</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160;</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; Redraw();</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160;}</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160;</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;<span class="keywordtype">bool</span> Workspace::GetElementsCorners(wxPoint2DDouble&amp; leftUpCorner,</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; wxPoint2DDouble&amp; rightDownCorner,</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160;{</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; <span class="keywordflow">if</span>(elementList.size() == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; elementList[0]-&gt;CalculateBoundaries(leftUpCorner, rightDownCorner);</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin() + 1, itEnd = elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; wxPoint2DDouble leftUp;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; wxPoint2DDouble rightDown;</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; element-&gt;<a class="code" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">CalculateBoundaries</a>(leftUp, rightDown);</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160; <span class="keywordflow">if</span>(leftUp.m_x &lt; leftUpCorner.m_x) leftUpCorner.m_x = leftUp.m_x;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; <span class="keywordflow">if</span>(leftUp.m_y &lt; leftUpCorner.m_y) leftUpCorner.m_y = leftUp.m_y;</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160; <span class="keywordflow">if</span>(rightDown.m_x &gt; rightDownCorner.m_x) rightDownCorner.m_x = rightDown.m_x;</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160; <span class="keywordflow">if</span>(rightDown.m_y &gt; rightDownCorner.m_y) rightDownCorner.m_y = rightDown.m_y;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160; }</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160;}</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160;<span class="keywordtype">void</span> Workspace::Fit()</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;{</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; wxPoint2DDouble leftUpCorner(0, 0);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160; wxPoint2DDouble rightDownCorner(0, 0);</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; std::vector&lt;Element*&gt; elementList = GetElementList();</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; elementList.push_back(*it);</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; }</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160;</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">if</span>(!GetElementsCorners(leftUpCorner, rightDownCorner, elementList)) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; wxPoint2DDouble middleCoords = (leftUpCorner + rightDownCorner) / 2.0;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordtype">int</span> width = 0.0;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; <span class="keywordtype">int</span> height = 0.0;</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; GetSize(&amp;width, &amp;height);</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160; <span class="keywordtype">double</span> scaleX = double(width) / (rightDownCorner.m_x - leftUpCorner.m_x);</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160; <span class="keywordtype">double</span> scaleY = double(height) / (rightDownCorner.m_y - leftUpCorner.m_y);</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; <span class="keywordtype">double</span> scale = scaleX &lt; scaleY ? scaleX : scaleY;</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; <span class="keywordflow">if</span>(scale &gt; m_camera-&gt;GetZoomMax()) scale = m_camera-&gt;GetZoomMax();</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; <span class="keywordflow">if</span>(scale &lt; m_camera-&gt;GetZoomMin()) scale = m_camera-&gt;GetZoomMin();</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160;</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; m_camera-&gt;SetScale(scale);</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160;</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160; m_camera-&gt;StartTranslation(middleCoords);</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; m_camera-&gt;SetTranslation(wxPoint2DDouble(width / 2, height / 2));</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; Redraw();</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;}</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160;<span class="keywordtype">void</span> Workspace::ValidateBusesVoltages(<a class="code" href="class_element.html">Element</a>* initialBus)</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160;{</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160; <span class="keywordtype">double</span> nominalVoltage = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(initialBus)-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(initialBus)-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160;</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); it++) {</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *it;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160;</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*child) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160; <span class="keywordflow">if</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1]) {</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData();</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData();</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160;</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; <span class="keywordflow">if</span>(data1.nominalVoltage != data2.nominalVoltage ||</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; data1.nominalVoltageUnit != data2.nominalVoltageUnit) {</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160; data1.nominalVoltage = nominalVoltage;</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160; data2.nominalVoltage = nominalVoltage;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160; data1.nominalVoltageUnit = nominalVoltageUnit;</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160; data2.nominalVoltageUnit = nominalVoltageUnit;</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;SetElectricalData(data1);</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;SetElectricalData(data2);</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160;</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; it = m_elementList.begin(); <span class="comment">// Restart search.</span></div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160; }</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; }</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; }</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; }</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160;</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160; <span class="comment">// ValidateElementsVoltages();</span></div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160;}</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160;</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160;<span class="keywordtype">void</span> Workspace::ValidateElementsVoltages()</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160;{</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); it++) {</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* child = *it;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; std::vector&lt;double&gt; nominalVoltage;</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit;</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i]);</div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; nominalVoltage.push_back(parent-&gt;GetElectricalData().nominalVoltage);</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; nominalVoltageUnit.push_back(parent-&gt;GetElectricalData().nominalVoltageUnit);</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160; }</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; child-&gt;<a class="code" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">SetNominalVoltage</a>(nominalVoltage, nominalVoltageUnit);</div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160; }</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;}</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;<span class="keywordtype">bool</span> Workspace::RunPowerFlow()</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160;{</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a> pf(GetElementList());</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160; <span class="keywordtype">bool</span> result = pf.RunGaussSeidel();</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, pf.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; }</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160;</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; Redraw();</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160;</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160;}</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160;</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateTextElements()</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;{</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; text-&gt;UpdateText(m_properties-&gt;GetSimulationPropertiesData().basePower);</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; }</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160;}</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160;</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160;<span class="keywordtype">void</span> Workspace::CopySelection()</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160;{</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160; UpdateElementsID();</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; std::vector&lt;Element*&gt; selectedElements;</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; <span class="comment">// The buses need to be numerated to associate the child&#39;s parents to the copies.</span></div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; data.number = busNumber;</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; busNumber++;</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; }</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160; selectedElements.push_back(element);</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160; }</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160; }</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; selectedElements.push_back(text);</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; }</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; }</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>* dataObject = <span class="keyword">new</span> <a class="code" href="class_element_data_object.html">ElementDataObject</a>(selectedElements);</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; wxTheClipboard-&gt;SetData(dataObject);</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160;}</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160;</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160;<span class="keywordtype">bool</span> Workspace::Paste()</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160;{</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;Open()) {</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a> dataObject;</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160;</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;IsSupported(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))) {</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordflow">if</span>(!wxTheClipboard-&gt;GetData(dataObject)) {</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; wxMessageDialog dialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to paste from clipboard.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; dialog.ShowModal();</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; }</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160; }</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; UnselectAll();</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160; std::vector&lt;Element*&gt; pastedElements;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* elementsLists = dataObject.GetElementsLists();</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160;</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; <span class="comment">// Paste buses (parents).</span></div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; <span class="keyword">auto</span> parentList = elementsLists-&gt;parentList;</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; std::vector&lt;Bus*&gt; pastedBusList; <span class="comment">// To set new parents;</span></div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; pastedBusList.push_back(static_cast&lt;Bus*&gt;(copy));</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(copy));</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; }</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; <span class="comment">// Paste other elements.</span></div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160; <span class="keyword">auto</span> elementLists = elementsLists-&gt;elementList;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementLists.begin(), itEnd = elementLists.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// Check if is text element</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_text.html">Text</a>* text = dynamic_cast&lt;Text*&gt;(copy)) {</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; <span class="comment">// Check if element associated with the text exists.</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordtype">bool</span> elementExist = <span class="keyword">false</span>;</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == m_elementList[i]) {</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; elementExist = <span class="keyword">true</span>;</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; }</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; }</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; <span class="keywordflow">if</span>(elementExist) {</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; m_textList.push_back(text);</div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; }</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <span class="comment">// Change the parent if copied, otherwise remove it.</span></div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)copy-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <a class="code" href="class_bus.html">Bus</a>* currentParent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(copy-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordflow">if</span>(currentParent) {</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="keywordtype">int</span> parentID = currentParent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>();</div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keywordtype">bool</span> parentCopied = <span class="keyword">false</span>;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; (int)pastedBusList.size(); k++) {</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newParent = pastedBusList[k];</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; <span class="keywordflow">if</span>(parentID == newParent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; parentCopied = <span class="keyword">true</span>;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; copy-&gt;<a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">ReplaceParent</a>(currentParent, newParent);</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; }</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; }</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; <span class="keywordflow">if</span>(!parentCopied) copy-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(currentParent);</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; }</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160;</div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(copy));</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; }</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; }</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; }</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160;</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <span class="comment">// Update buses childs</span></div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = pastedBusList.begin(), itEnd = pastedBusList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; std::vector&lt;Element*&gt; childList = bus-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; <a class="code" href="class_element.html">Element</a>* currentChild = *it;</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; <span class="keywordtype">int</span> childID = currentChild-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>();</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordtype">bool</span> childCopied = <span class="keyword">false</span>;</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)pastedElements.size(); i++) {</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; <a class="code" href="class_element.html">Element</a>* newChild = pastedElements[i];</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160; <span class="keywordflow">if</span>(childID == newChild-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; childCopied = <span class="keyword">true</span>;</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; bus-&gt;<a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">ReplaceChild</a>(currentChild, newChild);</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; }</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; }</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160; <span class="keywordflow">if</span>(!childCopied) bus-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(currentChild);</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; }</div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; }</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160;</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; <span class="comment">// Move elements (and nodes) to the mouse position.</span></div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="comment">// The start position it&#39;s the center of the pasted objects.</span></div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; wxPoint2DDouble leftUpCorner, rightDownCorner;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; GetElementsCorners(leftUpCorner, rightDownCorner, pastedElements);</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; wxPoint2DDouble startPosition = (leftUpCorner + rightDownCorner) / 2.0;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = pastedElements.begin(), itEnd = pastedElements.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(startPosition);</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; element-&gt;<a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(parent, m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; }</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; }</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; wxMessageDialog dialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to paste from clipboard.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160; wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; dialog.ShowModal();</div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; }</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160;</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; UpdateElementsID();</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Click to paste.&quot;</span>));</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; Redraw();</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160;}</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160;</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160;<span class="keywordtype">void</span> Workspace::UnselectAll()</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160;{</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; }</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; }</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160;}</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160;</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateElementsID()</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160;{</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160; element-&gt;<a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; }</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; text-&gt;<a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; }</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160;}</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160;<span class="keywordtype">void</span> Workspace::OnTimer(wxTimerEvent&amp; event)</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;{</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160; <span class="keywordflow">if</span>(m_tipWindow) {</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160; m_tipWindow-&gt;Close();</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160; m_tipWindow = NULL;</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; }</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;GetMousePosition())) {</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; wxString tipText = element-&gt;<a class="code" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">GetTipText</a>();</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keywordflow">if</span>(!tipText.IsEmpty()) {</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; m_tipWindow = <span class="keyword">new</span> wxTipWindow(<span class="keyword">this</span>, tipText, 10000, &amp;m_tipWindow);</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; <span class="comment">// Creates a very tiny bounding rect to remove the tip on any mouse movement.</span></div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; m_tipWindow-&gt;SetBoundingRect(wxRect(wxGetMousePosition(), wxSize(1, 1)));</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160; }</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160; }</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160; }</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; }</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160;</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160;}</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160;</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160;<span class="keywordtype">void</span> Workspace::SetTextList(std::vector&lt;Text*&gt; textList)</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160;{</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; m_textList.clear();</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = textList.begin(), itEnd = textList.end(); it != itEnd; ++it) m_textList.push_back(*it);</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160;</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160;}</div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160;</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160;<span class="keywordtype">void</span> Workspace::SetElementList(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160;{</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; m_elementList.clear();</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it)</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(*it));</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;}</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160;</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;<span class="keywordtype">void</span> Workspace::OnIdle(wxIdleEvent&amp; event)</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;{</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160; <span class="comment">// TODO: Find other solution to text displayed wrong on opened file.</span></div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160; <span class="keywordflow">if</span>(m_justOpened) {</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; m_justOpened = <span class="keyword">false</span>;</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160; Redraw();</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; }</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;}</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;std::vector&lt;Element*&gt; Workspace::GetAllElements()<span class="keyword"> const</span></div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; std::vector&lt;Element*&gt; allElements;</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160;</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) allElements.push_back(*it);</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) allElements.push_back(*it);</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160; <span class="keywordflow">return</span> allElements;</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;}</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160;</div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160;<span class="keywordtype">bool</span> Workspace::RunFault()</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160;{</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; <a class="code" href="class_fault.html">Fault</a> fault(GetElementList());</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; <span class="keywordtype">bool</span> result = fault.RunFaultCalculation(100e6);</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, fault.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160; }</div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160; Redraw();</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160;</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;}</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160;</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;std::vector&lt;Element*&gt; Workspace::GetElementList()<span class="keyword"> const</span></div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) elementList.push_back(*it);</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <span class="keywordflow">return</span> elementList;</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160;}</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160;</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160;<span class="keywordtype">bool</span> Workspace::RunSCPower()</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160;{</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; <a class="code" href="class_fault.html">Fault</a> fault(GetElementList());</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160; <span class="keywordtype">bool</span> result = fault.RunSCPowerCalcutation(100e6);</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, fault.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; }</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160; Redraw();</div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160;}</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;<span class="keywordtype">bool</span> Workspace::RunStability()</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;{</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160; <span class="comment">// Run power flow before stability.</span></div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160; RunPowerFlow();</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160;</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <a class="code" href="class_electromechanical.html">Electromechanical</a> stability(<span class="keyword">this</span>, GetElementList(), m_properties-&gt;GetSimulationPropertiesData());</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordtype">bool</span> result = stability.RunStabilityCalculation();</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, stability.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160; }</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; m_stabilityTimeVector.clear();</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; m_stabilityTimeVector = stability.GetTimeVector();</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="comment">// Run power flow after stability.</span></div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160; RunPowerFlow();</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Do you wish to open the stability graphics?&quot;</span>), _(<span class="stringliteral">&quot;Question&quot;</span>),</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160; wxYES_NO | wxCENTRE | wxICON_QUESTION);</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="keywordflow">if</span>(msgDialog.ShowModal() == wxID_YES) {</div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; std::vector&lt;ElementPlotData&gt; plotDataList;</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> plotData;</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">GetPlotData</a>(plotData)) plotDataList.push_back(plotData);</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; }</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> tests(_(<span class="stringliteral">&quot;Error&quot;</span>), ElementPlotData::CT_TEST);</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; tests.AddData(stability.m_wErrorVector, _(<span class="stringliteral">&quot;Speed error&quot;</span>));</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; tests.AddData(stability.m_numItVector, _(<span class="stringliteral">&quot;Number iterations&quot;</span>));</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; plotDataList.push_back(tests);</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(<span class="keyword">this</span>, plotDataList, m_stabilityTimeVector);</div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160; }</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160;</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160;}</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160;{</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; Fit();</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160;}</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160;</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160;<span class="keywordtype">bool</span> Workspace::RunStaticStudies()</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160;{</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; <span class="keywordtype">bool</span> pfStatus, faultStatus, scStatus;</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; pfStatus = faultStatus = scStatus = <span class="keyword">false</span>;</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160;</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; pfStatus = RunPowerFlow();</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <span class="keywordflow">if</span>(m_properties-&gt;GetSimulationPropertiesData().faultAfterPowerFlow) {</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; <span class="keywordflow">if</span>(pfStatus) faultStatus = RunFault();</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160; faultStatus = <span class="keyword">true</span>;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; }</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160; <span class="keywordflow">if</span>(m_properties-&gt;GetSimulationPropertiesData().scPowerAfterPowerFlow) {</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160; <span class="keywordflow">if</span>(pfStatus) scStatus = RunSCPower();</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; scStatus = <span class="keyword">true</span>;</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160; }</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160; <span class="keywordflow">if</span>(pfStatus &amp;&amp; faultStatus &amp;&amp; scStatus) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160;}</div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00030">Text.cpp:30</a></div></div>
-<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="class_element_html_ab8bf35b4a205fa58772402cea7fad89c"><div class="ttname"><a href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element::ShowPickbox</a></div><div class="ttdeci">void ShowPickbox(bool showPickbox=true)</div><div class="ttdoc">Set if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00141">Element.h:141</a></div></div>
-<div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00107">Element.cpp:107</a></div></div>
-<div class="ttc" id="class_element_html_aa40c60c03d6a76639d8c6f6bab86720e"><div class="ttname"><a href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">Element::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00321">Element.h:321</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00123">Element.h:123</a></div></div>
-<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00145">Text.cpp:145</a></div></div>
-<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00517">Element.h:517</a></div></div>
-<div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00009">PowerFlow.h:9</a></div></div>
-<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00523">Element.h:523</a></div></div>
-<div class="ttc" id="class_element_html_a3be3ed2876d3bb547c43caab95353f33"><div class="ttname"><a href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">Element::ResetPickboxes</a></div><div class="ttdeci">virtual void ResetPickboxes()</div><div class="ttdoc">Remove the pickboxes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00406">Element.h:406</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00033">Element.h:33</a></div></div>
-<div class="ttc" id="class_element_html_a95b4f7e9341883ec39d0201148afffb4"><div class="ttname"><a href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00348">Element.h:348</a></div></div>
-<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00218">Element.cpp:218</a></div></div>
-<div class="ttc" id="class_element_html_af4815de7e7698ea116e8e2af51414050"><div class="ttname"><a href="class_element.html#af4815de7e7698ea116e8e2af51414050">Element::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00389">Element.h:389</a></div></div>
-<div class="ttc" id="class_element_html_a499c3b52be27d2bf436a13b6f5353b9c"><div class="ttname"><a href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">Element::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00353">Element.h:353</a></div></div>
-<div class="ttc" id="class_power_element_html_a0730506d0417089d69f7ce64b05daed4"><div class="ttname"><a href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00018">PowerElement.cpp:18</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00037">Element.h:37</a></div></div>
-<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00335">Element.cpp:335</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00075">Text.cpp:75</a></div></div>
-<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00007">Bus.h:7</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_workspace_8h.html">Workspace.h</a>&quot;</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_camera_8h.html">Camera.h</a>&quot;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_8h.html">Element.h</a>&quot;</span></div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="comment">//#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_line_8h.html">Line.h</a>&quot;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_transformer_8h.html">Transformer.h</a>&quot;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_generator_8h.html">SyncGenerator.h</a>&quot;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_ind_motor_8h.html">IndMotor.h</a>&quot;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_sync_motor_8h.html">SyncMotor.h</a>&quot;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_load_8h.html">Load.h</a>&quot;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_inductor_8h.html">Inductor.h</a>&quot;</span></div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_capacitor_8h.html">Capacitor.h</a>&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_data_object_8h.html">ElementDataObject.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_text_8h.html">Text.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_power_flow_8h.html">PowerFlow.h</a>&quot;</span></div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_fault_8h.html">Fault.h</a>&quot;</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_electromechanical_8h.html">Electromechanical.h</a>&quot;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_element_plot_data_8h.html">ElementPlotData.h</a>&quot;</span></div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_chart_view_8h.html">ChartView.h</a>&quot;</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="comment">// Workspace</span></div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;Workspace::Workspace() : <a class="code" href="class_workspace_base.html">WorkspaceBase</a>(NULL) {}</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;Workspace::Workspace(wxWindow* parent, wxString name, wxStatusBar* statusBar) : <a class="code" href="class_workspace_base.html">WorkspaceBase</a>(parent)</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;{</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; m_name = name;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; m_statusBar = statusBar;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; m_glContext = <span class="keyword">new</span> wxGLContext(m_glCanvas);</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; m_camera = <span class="keyword">new</span> <a class="code" href="class_camera.html">Camera</a>();</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; NUM_ELEMENTS; ++i) {</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; m_elementNumber[i] = 1;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; <span class="keyword">const</span> <span class="keywordtype">int</span> widths[4] = {-3, -1, 100, 100};</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; m_statusBar-&gt;SetStatusWidths(4, widths);</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; m_properties = <span class="keyword">new</span> <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;}</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160;</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;Workspace::~Workspace()</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;{</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; <span class="keywordflow">if</span>(*it) <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; }</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; <span class="keywordflow">if</span>(*it) <span class="keyword">delete</span> *it;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">if</span>(m_camera) <span class="keyword">delete</span> m_camera;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; <span class="keywordflow">if</span>(m_glContext) <span class="keyword">delete</span> m_glContext;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">if</span>(m_tipWindow) <span class="keyword">delete</span> m_tipWindow;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordflow">if</span>(m_properties) <span class="keyword">delete</span> m_properties;</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;}</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;<span class="keywordtype">void</span> Workspace::OnPaint(wxPaintEvent&amp; event)</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160;{</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxPaintDC dc(m_glCanvas);</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; m_glContext-&gt;SetCurrent(*m_glCanvas);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; SetViewport();</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160;</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Set GLCanvas scale and translation.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; glScaled(m_camera-&gt;GetScale(), m_camera-&gt;GetScale(), 0.0); <span class="comment">// Scale</span></div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; glTranslated(m_camera-&gt;GetTranslation().m_x, m_camera-&gt;GetTranslation().m_y, 0.0); <span class="comment">// Translation</span></div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Draw</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Elements</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; element-&gt;<a class="code" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Draw</a>(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160;</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="comment">// Texts</span></div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; text-&gt;Draw(m_camera-&gt;GetTranslation(), m_camera-&gt;GetScale());</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; }</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; <span class="comment">// Selection rectangle</span></div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; glLineWidth(1.0);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; glColor4d(0.0, 0.5, 1.0, 1.0);</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; glBegin(GL_LINE_LOOP);</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; glEnd();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; glColor4d(0.0, 0.5, 1.0, 0.3);</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; glBegin(GL_QUADS);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y);</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; glVertex2d(m_selectionRect.m_x, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y + m_selectionRect.m_height);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; glVertex2d(m_selectionRect.m_x + m_selectionRect.m_width, m_selectionRect.m_y);</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; glEnd();</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; glFlush(); <span class="comment">// Sends all pending information directly to the GPU.</span></div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; m_glCanvas-&gt;SwapBuffers();</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;}</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160;</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160;<span class="keywordtype">void</span> Workspace::SetViewport()</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160;{</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; glClearColor(1.0, 1.0, 1.0, 1.0); <span class="comment">// White background.</span></div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; glClear(GL_COLOR_BUFFER_BIT);</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160; glDisable(GL_DEPTH_TEST);</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; glDisable(GL_TEXTURE_2D);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; glEnable(GL_COLOR_MATERIAL);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; glEnable(GL_BLEND);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; glBlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; glEnable(GL_LINE_SMOOTH);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">double</span> width = m_glCanvas-&gt;GetSize().x - 1;</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">double</span> height = m_glCanvas-&gt;GetSize().y - 1;</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160;</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="comment">// Viewport fit the screen.</span></div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; glViewport(0, 0, width, height);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160;</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; glMatrixMode(GL_PROJECTION);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; gluOrtho2D(0.0, width, height, 0.0);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; glMatrixMode(GL_MODELVIEW);</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; glLoadIdentity();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;}</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160;{</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; wxPoint clickPoint = <span class="keyword">event</span>.GetPosition();</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keywordtype">bool</span> foundElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = NULL;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keywordtype">bool</span> showNewElementForm = <span class="keyword">false</span>;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keywordtype">bool</span> clickOnSwitch = <span class="keyword">false</span>;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT_TEXT || m_mode == MODE_PASTE || m_mode == MODE_DRAG_PASTE) {</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_INSERT || m_mode == MODE_DRAG_INSERT || m_mode == MODE_DRAG_INSERT_TEXT) {</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="comment">// Get the last element inserted on the list.</span></div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; newElement = *(m_elementList.end() - 1);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="comment">// Clicked in any element.</span></div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; <span class="comment">// Click at a bus.</span></div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; <span class="comment">// Select the bus.</span></div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; foundElement = <span class="keyword">true</span>; <span class="comment">// Element found.</span></div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="comment">// Add the new element&#39;s parent. If the element being inserted returns true, back to</span></div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="comment">// edit mode.</span></div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordflow">if</span>(newElement-&gt;<a class="code" href="class_element.html#a569178e9138490a981511a644536c0f9">AddParent</a>(element, m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; showNewElementForm = <span class="keyword">true</span>;</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; }</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160; }</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; }</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160; }</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; <span class="comment">// The line element can have an indefined number of points.</span></div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*newElement) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; newElement-&gt;<a class="code" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">AddPoint</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160; }</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; }</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">bool</span> clickPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>(); <span class="comment">// Reset pickbox state.</span></div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;</div><div class="line"><a name="l00194"></a><span class="lineno"> 194</span>&#160; <span class="comment">// Set movement initial position (not necessarily will be moved).</span></div><div class="line"><a name="l00195"></a><span class="lineno"> 195</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00196"></a><span class="lineno"> 196</span>&#160;</div><div class="line"><a name="l00197"></a><span class="lineno"> 197</span>&#160; <span class="comment">// Click in selected element node.</span></div><div class="line"><a name="l00198"></a><span class="lineno"> 198</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">NodeContains</a>(m_camera-&gt;ScreenToWorld(clickPoint)) != 0 &amp;&amp; element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00199"></a><span class="lineno"> 199</span>&#160; m_mode = MODE_MOVE_NODE;</div><div class="line"><a name="l00200"></a><span class="lineno"> 200</span>&#160; m_disconnectedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00201"></a><span class="lineno"> 201</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00202"></a><span class="lineno"> 202</span>&#160; }</div><div class="line"><a name="l00203"></a><span class="lineno"> 203</span>&#160;</div><div class="line"><a name="l00204"></a><span class="lineno"> 204</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00205"></a><span class="lineno"> 205</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00206"></a><span class="lineno"> 206</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00207"></a><span class="lineno"> 207</span>&#160; <span class="comment">// Select and show pickbox.</span></div><div class="line"><a name="l00208"></a><span class="lineno"> 208</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00209"></a><span class="lineno"> 209</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>();</div><div class="line"><a name="l00210"></a><span class="lineno"> 210</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00211"></a><span class="lineno"> 211</span>&#160; }</div><div class="line"><a name="l00212"></a><span class="lineno"> 212</span>&#160; <span class="comment">// If pickbox contains the click, move the pickbox</span></div><div class="line"><a name="l00213"></a><span class="lineno"> 213</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00214"></a><span class="lineno"> 214</span>&#160; m_mode = MODE_MOVE_PICKBOX;</div><div class="line"><a name="l00215"></a><span class="lineno"> 215</span>&#160; clickPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00216"></a><span class="lineno"> 216</span>&#160; }</div><div class="line"><a name="l00217"></a><span class="lineno"> 217</span>&#160; <span class="comment">// If didn&#39;t found a pickbox, move the element</span></div><div class="line"><a name="l00218"></a><span class="lineno"> 218</span>&#160; <span class="keywordflow">if</span>(!clickPickbox) {</div><div class="line"><a name="l00219"></a><span class="lineno"> 219</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00220"></a><span class="lineno"> 220</span>&#160; }</div><div class="line"><a name="l00221"></a><span class="lineno"> 221</span>&#160; }</div><div class="line"><a name="l00222"></a><span class="lineno"> 222</span>&#160;</div><div class="line"><a name="l00223"></a><span class="lineno"> 223</span>&#160; <span class="comment">// Click in a switch.</span></div><div class="line"><a name="l00224"></a><span class="lineno"> 224</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">SwitchesContains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00225"></a><span class="lineno"> 225</span>&#160; element-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(element-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() ? false : <span class="keyword">true</span>);</div><div class="line"><a name="l00226"></a><span class="lineno"> 226</span>&#160; clickOnSwitch = <span class="keyword">true</span>;</div><div class="line"><a name="l00227"></a><span class="lineno"> 227</span>&#160; }</div><div class="line"><a name="l00228"></a><span class="lineno"> 228</span>&#160; }</div><div class="line"><a name="l00229"></a><span class="lineno"> 229</span>&#160;</div><div class="line"><a name="l00230"></a><span class="lineno"> 230</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00231"></a><span class="lineno"> 231</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00232"></a><span class="lineno"> 232</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00233"></a><span class="lineno"> 233</span>&#160;</div><div class="line"><a name="l00234"></a><span class="lineno"> 234</span>&#160; text-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;ScreenToWorld(clickPoint));</div><div class="line"><a name="l00235"></a><span class="lineno"> 235</span>&#160;</div><div class="line"><a name="l00236"></a><span class="lineno"> 236</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(clickPoint))) {</div><div class="line"><a name="l00237"></a><span class="lineno"> 237</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00238"></a><span class="lineno"> 238</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00239"></a><span class="lineno"> 239</span>&#160; m_mode = MODE_MOVE_ELEMENT;</div><div class="line"><a name="l00240"></a><span class="lineno"> 240</span>&#160; foundElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00241"></a><span class="lineno"> 241</span>&#160; }</div><div class="line"><a name="l00242"></a><span class="lineno"> 242</span>&#160; }</div><div class="line"><a name="l00243"></a><span class="lineno"> 243</span>&#160; }</div><div class="line"><a name="l00244"></a><span class="lineno"> 244</span>&#160; }</div><div class="line"><a name="l00245"></a><span class="lineno"> 245</span>&#160;</div><div class="line"><a name="l00246"></a><span class="lineno"> 246</span>&#160; <span class="keywordflow">if</span>(!foundElement) {</div><div class="line"><a name="l00247"></a><span class="lineno"> 247</span>&#160; m_mode = MODE_SELECTION_RECT;</div><div class="line"><a name="l00248"></a><span class="lineno"> 248</span>&#160; m_startSelRect = m_camera-&gt;ScreenToWorld(clickPoint);</div><div class="line"><a name="l00249"></a><span class="lineno"> 249</span>&#160; }</div><div class="line"><a name="l00250"></a><span class="lineno"> 250</span>&#160;</div><div class="line"><a name="l00251"></a><span class="lineno"> 251</span>&#160; Redraw();</div><div class="line"><a name="l00252"></a><span class="lineno"> 252</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00253"></a><span class="lineno"> 253</span>&#160;</div><div class="line"><a name="l00254"></a><span class="lineno"> 254</span>&#160; <span class="keywordflow">if</span>(showNewElementForm) {</div><div class="line"><a name="l00255"></a><span class="lineno"> 255</span>&#160; <span class="keywordflow">if</span>(newElement) {</div><div class="line"><a name="l00256"></a><span class="lineno"> 256</span>&#160; newElement-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, newElement);</div><div class="line"><a name="l00257"></a><span class="lineno"> 257</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00258"></a><span class="lineno"> 258</span>&#160; }</div><div class="line"><a name="l00259"></a><span class="lineno"> 259</span>&#160; }</div><div class="line"><a name="l00260"></a><span class="lineno"> 260</span>&#160; <span class="keywordflow">if</span>(clickOnSwitch &amp;&amp; m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00261"></a><span class="lineno"> 261</span>&#160;</div><div class="line"><a name="l00262"></a><span class="lineno"> 262</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00263"></a><span class="lineno"> 263</span>&#160;}</div><div class="line"><a name="l00264"></a><span class="lineno"> 264</span>&#160;</div><div class="line"><a name="l00265"></a><span class="lineno"> 265</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l00266"></a><span class="lineno"> 266</span>&#160;{</div><div class="line"><a name="l00267"></a><span class="lineno"> 267</span>&#160; <span class="keywordtype">bool</span> elementEdited = <span class="keyword">false</span>;</div><div class="line"><a name="l00268"></a><span class="lineno"> 268</span>&#160; <span class="keywordtype">bool</span> clickOnSwitch = <span class="keyword">false</span>;</div><div class="line"><a name="l00269"></a><span class="lineno"> 269</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00270"></a><span class="lineno"> 270</span>&#160;</div><div class="line"><a name="l00271"></a><span class="lineno"> 271</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00272"></a><span class="lineno"> 272</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l00273"></a><span class="lineno"> 273</span>&#160;</div><div class="line"><a name="l00274"></a><span class="lineno"> 274</span>&#160; <span class="comment">// Click in an element.</span></div><div class="line"><a name="l00275"></a><span class="lineno"> 275</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00276"></a><span class="lineno"> 276</span>&#160; <span class="keywordtype">bool</span> elementIsBus = <span class="keyword">false</span>;</div><div class="line"><a name="l00277"></a><span class="lineno"> 277</span>&#160; <a class="code" href="class_bus.html">Bus</a> oldBus;</div><div class="line"><a name="l00278"></a><span class="lineno"> 278</span>&#160; <a class="code" href="class_bus.html">Bus</a>* currentBus = NULL;</div><div class="line"><a name="l00279"></a><span class="lineno"> 279</span>&#160; <span class="keywordflow">if</span>((currentBus = dynamic_cast&lt;Bus*&gt;(element))) {</div><div class="line"><a name="l00280"></a><span class="lineno"> 280</span>&#160; elementIsBus = <span class="keyword">true</span>;</div><div class="line"><a name="l00281"></a><span class="lineno"> 281</span>&#160; oldBus = *currentBus;</div><div class="line"><a name="l00282"></a><span class="lineno"> 282</span>&#160; }</div><div class="line"><a name="l00283"></a><span class="lineno"> 283</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00284"></a><span class="lineno"> 284</span>&#160; element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element);</div><div class="line"><a name="l00285"></a><span class="lineno"> 285</span>&#160; elementEdited = <span class="keyword">true</span>;</div><div class="line"><a name="l00286"></a><span class="lineno"> 286</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00287"></a><span class="lineno"> 287</span>&#160;</div><div class="line"><a name="l00288"></a><span class="lineno"> 288</span>&#160; <span class="comment">// If the edited element is a bus and was changed the rated voltage, this voltage must be</span></div><div class="line"><a name="l00289"></a><span class="lineno"> 289</span>&#160; <span class="comment">// propagated through the lines</span></div><div class="line"><a name="l00290"></a><span class="lineno"> 290</span>&#160; <span class="keywordflow">if</span>(elementIsBus) {</div><div class="line"><a name="l00291"></a><span class="lineno"> 291</span>&#160; <span class="comment">// The voltage was changed</span></div><div class="line"><a name="l00292"></a><span class="lineno"> 292</span>&#160; <span class="keywordflow">if</span>(oldBus.GetElectricalData().nominalVoltage != currentBus-&gt;GetElectricalData().nominalVoltage ||</div><div class="line"><a name="l00293"></a><span class="lineno"> 293</span>&#160; oldBus.GetElectricalData().nominalVoltageUnit !=</div><div class="line"><a name="l00294"></a><span class="lineno"> 294</span>&#160; currentBus-&gt;GetElectricalData().nominalVoltageUnit) {</div><div class="line"><a name="l00295"></a><span class="lineno"> 295</span>&#160; <span class="comment">// Check if the bus has line as child.</span></div><div class="line"><a name="l00296"></a><span class="lineno"> 296</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00297"></a><span class="lineno"> 297</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itcEnd = childList.end(); itc != itcEnd; ++itc) {</div><div class="line"><a name="l00298"></a><span class="lineno"> 298</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l00299"></a><span class="lineno"> 299</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*child) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l00300"></a><span class="lineno"> 300</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Do you want to change the rated voltage of the path?&quot;</span>),</div><div class="line"><a name="l00301"></a><span class="lineno"> 301</span>&#160; _(<span class="stringliteral">&quot;Warning&quot;</span>), wxYES_NO | wxCENTRE | wxICON_WARNING);</div><div class="line"><a name="l00302"></a><span class="lineno"> 302</span>&#160; <span class="keywordflow">if</span>(msgDialog.ShowModal() == wxID_YES)</div><div class="line"><a name="l00303"></a><span class="lineno"> 303</span>&#160; ValidateBusesVoltages(element);</div><div class="line"><a name="l00304"></a><span class="lineno"> 304</span>&#160; <span class="keywordflow">else</span> {</div><div class="line"><a name="l00305"></a><span class="lineno"> 305</span>&#160; <span class="keyword">auto</span> data = currentBus-&gt;GetElectricalData();</div><div class="line"><a name="l00306"></a><span class="lineno"> 306</span>&#160; data.nominalVoltage = oldBus.GetElectricalData().nominalVoltage;</div><div class="line"><a name="l00307"></a><span class="lineno"> 307</span>&#160; data.nominalVoltageUnit = oldBus.GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l00308"></a><span class="lineno"> 308</span>&#160; currentBus-&gt;SetElectricalData(data);</div><div class="line"><a name="l00309"></a><span class="lineno"> 309</span>&#160; }</div><div class="line"><a name="l00310"></a><span class="lineno"> 310</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00311"></a><span class="lineno"> 311</span>&#160; }</div><div class="line"><a name="l00312"></a><span class="lineno"> 312</span>&#160; }</div><div class="line"><a name="l00313"></a><span class="lineno"> 313</span>&#160; }</div><div class="line"><a name="l00314"></a><span class="lineno"> 314</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00315"></a><span class="lineno"> 315</span>&#160; }</div><div class="line"><a name="l00316"></a><span class="lineno"> 316</span>&#160; }</div><div class="line"><a name="l00317"></a><span class="lineno"> 317</span>&#160;</div><div class="line"><a name="l00318"></a><span class="lineno"> 318</span>&#160; <span class="comment">// Click in a switch.</span></div><div class="line"><a name="l00319"></a><span class="lineno"> 319</span>&#160; <span class="keywordflow">else</span> <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">SwitchesContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00320"></a><span class="lineno"> 320</span>&#160; element-&gt;<a class="code" href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">SetOnline</a>(element-&gt;<a class="code" href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">IsOnline</a>() ? false : <span class="keyword">true</span>);</div><div class="line"><a name="l00321"></a><span class="lineno"> 321</span>&#160; clickOnSwitch = <span class="keyword">true</span>;</div><div class="line"><a name="l00322"></a><span class="lineno"> 322</span>&#160; }</div><div class="line"><a name="l00323"></a><span class="lineno"> 323</span>&#160; }</div><div class="line"><a name="l00324"></a><span class="lineno"> 324</span>&#160;</div><div class="line"><a name="l00325"></a><span class="lineno"> 325</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00326"></a><span class="lineno"> 326</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l00327"></a><span class="lineno"> 327</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00328"></a><span class="lineno"> 328</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00329"></a><span class="lineno"> 329</span>&#160; text-&gt;ShowForm(<span class="keyword">this</span>, GetElementList());</div><div class="line"><a name="l00330"></a><span class="lineno"> 330</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00331"></a><span class="lineno"> 331</span>&#160; }</div><div class="line"><a name="l00332"></a><span class="lineno"> 332</span>&#160; }</div><div class="line"><a name="l00333"></a><span class="lineno"> 333</span>&#160; <span class="keywordflow">if</span>(elementEdited) {</div><div class="line"><a name="l00334"></a><span class="lineno"> 334</span>&#160; UpdateTextElements();</div><div class="line"><a name="l00335"></a><span class="lineno"> 335</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00336"></a><span class="lineno"> 336</span>&#160; }</div><div class="line"><a name="l00337"></a><span class="lineno"> 337</span>&#160; <span class="keywordflow">if</span>(clickOnSwitch &amp;&amp; m_continuousCalc) RunStaticStudies();</div><div class="line"><a name="l00338"></a><span class="lineno"> 338</span>&#160;</div><div class="line"><a name="l00339"></a><span class="lineno"> 339</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00340"></a><span class="lineno"> 340</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00341"></a><span class="lineno"> 341</span>&#160;}</div><div class="line"><a name="l00342"></a><span class="lineno"> 342</span>&#160;</div><div class="line"><a name="l00343"></a><span class="lineno"> 343</span>&#160;<span class="keywordtype">void</span> Workspace::OnRightClickDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00344"></a><span class="lineno"> 344</span>&#160;{</div><div class="line"><a name="l00345"></a><span class="lineno"> 345</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00346"></a><span class="lineno"> 346</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l00347"></a><span class="lineno"> 347</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00348"></a><span class="lineno"> 348</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00349"></a><span class="lineno"> 349</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00350"></a><span class="lineno"> 350</span>&#160; <span class="comment">// Show context menu.</span></div><div class="line"><a name="l00351"></a><span class="lineno"> 351</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00352"></a><span class="lineno"> 352</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00353"></a><span class="lineno"> 353</span>&#160; wxMenu menu;</div><div class="line"><a name="l00354"></a><span class="lineno"> 354</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">GetContextMenu</a>(menu)) {</div><div class="line"><a name="l00355"></a><span class="lineno"> 355</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l00356"></a><span class="lineno"> 356</span>&#160; menu.SetClientData(element);</div><div class="line"><a name="l00357"></a><span class="lineno"> 357</span>&#160; menu.Bind(wxEVT_COMMAND_MENU_SELECTED, &amp;Workspace::OnPopupClick, <span class="keyword">this</span>);</div><div class="line"><a name="l00358"></a><span class="lineno"> 358</span>&#160; PopupMenu(&amp;menu);</div><div class="line"><a name="l00359"></a><span class="lineno"> 359</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00360"></a><span class="lineno"> 360</span>&#160;</div><div class="line"><a name="l00361"></a><span class="lineno"> 361</span>&#160; <span class="keywordflow">if</span>(!menu.GetClientData()) <span class="keywordflow">break</span>;</div><div class="line"><a name="l00362"></a><span class="lineno"> 362</span>&#160; }</div><div class="line"><a name="l00363"></a><span class="lineno"> 363</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00364"></a><span class="lineno"> 364</span>&#160; }</div><div class="line"><a name="l00365"></a><span class="lineno"> 365</span>&#160; }</div><div class="line"><a name="l00366"></a><span class="lineno"> 366</span>&#160; }</div><div class="line"><a name="l00367"></a><span class="lineno"> 367</span>&#160; }</div><div class="line"><a name="l00368"></a><span class="lineno"> 368</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00369"></a><span class="lineno"> 369</span>&#160; m_timer-&gt;Start();</div><div class="line"><a name="l00370"></a><span class="lineno"> 370</span>&#160;}</div><div class="line"><a name="l00371"></a><span class="lineno"> 371</span>&#160;</div><div class="line"><a name="l00372"></a><span class="lineno"> 372</span>&#160;<span class="keywordtype">void</span> Workspace::OnLeftClickUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00373"></a><span class="lineno"> 373</span>&#160;{</div><div class="line"><a name="l00374"></a><span class="lineno"> 374</span>&#160; <span class="comment">// This event (under certain conditions) deselects the elements and back to edit mode or select the elements using</span></div><div class="line"><a name="l00375"></a><span class="lineno"> 375</span>&#160; <span class="comment">// the selection rectangle.</span></div><div class="line"><a name="l00376"></a><span class="lineno"> 376</span>&#160; <span class="keywordtype">bool</span> foundPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00377"></a><span class="lineno"> 377</span>&#160; <span class="keywordtype">bool</span> findNewParent = <span class="keyword">false</span>;</div><div class="line"><a name="l00378"></a><span class="lineno"> 378</span>&#160; <span class="keywordtype">bool</span> updateVoltages = <span class="keyword">false</span>;</div><div class="line"><a name="l00379"></a><span class="lineno"> 379</span>&#160; <span class="keyword">auto</span> itnp = m_elementList.begin();</div><div class="line"><a name="l00380"></a><span class="lineno"> 380</span>&#160;</div><div class="line"><a name="l00381"></a><span class="lineno"> 381</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00382"></a><span class="lineno"> 382</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00383"></a><span class="lineno"> 383</span>&#160;</div><div class="line"><a name="l00384"></a><span class="lineno"> 384</span>&#160; <span class="comment">// The user was moving a pickbox.</span></div><div class="line"><a name="l00385"></a><span class="lineno"> 385</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_MOVE_PICKBOX) {</div><div class="line"><a name="l00386"></a><span class="lineno"> 386</span>&#160; <span class="comment">// Catch only the element that have the pickbox shown.</span></div><div class="line"><a name="l00387"></a><span class="lineno"> 387</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()) {</div><div class="line"><a name="l00388"></a><span class="lineno"> 388</span>&#160; <span class="comment">// If the element is a bus, check if a node is outside.</span></div><div class="line"><a name="l00389"></a><span class="lineno"> 389</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00390"></a><span class="lineno"> 390</span>&#160; <span class="comment">// Get all the bus children.</span></div><div class="line"><a name="l00391"></a><span class="lineno"> 391</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l00392"></a><span class="lineno"> 392</span>&#160; <a class="code" href="class_element.html">Element</a>* child = m_elementList[i];</div><div class="line"><a name="l00393"></a><span class="lineno"> 393</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l00394"></a><span class="lineno"> 394</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j];</div><div class="line"><a name="l00395"></a><span class="lineno"> 395</span>&#160; <span class="comment">// The child have a parent that is the element.</span></div><div class="line"><a name="l00396"></a><span class="lineno"> 396</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00397"></a><span class="lineno"> 397</span>&#160; child-&gt;<a class="code" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>();</div><div class="line"><a name="l00398"></a><span class="lineno"> 398</span>&#160; m_disconnectedElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00399"></a><span class="lineno"> 399</span>&#160; }</div><div class="line"><a name="l00400"></a><span class="lineno"> 400</span>&#160; }</div><div class="line"><a name="l00401"></a><span class="lineno"> 401</span>&#160; }</div><div class="line"><a name="l00402"></a><span class="lineno"> 402</span>&#160; }</div><div class="line"><a name="l00403"></a><span class="lineno"> 403</span>&#160; }</div><div class="line"><a name="l00404"></a><span class="lineno"> 404</span>&#160; }</div><div class="line"><a name="l00405"></a><span class="lineno"> 405</span>&#160;</div><div class="line"><a name="l00406"></a><span class="lineno"> 406</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00407"></a><span class="lineno"> 407</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00408"></a><span class="lineno"> 408</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00409"></a><span class="lineno"> 409</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00410"></a><span class="lineno"> 410</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00411"></a><span class="lineno"> 411</span>&#160; }</div><div class="line"><a name="l00412"></a><span class="lineno"> 412</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_MOVE_NODE) {</div><div class="line"><a name="l00413"></a><span class="lineno"> 413</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00414"></a><span class="lineno"> 414</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l00415"></a><span class="lineno"> 415</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = m_elementList[i];</div><div class="line"><a name="l00416"></a><span class="lineno"> 416</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*parent) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l00417"></a><span class="lineno"> 417</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">SetNodeParent</a>(parent)) {</div><div class="line"><a name="l00418"></a><span class="lineno"> 418</span>&#160; parent-&gt;<a class="code" href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">AddChild</a>(element);</div><div class="line"><a name="l00419"></a><span class="lineno"> 419</span>&#160; findNewParent = <span class="keyword">true</span>;</div><div class="line"><a name="l00420"></a><span class="lineno"> 420</span>&#160; itnp = it;</div><div class="line"><a name="l00421"></a><span class="lineno"> 421</span>&#160; element-&gt;<a class="code" href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">ResetNodes</a>();</div><div class="line"><a name="l00422"></a><span class="lineno"> 422</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00423"></a><span class="lineno"> 423</span>&#160; }</div><div class="line"><a name="l00424"></a><span class="lineno"> 424</span>&#160; }</div><div class="line"><a name="l00425"></a><span class="lineno"> 425</span>&#160; }</div><div class="line"><a name="l00426"></a><span class="lineno"> 426</span>&#160; <span class="comment">// element-&gt;ResetNodes();</span></div><div class="line"><a name="l00427"></a><span class="lineno"> 427</span>&#160; }</div><div class="line"><a name="l00428"></a><span class="lineno"> 428</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00429"></a><span class="lineno"> 429</span>&#160; <span class="comment">// Deselect</span></div><div class="line"><a name="l00430"></a><span class="lineno"> 430</span>&#160; <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00431"></a><span class="lineno"> 431</span>&#160; <span class="keywordflow">if</span>(!element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00432"></a><span class="lineno"> 432</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00433"></a><span class="lineno"> 433</span>&#160; }</div><div class="line"><a name="l00434"></a><span class="lineno"> 434</span>&#160; }</div><div class="line"><a name="l00435"></a><span class="lineno"> 435</span>&#160;</div><div class="line"><a name="l00436"></a><span class="lineno"> 436</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00437"></a><span class="lineno"> 437</span>&#160; foundPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00438"></a><span class="lineno"> 438</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00439"></a><span class="lineno"> 439</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00440"></a><span class="lineno"> 440</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00441"></a><span class="lineno"> 441</span>&#160; }</div><div class="line"><a name="l00442"></a><span class="lineno"> 442</span>&#160; }</div><div class="line"><a name="l00443"></a><span class="lineno"> 443</span>&#160; }</div><div class="line"><a name="l00444"></a><span class="lineno"> 444</span>&#160;</div><div class="line"><a name="l00445"></a><span class="lineno"> 445</span>&#160; <span class="comment">// Text element</span></div><div class="line"><a name="l00446"></a><span class="lineno"> 446</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); it++) {</div><div class="line"><a name="l00447"></a><span class="lineno"> 447</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00448"></a><span class="lineno"> 448</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_SELECTION_RECT) {</div><div class="line"><a name="l00449"></a><span class="lineno"> 449</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Intersects</a>(m_selectionRect)) {</div><div class="line"><a name="l00450"></a><span class="lineno"> 450</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>();</div><div class="line"><a name="l00451"></a><span class="lineno"> 451</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00452"></a><span class="lineno"> 452</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00453"></a><span class="lineno"> 453</span>&#160; }</div><div class="line"><a name="l00454"></a><span class="lineno"> 454</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown()) {</div><div class="line"><a name="l00455"></a><span class="lineno"> 455</span>&#160; <span class="keywordflow">if</span>(!text-&gt;<a class="code" href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00456"></a><span class="lineno"> 456</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00457"></a><span class="lineno"> 457</span>&#160; }</div><div class="line"><a name="l00458"></a><span class="lineno"> 458</span>&#160; }</div><div class="line"><a name="l00459"></a><span class="lineno"> 459</span>&#160; }</div><div class="line"><a name="l00460"></a><span class="lineno"> 460</span>&#160;</div><div class="line"><a name="l00461"></a><span class="lineno"> 461</span>&#160; <span class="keywordflow">if</span>(findNewParent) {</div><div class="line"><a name="l00462"></a><span class="lineno"> 462</span>&#160; std::rotate(itnp, itnp + 1, m_elementList.end());</div><div class="line"><a name="l00463"></a><span class="lineno"> 463</span>&#160; updateVoltages = <span class="keyword">true</span>;</div><div class="line"><a name="l00464"></a><span class="lineno"> 464</span>&#160; }</div><div class="line"><a name="l00465"></a><span class="lineno"> 465</span>&#160; <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00466"></a><span class="lineno"> 466</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00467"></a><span class="lineno"> 467</span>&#160; }</div><div class="line"><a name="l00468"></a><span class="lineno"> 468</span>&#160;</div><div class="line"><a name="l00469"></a><span class="lineno"> 469</span>&#160; <span class="keywordflow">if</span>(m_mode != MODE_INSERT) {</div><div class="line"><a name="l00470"></a><span class="lineno"> 470</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00471"></a><span class="lineno"> 471</span>&#160; }</div><div class="line"><a name="l00472"></a><span class="lineno"> 472</span>&#160;</div><div class="line"><a name="l00473"></a><span class="lineno"> 473</span>&#160; <span class="keywordflow">if</span>(updateVoltages) {</div><div class="line"><a name="l00474"></a><span class="lineno"> 474</span>&#160; ValidateElementsVoltages();</div><div class="line"><a name="l00475"></a><span class="lineno"> 475</span>&#160; }</div><div class="line"><a name="l00476"></a><span class="lineno"> 476</span>&#160;</div><div class="line"><a name="l00477"></a><span class="lineno"> 477</span>&#160; <span class="keywordflow">if</span>(m_continuousCalc &amp;&amp; m_disconnectedElement) {</div><div class="line"><a name="l00478"></a><span class="lineno"> 478</span>&#160; m_disconnectedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00479"></a><span class="lineno"> 479</span>&#160; RunStaticStudies();</div><div class="line"><a name="l00480"></a><span class="lineno"> 480</span>&#160; }</div><div class="line"><a name="l00481"></a><span class="lineno"> 481</span>&#160;</div><div class="line"><a name="l00482"></a><span class="lineno"> 482</span>&#160; m_selectionRect = wxRect2DDouble(0, 0, 0, 0);</div><div class="line"><a name="l00483"></a><span class="lineno"> 483</span>&#160; Redraw();</div><div class="line"><a name="l00484"></a><span class="lineno"> 484</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00485"></a><span class="lineno"> 485</span>&#160;}</div><div class="line"><a name="l00486"></a><span class="lineno"> 486</span>&#160;</div><div class="line"><a name="l00487"></a><span class="lineno"> 487</span>&#160;<span class="keywordtype">void</span> Workspace::OnMouseMotion(wxMouseEvent&amp; event)</div><div class="line"><a name="l00488"></a><span class="lineno"> 488</span>&#160;{</div><div class="line"><a name="l00489"></a><span class="lineno"> 489</span>&#160; <span class="keywordtype">bool</span> redraw = <span class="keyword">false</span>;</div><div class="line"><a name="l00490"></a><span class="lineno"> 490</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00491"></a><span class="lineno"> 491</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00492"></a><span class="lineno"> 492</span>&#160; <a class="code" href="class_element.html">Element</a>* newElement = *(m_elementList.end() - 1); <span class="comment">// Get the last element in the list.</span></div><div class="line"><a name="l00493"></a><span class="lineno"> 493</span>&#160; newElement-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00494"></a><span class="lineno"> 494</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00495"></a><span class="lineno"> 495</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00496"></a><span class="lineno"> 496</span>&#160;</div><div class="line"><a name="l00497"></a><span class="lineno"> 497</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT: {</div><div class="line"><a name="l00498"></a><span class="lineno"> 498</span>&#160; <a class="code" href="class_text.html">Text</a>* newText = *(m_textList.end() - 1);</div><div class="line"><a name="l00499"></a><span class="lineno"> 499</span>&#160; newText-&gt;<a class="code" href="class_element.html#a920fe7ba1563615857618f01e64b3284">SetPosition</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00500"></a><span class="lineno"> 500</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00501"></a><span class="lineno"> 501</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00502"></a><span class="lineno"> 502</span>&#160;</div><div class="line"><a name="l00503"></a><span class="lineno"> 503</span>&#160; <span class="keywordflow">case</span> MODE_DRAG:</div><div class="line"><a name="l00504"></a><span class="lineno"> 504</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00505"></a><span class="lineno"> 505</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT:</div><div class="line"><a name="l00506"></a><span class="lineno"> 506</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00507"></a><span class="lineno"> 507</span>&#160; m_camera-&gt;SetTranslation(event.GetPosition());</div><div class="line"><a name="l00508"></a><span class="lineno"> 508</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00509"></a><span class="lineno"> 509</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00510"></a><span class="lineno"> 510</span>&#160;</div><div class="line"><a name="l00511"></a><span class="lineno"> 511</span>&#160; <span class="keywordflow">case</span> MODE_EDIT: {</div><div class="line"><a name="l00512"></a><span class="lineno"> 512</span>&#160; <span class="keywordtype">bool</span> foundPickbox = <span class="keyword">false</span>;</div><div class="line"><a name="l00513"></a><span class="lineno"> 513</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00514"></a><span class="lineno"> 514</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00515"></a><span class="lineno"> 515</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00516"></a><span class="lineno"> 516</span>&#160; <span class="comment">// Show element pickbox (when it has) if the mouse is over the selected object.</span></div><div class="line"><a name="l00517"></a><span class="lineno"> 517</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00518"></a><span class="lineno"> 518</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>();</div><div class="line"><a name="l00519"></a><span class="lineno"> 519</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00520"></a><span class="lineno"> 520</span>&#160;</div><div class="line"><a name="l00521"></a><span class="lineno"> 521</span>&#160; <span class="comment">// If the mouse is over a pickbox set correct mouse cursor.</span></div><div class="line"><a name="l00522"></a><span class="lineno"> 522</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#af4815de7e7698ea116e8e2af51414050">PickboxContains</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()))) {</div><div class="line"><a name="l00523"></a><span class="lineno"> 523</span>&#160; foundPickbox = <span class="keyword">true</span>;</div><div class="line"><a name="l00524"></a><span class="lineno"> 524</span>&#160; SetCursor(element-&gt;<a class="code" href="class_element.html#a245924c5be948397b101787dbea565ea">GetBestPickboxCursor</a>());</div><div class="line"><a name="l00525"></a><span class="lineno"> 525</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00526"></a><span class="lineno"> 526</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00527"></a><span class="lineno"> 527</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00528"></a><span class="lineno"> 528</span>&#160; }</div><div class="line"><a name="l00529"></a><span class="lineno"> 529</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!foundPickbox) {</div><div class="line"><a name="l00530"></a><span class="lineno"> 530</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">IsPickboxShown</a>()) redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00531"></a><span class="lineno"> 531</span>&#160;</div><div class="line"><a name="l00532"></a><span class="lineno"> 532</span>&#160; element-&gt;<a class="code" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00533"></a><span class="lineno"> 533</span>&#160; element-&gt;<a class="code" href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">ResetPickboxes</a>();</div><div class="line"><a name="l00534"></a><span class="lineno"> 534</span>&#160; SetCursor(wxCURSOR_ARROW);</div><div class="line"><a name="l00535"></a><span class="lineno"> 535</span>&#160; }</div><div class="line"><a name="l00536"></a><span class="lineno"> 536</span>&#160; }</div><div class="line"><a name="l00537"></a><span class="lineno"> 537</span>&#160; }</div><div class="line"><a name="l00538"></a><span class="lineno"> 538</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00539"></a><span class="lineno"> 539</span>&#160;</div><div class="line"><a name="l00540"></a><span class="lineno"> 540</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_NODE: {</div><div class="line"><a name="l00541"></a><span class="lineno"> 541</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00542"></a><span class="lineno"> 542</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00543"></a><span class="lineno"> 543</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00544"></a><span class="lineno"> 544</span>&#160; element-&gt;<a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(NULL, m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00545"></a><span class="lineno"> 545</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00546"></a><span class="lineno"> 546</span>&#160; }</div><div class="line"><a name="l00547"></a><span class="lineno"> 547</span>&#160; }</div><div class="line"><a name="l00548"></a><span class="lineno"> 548</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00549"></a><span class="lineno"> 549</span>&#160;</div><div class="line"><a name="l00550"></a><span class="lineno"> 550</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_PICKBOX: {</div><div class="line"><a name="l00551"></a><span class="lineno"> 551</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00552"></a><span class="lineno"> 552</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00553"></a><span class="lineno"> 553</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00554"></a><span class="lineno"> 554</span>&#160; element-&gt;<a class="code" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">MovePickbox</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00555"></a><span class="lineno"> 555</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00556"></a><span class="lineno"> 556</span>&#160; }</div><div class="line"><a name="l00557"></a><span class="lineno"> 557</span>&#160; }</div><div class="line"><a name="l00558"></a><span class="lineno"> 558</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00559"></a><span class="lineno"> 559</span>&#160;</div><div class="line"><a name="l00560"></a><span class="lineno"> 560</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT:</div><div class="line"><a name="l00561"></a><span class="lineno"> 561</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00562"></a><span class="lineno"> 562</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00563"></a><span class="lineno"> 563</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00564"></a><span class="lineno"> 564</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00565"></a><span class="lineno"> 565</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00566"></a><span class="lineno"> 566</span>&#160; <span class="comment">// Move child nodes</span></div><div class="line"><a name="l00567"></a><span class="lineno"> 567</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00568"></a><span class="lineno"> 568</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00569"></a><span class="lineno"> 569</span>&#160; (*it)-&gt;MoveNode(element, m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00570"></a><span class="lineno"> 570</span>&#160; }</div><div class="line"><a name="l00571"></a><span class="lineno"> 571</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00572"></a><span class="lineno"> 572</span>&#160; }</div><div class="line"><a name="l00573"></a><span class="lineno"> 573</span>&#160; }</div><div class="line"><a name="l00574"></a><span class="lineno"> 574</span>&#160; <span class="comment">// Text element motion</span></div><div class="line"><a name="l00575"></a><span class="lineno"> 575</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; it++) {</div><div class="line"><a name="l00576"></a><span class="lineno"> 576</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00577"></a><span class="lineno"> 577</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00578"></a><span class="lineno"> 578</span>&#160; text-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00579"></a><span class="lineno"> 579</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00580"></a><span class="lineno"> 580</span>&#160; }</div><div class="line"><a name="l00581"></a><span class="lineno"> 581</span>&#160; }</div><div class="line"><a name="l00582"></a><span class="lineno"> 582</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00583"></a><span class="lineno"> 583</span>&#160;</div><div class="line"><a name="l00584"></a><span class="lineno"> 584</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT: {</div><div class="line"><a name="l00585"></a><span class="lineno"> 585</span>&#160; wxPoint2DDouble currentPos = m_camera-&gt;ScreenToWorld(event.GetPosition());</div><div class="line"><a name="l00586"></a><span class="lineno"> 586</span>&#160; <span class="keywordtype">double</span> x, y, w, h;</div><div class="line"><a name="l00587"></a><span class="lineno"> 587</span>&#160; <span class="keywordflow">if</span>(currentPos.m_x &lt; m_startSelRect.m_x) {</div><div class="line"><a name="l00588"></a><span class="lineno"> 588</span>&#160; x = currentPos.m_x;</div><div class="line"><a name="l00589"></a><span class="lineno"> 589</span>&#160; w = m_startSelRect.m_x - currentPos.m_x;</div><div class="line"><a name="l00590"></a><span class="lineno"> 590</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00591"></a><span class="lineno"> 591</span>&#160; x = m_startSelRect.m_x;</div><div class="line"><a name="l00592"></a><span class="lineno"> 592</span>&#160; w = currentPos.m_x - m_startSelRect.m_x;</div><div class="line"><a name="l00593"></a><span class="lineno"> 593</span>&#160; }</div><div class="line"><a name="l00594"></a><span class="lineno"> 594</span>&#160; <span class="keywordflow">if</span>(currentPos.m_y &lt; m_startSelRect.m_y) {</div><div class="line"><a name="l00595"></a><span class="lineno"> 595</span>&#160; y = currentPos.m_y;</div><div class="line"><a name="l00596"></a><span class="lineno"> 596</span>&#160; h = m_startSelRect.m_y - currentPos.m_y;</div><div class="line"><a name="l00597"></a><span class="lineno"> 597</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00598"></a><span class="lineno"> 598</span>&#160; y = m_startSelRect.m_y;</div><div class="line"><a name="l00599"></a><span class="lineno"> 599</span>&#160; h = currentPos.m_y - m_startSelRect.m_y;</div><div class="line"><a name="l00600"></a><span class="lineno"> 600</span>&#160; }</div><div class="line"><a name="l00601"></a><span class="lineno"> 601</span>&#160;</div><div class="line"><a name="l00602"></a><span class="lineno"> 602</span>&#160; m_selectionRect = wxRect2DDouble(x, y, w, h);</div><div class="line"><a name="l00603"></a><span class="lineno"> 603</span>&#160; redraw = <span class="keyword">true</span>;</div><div class="line"><a name="l00604"></a><span class="lineno"> 604</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00605"></a><span class="lineno"> 605</span>&#160; }</div><div class="line"><a name="l00606"></a><span class="lineno"> 606</span>&#160;</div><div class="line"><a name="l00607"></a><span class="lineno"> 607</span>&#160; <span class="keywordflow">if</span>(redraw) Redraw();</div><div class="line"><a name="l00608"></a><span class="lineno"> 608</span>&#160; m_camera-&gt;UpdateMousePosition(event.GetPosition());</div><div class="line"><a name="l00609"></a><span class="lineno"> 609</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00610"></a><span class="lineno"> 610</span>&#160; m_timer-&gt;Start(); <span class="comment">// Restart the timer.</span></div><div class="line"><a name="l00611"></a><span class="lineno"> 611</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00612"></a><span class="lineno"> 612</span>&#160;}</div><div class="line"><a name="l00613"></a><span class="lineno"> 613</span>&#160;</div><div class="line"><a name="l00614"></a><span class="lineno"> 614</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleDown(wxMouseEvent&amp; event)</div><div class="line"><a name="l00615"></a><span class="lineno"> 615</span>&#160;{</div><div class="line"><a name="l00616"></a><span class="lineno"> 616</span>&#160; <span class="comment">// Set to drag mode.</span></div><div class="line"><a name="l00617"></a><span class="lineno"> 617</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00618"></a><span class="lineno"> 618</span>&#160; <span class="keywordflow">case</span> MODE_INSERT: {</div><div class="line"><a name="l00619"></a><span class="lineno"> 619</span>&#160; m_mode = MODE_DRAG_INSERT;</div><div class="line"><a name="l00620"></a><span class="lineno"> 620</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00621"></a><span class="lineno"> 621</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT: {</div><div class="line"><a name="l00622"></a><span class="lineno"> 622</span>&#160; m_mode = MODE_DRAG_INSERT_TEXT;</div><div class="line"><a name="l00623"></a><span class="lineno"> 623</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00624"></a><span class="lineno"> 624</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00625"></a><span class="lineno"> 625</span>&#160; m_mode = MODE_DRAG_PASTE;</div><div class="line"><a name="l00626"></a><span class="lineno"> 626</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00627"></a><span class="lineno"> 627</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00628"></a><span class="lineno"> 628</span>&#160; m_mode = MODE_DRAG;</div><div class="line"><a name="l00629"></a><span class="lineno"> 629</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00630"></a><span class="lineno"> 630</span>&#160; }</div><div class="line"><a name="l00631"></a><span class="lineno"> 631</span>&#160; m_camera-&gt;StartTranslation(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00632"></a><span class="lineno"> 632</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00633"></a><span class="lineno"> 633</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00634"></a><span class="lineno"> 634</span>&#160;}</div><div class="line"><a name="l00635"></a><span class="lineno"> 635</span>&#160;</div><div class="line"><a name="l00636"></a><span class="lineno"> 636</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleUp(wxMouseEvent&amp; event)</div><div class="line"><a name="l00637"></a><span class="lineno"> 637</span>&#160;{</div><div class="line"><a name="l00638"></a><span class="lineno"> 638</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00639"></a><span class="lineno"> 639</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT: {</div><div class="line"><a name="l00640"></a><span class="lineno"> 640</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00641"></a><span class="lineno"> 641</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00642"></a><span class="lineno"> 642</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT: {</div><div class="line"><a name="l00643"></a><span class="lineno"> 643</span>&#160; m_mode = MODE_INSERT_TEXT;</div><div class="line"><a name="l00644"></a><span class="lineno"> 644</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00645"></a><span class="lineno"> 645</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00646"></a><span class="lineno"> 646</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l00647"></a><span class="lineno"> 647</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00648"></a><span class="lineno"> 648</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00649"></a><span class="lineno"> 649</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT:</div><div class="line"><a name="l00650"></a><span class="lineno"> 650</span>&#160; <span class="keywordflow">case</span> MODE_PASTE: {</div><div class="line"><a name="l00651"></a><span class="lineno"> 651</span>&#160; <span class="comment">// Does nothing.</span></div><div class="line"><a name="l00652"></a><span class="lineno"> 652</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00653"></a><span class="lineno"> 653</span>&#160; <span class="keywordflow">default</span>: {</div><div class="line"><a name="l00654"></a><span class="lineno"> 654</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00655"></a><span class="lineno"> 655</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00656"></a><span class="lineno"> 656</span>&#160; }</div><div class="line"><a name="l00657"></a><span class="lineno"> 657</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00658"></a><span class="lineno"> 658</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00659"></a><span class="lineno"> 659</span>&#160;}</div><div class="line"><a name="l00660"></a><span class="lineno"> 660</span>&#160;</div><div class="line"><a name="l00661"></a><span class="lineno"> 661</span>&#160;<span class="keywordtype">void</span> Workspace::OnScroll(wxMouseEvent&amp; event)</div><div class="line"><a name="l00662"></a><span class="lineno"> 662</span>&#160;{</div><div class="line"><a name="l00663"></a><span class="lineno"> 663</span>&#160; <span class="keywordflow">if</span>(event.GetWheelRotation() &gt; 0)</div><div class="line"><a name="l00664"></a><span class="lineno"> 664</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), +0.05);</div><div class="line"><a name="l00665"></a><span class="lineno"> 665</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00666"></a><span class="lineno"> 666</span>&#160; m_camera-&gt;SetScale(event.GetPosition(), -0.05);</div><div class="line"><a name="l00667"></a><span class="lineno"> 667</span>&#160;</div><div class="line"><a name="l00668"></a><span class="lineno"> 668</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00669"></a><span class="lineno"> 669</span>&#160; Redraw();</div><div class="line"><a name="l00670"></a><span class="lineno"> 670</span>&#160;}</div><div class="line"><a name="l00671"></a><span class="lineno"> 671</span>&#160;</div><div class="line"><a name="l00672"></a><span class="lineno"> 672</span>&#160;<span class="keywordtype">void</span> Workspace::OnKeyDown(wxKeyEvent&amp; event)</div><div class="line"><a name="l00673"></a><span class="lineno"> 673</span>&#160;{</div><div class="line"><a name="l00674"></a><span class="lineno"> 674</span>&#160; <span class="keywordtype">bool</span> insertingElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00675"></a><span class="lineno"> 675</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT || m_mode == MODE_INSERT_TEXT) insertingElement = <span class="keyword">true</span>;</div><div class="line"><a name="l00676"></a><span class="lineno"> 676</span>&#160;</div><div class="line"><a name="l00677"></a><span class="lineno"> 677</span>&#160; <span class="keywordtype">char</span> key = <span class="keyword">event</span>.GetUnicodeKey();</div><div class="line"><a name="l00678"></a><span class="lineno"> 678</span>&#160; <span class="keywordflow">if</span>(key != WXK_NONE) {</div><div class="line"><a name="l00679"></a><span class="lineno"> 679</span>&#160; <span class="keywordflow">switch</span>(key) {</div><div class="line"><a name="l00680"></a><span class="lineno"> 680</span>&#160; <span class="keywordflow">case</span> WXK_ESCAPE: <span class="comment">// Cancel operations.</span></div><div class="line"><a name="l00681"></a><span class="lineno"> 681</span>&#160; {</div><div class="line"><a name="l00682"></a><span class="lineno"> 682</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_INSERT) {</div><div class="line"><a name="l00683"></a><span class="lineno"> 683</span>&#160; m_elementList.pop_back(); <span class="comment">// Removes the last element being inserted.</span></div><div class="line"><a name="l00684"></a><span class="lineno"> 684</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00685"></a><span class="lineno"> 685</span>&#160; Redraw();</div><div class="line"><a name="l00686"></a><span class="lineno"> 686</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(m_mode == MODE_INSERT_TEXT) {</div><div class="line"><a name="l00687"></a><span class="lineno"> 687</span>&#160; m_textList.pop_back();</div><div class="line"><a name="l00688"></a><span class="lineno"> 688</span>&#160; m_mode = MODE_EDIT;</div><div class="line"><a name="l00689"></a><span class="lineno"> 689</span>&#160; Redraw();</div><div class="line"><a name="l00690"></a><span class="lineno"> 690</span>&#160; }</div><div class="line"><a name="l00691"></a><span class="lineno"> 691</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00692"></a><span class="lineno"> 692</span>&#160; <span class="keywordflow">case</span> WXK_DELETE: <span class="comment">// Delete selected elements</span></div><div class="line"><a name="l00693"></a><span class="lineno"> 693</span>&#160; {</div><div class="line"><a name="l00694"></a><span class="lineno"> 694</span>&#160; DeleteSelectedElements();</div><div class="line"><a name="l00695"></a><span class="lineno"> 695</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00696"></a><span class="lineno"> 696</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;A&#39;</span>: {</div><div class="line"><a name="l00697"></a><span class="lineno"> 697</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00698"></a><span class="lineno"> 698</span>&#160; <a class="code" href="class_text.html">Text</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_text.html">Text</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()));</div><div class="line"><a name="l00699"></a><span class="lineno"> 699</span>&#160; m_textList.push_back(newBus);</div><div class="line"><a name="l00700"></a><span class="lineno"> 700</span>&#160; m_mode = MODE_INSERT_TEXT;</div><div class="line"><a name="l00701"></a><span class="lineno"> 701</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Text: Click to insert, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00702"></a><span class="lineno"> 702</span>&#160; Redraw();</div><div class="line"><a name="l00703"></a><span class="lineno"> 703</span>&#160; }</div><div class="line"><a name="l00704"></a><span class="lineno"> 704</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00705"></a><span class="lineno"> 705</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;F&#39;</span>: {</div><div class="line"><a name="l00706"></a><span class="lineno"> 706</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) {</div><div class="line"><a name="l00707"></a><span class="lineno"> 707</span>&#160; Fit();</div><div class="line"><a name="l00708"></a><span class="lineno"> 708</span>&#160; }</div><div class="line"><a name="l00709"></a><span class="lineno"> 709</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00710"></a><span class="lineno"> 710</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;R&#39;</span>: <span class="comment">// Rotate the selected elements.</span></div><div class="line"><a name="l00711"></a><span class="lineno"> 711</span>&#160; {</div><div class="line"><a name="l00712"></a><span class="lineno"> 712</span>&#160; RotateSelectedElements(event.GetModifiers() != wxMOD_SHIFT);</div><div class="line"><a name="l00713"></a><span class="lineno"> 713</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00714"></a><span class="lineno"> 714</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;B&#39;</span>: <span class="comment">// Insert a bus.</span></div><div class="line"><a name="l00715"></a><span class="lineno"> 715</span>&#160; {</div><div class="line"><a name="l00716"></a><span class="lineno"> 716</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00717"></a><span class="lineno"> 717</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newBus = <span class="keyword">new</span> <a class="code" href="class_bus.html">Bus</a>(m_camera-&gt;ScreenToWorld(event.GetPosition()),</div><div class="line"><a name="l00718"></a><span class="lineno"> 718</span>&#160; wxString::Format(_(<span class="stringliteral">&quot;Bus %d&quot;</span>), GetElementNumber(ID_BUS)));</div><div class="line"><a name="l00719"></a><span class="lineno"> 719</span>&#160; IncrementElementNumber(ID_BUS);</div><div class="line"><a name="l00720"></a><span class="lineno"> 720</span>&#160; m_elementList.push_back(newBus);</div><div class="line"><a name="l00721"></a><span class="lineno"> 721</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00722"></a><span class="lineno"> 722</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Bus: Click to insert, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00723"></a><span class="lineno"> 723</span>&#160; Redraw();</div><div class="line"><a name="l00724"></a><span class="lineno"> 724</span>&#160; }</div><div class="line"><a name="l00725"></a><span class="lineno"> 725</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00726"></a><span class="lineno"> 726</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;L&#39;</span>: {</div><div class="line"><a name="l00727"></a><span class="lineno"> 727</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00728"></a><span class="lineno"> 728</span>&#160; <span class="keywordflow">if</span>(!event.ControlDown() &amp;&amp; <span class="keyword">event</span>.ShiftDown()) { <span class="comment">// Insert a load.</span></div><div class="line"><a name="l00729"></a><span class="lineno"> 729</span>&#160; <a class="code" href="class_load.html">Load</a>* newLoad = <span class="keyword">new</span> <a class="code" href="class_load.html">Load</a>(wxString::Format(_(<span class="stringliteral">&quot;Load %d&quot;</span>), GetElementNumber(ID_LOAD)));</div><div class="line"><a name="l00730"></a><span class="lineno"> 730</span>&#160; IncrementElementNumber(ID_LOAD);</div><div class="line"><a name="l00731"></a><span class="lineno"> 731</span>&#160; m_elementList.push_back(newLoad);</div><div class="line"><a name="l00732"></a><span class="lineno"> 732</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00733"></a><span class="lineno"> 733</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Load: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00734"></a><span class="lineno"> 734</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(!event.ControlDown() &amp;&amp; !<span class="keyword">event</span>.ShiftDown()) { <span class="comment">// Insert a power line.</span></div><div class="line"><a name="l00735"></a><span class="lineno"> 735</span>&#160; <a class="code" href="class_line.html">Line</a>* newLine = <span class="keyword">new</span> <a class="code" href="class_line.html">Line</a>(wxString::Format(_(<span class="stringliteral">&quot;Line %d&quot;</span>), GetElementNumber(ID_LINE)));</div><div class="line"><a name="l00736"></a><span class="lineno"> 736</span>&#160; IncrementElementNumber(ID_LINE);</div><div class="line"><a name="l00737"></a><span class="lineno"> 737</span>&#160; m_elementList.push_back(newLine);</div><div class="line"><a name="l00738"></a><span class="lineno"> 738</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00739"></a><span class="lineno"> 739</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Line: Click on two buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00740"></a><span class="lineno"> 740</span>&#160; }</div><div class="line"><a name="l00741"></a><span class="lineno"> 741</span>&#160; Redraw();</div><div class="line"><a name="l00742"></a><span class="lineno"> 742</span>&#160; }</div><div class="line"><a name="l00743"></a><span class="lineno"> 743</span>&#160; <span class="comment">// Tests - Ctrl + Shift + L</span></div><div class="line"><a name="l00744"></a><span class="lineno"> 744</span>&#160; <span class="keywordflow">if</span>(event.ControlDown() &amp;&amp; <span class="keyword">event</span>.ShiftDown()) {</div><div class="line"><a name="l00745"></a><span class="lineno"> 745</span>&#160; <span class="comment">// Nothing...</span></div><div class="line"><a name="l00746"></a><span class="lineno"> 746</span>&#160; }</div><div class="line"><a name="l00747"></a><span class="lineno"> 747</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00748"></a><span class="lineno"> 748</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;T&#39;</span>: <span class="comment">// Insert a transformer.</span></div><div class="line"><a name="l00749"></a><span class="lineno"> 749</span>&#160; {</div><div class="line"><a name="l00750"></a><span class="lineno"> 750</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00751"></a><span class="lineno"> 751</span>&#160; <a class="code" href="class_transformer.html">Transformer</a>* newTransformer =</div><div class="line"><a name="l00752"></a><span class="lineno"> 752</span>&#160; <span class="keyword">new</span> <a class="code" href="class_transformer.html">Transformer</a>(wxString::Format(_(<span class="stringliteral">&quot;Transformer %d&quot;</span>), GetElementNumber(ID_TRANSFORMER)));</div><div class="line"><a name="l00753"></a><span class="lineno"> 753</span>&#160; IncrementElementNumber(ID_TRANSFORMER);</div><div class="line"><a name="l00754"></a><span class="lineno"> 754</span>&#160; m_elementList.push_back(newTransformer);</div><div class="line"><a name="l00755"></a><span class="lineno"> 755</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00756"></a><span class="lineno"> 756</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Transformer: Click on two buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00757"></a><span class="lineno"> 757</span>&#160; Redraw();</div><div class="line"><a name="l00758"></a><span class="lineno"> 758</span>&#160; }</div><div class="line"><a name="l00759"></a><span class="lineno"> 759</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00760"></a><span class="lineno"> 760</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;G&#39;</span>: <span class="comment">// Insert a generator.</span></div><div class="line"><a name="l00761"></a><span class="lineno"> 761</span>&#160; {</div><div class="line"><a name="l00762"></a><span class="lineno"> 762</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00763"></a><span class="lineno"> 763</span>&#160; <a class="code" href="class_sync_generator.html">SyncGenerator</a>* newGenerator =</div><div class="line"><a name="l00764"></a><span class="lineno"> 764</span>&#160; <span class="keyword">new</span> <a class="code" href="class_sync_generator.html">SyncGenerator</a>(wxString::Format(_(<span class="stringliteral">&quot;Generator %d&quot;</span>), GetElementNumber(ID_SYNCGENERATOR)));</div><div class="line"><a name="l00765"></a><span class="lineno"> 765</span>&#160; IncrementElementNumber(ID_SYNCGENERATOR);</div><div class="line"><a name="l00766"></a><span class="lineno"> 766</span>&#160; m_elementList.push_back(newGenerator);</div><div class="line"><a name="l00767"></a><span class="lineno"> 767</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00768"></a><span class="lineno"> 768</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Generator: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00769"></a><span class="lineno"> 769</span>&#160; Redraw();</div><div class="line"><a name="l00770"></a><span class="lineno"> 770</span>&#160; }</div><div class="line"><a name="l00771"></a><span class="lineno"> 771</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00772"></a><span class="lineno"> 772</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;I&#39;</span>: {</div><div class="line"><a name="l00773"></a><span class="lineno"> 773</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00774"></a><span class="lineno"> 774</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) { <span class="comment">// Insert an inductor.</span></div><div class="line"><a name="l00775"></a><span class="lineno"> 775</span>&#160; <a class="code" href="class_inductor.html">Inductor</a>* newInductor =</div><div class="line"><a name="l00776"></a><span class="lineno"> 776</span>&#160; <span class="keyword">new</span> <a class="code" href="class_inductor.html">Inductor</a>(wxString::Format(_(<span class="stringliteral">&quot;Inductor %d&quot;</span>), GetElementNumber(ID_INDUCTOR)));</div><div class="line"><a name="l00777"></a><span class="lineno"> 777</span>&#160; IncrementElementNumber(ID_INDUCTOR);</div><div class="line"><a name="l00778"></a><span class="lineno"> 778</span>&#160; m_elementList.push_back(newInductor);</div><div class="line"><a name="l00779"></a><span class="lineno"> 779</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00780"></a><span class="lineno"> 780</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Inductor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00781"></a><span class="lineno"> 781</span>&#160; } <span class="keywordflow">else</span> <span class="comment">// Insert an induction motor.</span></div><div class="line"><a name="l00782"></a><span class="lineno"> 782</span>&#160; {</div><div class="line"><a name="l00783"></a><span class="lineno"> 783</span>&#160; <a class="code" href="class_ind_motor.html">IndMotor</a>* newIndMotor =</div><div class="line"><a name="l00784"></a><span class="lineno"> 784</span>&#160; <span class="keyword">new</span> <a class="code" href="class_ind_motor.html">IndMotor</a>(wxString::Format(_(<span class="stringliteral">&quot;Induction motor %d&quot;</span>), GetElementNumber(ID_INDMOTOR)));</div><div class="line"><a name="l00785"></a><span class="lineno"> 785</span>&#160; IncrementElementNumber(ID_INDMOTOR);</div><div class="line"><a name="l00786"></a><span class="lineno"> 786</span>&#160; m_elementList.push_back(newIndMotor);</div><div class="line"><a name="l00787"></a><span class="lineno"> 787</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00788"></a><span class="lineno"> 788</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Induction Motor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00789"></a><span class="lineno"> 789</span>&#160; }</div><div class="line"><a name="l00790"></a><span class="lineno"> 790</span>&#160; Redraw();</div><div class="line"><a name="l00791"></a><span class="lineno"> 791</span>&#160; }</div><div class="line"><a name="l00792"></a><span class="lineno"> 792</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00793"></a><span class="lineno"> 793</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;K&#39;</span>: <span class="comment">// Insert a synchronous condenser.</span></div><div class="line"><a name="l00794"></a><span class="lineno"> 794</span>&#160; {</div><div class="line"><a name="l00795"></a><span class="lineno"> 795</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00796"></a><span class="lineno"> 796</span>&#160; <a class="code" href="class_sync_motor.html">SyncMotor</a>* newSyncCondenser =</div><div class="line"><a name="l00797"></a><span class="lineno"> 797</span>&#160; <span class="keyword">new</span> <a class="code" href="class_sync_motor.html">SyncMotor</a>(wxString::Format(_(<span class="stringliteral">&quot;Synchronous condenser %d&quot;</span>), GetElementNumber(ID_SYNCMOTOR)));</div><div class="line"><a name="l00798"></a><span class="lineno"> 798</span>&#160; IncrementElementNumber(ID_SYNCMOTOR);</div><div class="line"><a name="l00799"></a><span class="lineno"> 799</span>&#160; m_elementList.push_back(newSyncCondenser);</div><div class="line"><a name="l00800"></a><span class="lineno"> 800</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00801"></a><span class="lineno"> 801</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Synchronous Condenser: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00802"></a><span class="lineno"> 802</span>&#160; Redraw();</div><div class="line"><a name="l00803"></a><span class="lineno"> 803</span>&#160; }</div><div class="line"><a name="l00804"></a><span class="lineno"> 804</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00805"></a><span class="lineno"> 805</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;C&#39;</span>: {</div><div class="line"><a name="l00806"></a><span class="lineno"> 806</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00807"></a><span class="lineno"> 807</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_SHIFT) { <span class="comment">// Insert a capacitor.</span></div><div class="line"><a name="l00808"></a><span class="lineno"> 808</span>&#160; <a class="code" href="class_capacitor.html">Capacitor</a>* newCapacitor =</div><div class="line"><a name="l00809"></a><span class="lineno"> 809</span>&#160; <span class="keyword">new</span> <a class="code" href="class_capacitor.html">Capacitor</a>(wxString::Format(_(<span class="stringliteral">&quot;Capacitor %d&quot;</span>), GetElementNumber(ID_CAPACITOR)));</div><div class="line"><a name="l00810"></a><span class="lineno"> 810</span>&#160; IncrementElementNumber(ID_CAPACITOR);</div><div class="line"><a name="l00811"></a><span class="lineno"> 811</span>&#160; m_elementList.push_back(newCapacitor);</div><div class="line"><a name="l00812"></a><span class="lineno"> 812</span>&#160; m_mode = MODE_INSERT;</div><div class="line"><a name="l00813"></a><span class="lineno"> 813</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Insert Capacitor: Click on a buses, ESC to cancel.&quot;</span>));</div><div class="line"><a name="l00814"></a><span class="lineno"> 814</span>&#160; Redraw();</div><div class="line"><a name="l00815"></a><span class="lineno"> 815</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_CONTROL) { <span class="comment">// Copy.</span></div><div class="line"><a name="l00816"></a><span class="lineno"> 816</span>&#160; CopySelection();</div><div class="line"><a name="l00817"></a><span class="lineno"> 817</span>&#160; }</div><div class="line"><a name="l00818"></a><span class="lineno"> 818</span>&#160; }</div><div class="line"><a name="l00819"></a><span class="lineno"> 819</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00820"></a><span class="lineno"> 820</span>&#160; <span class="keywordflow">case</span> <span class="charliteral">&#39;V&#39;</span>: {</div><div class="line"><a name="l00821"></a><span class="lineno"> 821</span>&#160; <span class="keywordflow">if</span>(!insertingElement) {</div><div class="line"><a name="l00822"></a><span class="lineno"> 822</span>&#160; <span class="keywordflow">if</span>(event.GetModifiers() == wxMOD_CONTROL) {</div><div class="line"><a name="l00823"></a><span class="lineno"> 823</span>&#160; Paste();</div><div class="line"><a name="l00824"></a><span class="lineno"> 824</span>&#160; }</div><div class="line"><a name="l00825"></a><span class="lineno"> 825</span>&#160; }</div><div class="line"><a name="l00826"></a><span class="lineno"> 826</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00827"></a><span class="lineno"> 827</span>&#160; <span class="keywordflow">default</span>:</div><div class="line"><a name="l00828"></a><span class="lineno"> 828</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00829"></a><span class="lineno"> 829</span>&#160; }</div><div class="line"><a name="l00830"></a><span class="lineno"> 830</span>&#160; }</div><div class="line"><a name="l00831"></a><span class="lineno"> 831</span>&#160;</div><div class="line"><a name="l00832"></a><span class="lineno"> 832</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l00833"></a><span class="lineno"> 833</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l00834"></a><span class="lineno"> 834</span>&#160;}</div><div class="line"><a name="l00835"></a><span class="lineno"> 835</span>&#160;</div><div class="line"><a name="l00836"></a><span class="lineno"> 836</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateStatusBar()</div><div class="line"><a name="l00837"></a><span class="lineno"> 837</span>&#160;{</div><div class="line"><a name="l00838"></a><span class="lineno"> 838</span>&#160; <span class="keywordflow">switch</span>(m_mode) {</div><div class="line"><a name="l00839"></a><span class="lineno"> 839</span>&#160; <span class="keywordflow">case</span> MODE_DRAG: {</div><div class="line"><a name="l00840"></a><span class="lineno"> 840</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: DRAG&quot;</span>), 1);</div><div class="line"><a name="l00841"></a><span class="lineno"> 841</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00842"></a><span class="lineno"> 842</span>&#160;</div><div class="line"><a name="l00843"></a><span class="lineno"> 843</span>&#160; <span class="keywordflow">case</span> MODE_PASTE:</div><div class="line"><a name="l00844"></a><span class="lineno"> 844</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_PASTE: {</div><div class="line"><a name="l00845"></a><span class="lineno"> 845</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: PASTE&quot;</span>), 1);</div><div class="line"><a name="l00846"></a><span class="lineno"> 846</span>&#160; }</div><div class="line"><a name="l00847"></a><span class="lineno"> 847</span>&#160;</div><div class="line"><a name="l00848"></a><span class="lineno"> 848</span>&#160; <span class="keywordflow">case</span> MODE_INSERT:</div><div class="line"><a name="l00849"></a><span class="lineno"> 849</span>&#160; <span class="keywordflow">case</span> MODE_INSERT_TEXT:</div><div class="line"><a name="l00850"></a><span class="lineno"> 850</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT:</div><div class="line"><a name="l00851"></a><span class="lineno"> 851</span>&#160; <span class="keywordflow">case</span> MODE_DRAG_INSERT_TEXT: {</div><div class="line"><a name="l00852"></a><span class="lineno"> 852</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: INSERT&quot;</span>), 1);</div><div class="line"><a name="l00853"></a><span class="lineno"> 853</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00854"></a><span class="lineno"> 854</span>&#160;</div><div class="line"><a name="l00855"></a><span class="lineno"> 855</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_ELEMENT:</div><div class="line"><a name="l00856"></a><span class="lineno"> 856</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_PICKBOX:</div><div class="line"><a name="l00857"></a><span class="lineno"> 857</span>&#160; <span class="keywordflow">case</span> MODE_MOVE_NODE:</div><div class="line"><a name="l00858"></a><span class="lineno"> 858</span>&#160; <span class="keywordflow">case</span> MODE_SELECTION_RECT:</div><div class="line"><a name="l00859"></a><span class="lineno"> 859</span>&#160; <span class="keywordflow">case</span> MODE_EDIT: {</div><div class="line"><a name="l00860"></a><span class="lineno"> 860</span>&#160; m_statusBar-&gt;SetStatusText(wxT(<span class="stringliteral">&quot;&quot;</span>));</div><div class="line"><a name="l00861"></a><span class="lineno"> 861</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;MODE: EDIT&quot;</span>), 1);</div><div class="line"><a name="l00862"></a><span class="lineno"> 862</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00863"></a><span class="lineno"> 863</span>&#160; }</div><div class="line"><a name="l00864"></a><span class="lineno"> 864</span>&#160;</div><div class="line"><a name="l00865"></a><span class="lineno"> 865</span>&#160; m_statusBar-&gt;SetStatusText(wxString::Format(_(<span class="stringliteral">&quot;ZOOM: %d%%&quot;</span>), (<span class="keywordtype">int</span>)(m_camera-&gt;GetScale() * 100.0)), 2);</div><div class="line"><a name="l00866"></a><span class="lineno"> 866</span>&#160; m_statusBar-&gt;SetStatusText(</div><div class="line"><a name="l00867"></a><span class="lineno"> 867</span>&#160; wxString::Format(wxT(<span class="stringliteral">&quot;X: %.1f Y: %.1f&quot;</span>), m_camera-&gt;GetMousePosition().m_x, m_camera-&gt;GetMousePosition().m_y),</div><div class="line"><a name="l00868"></a><span class="lineno"> 868</span>&#160; 3);</div><div class="line"><a name="l00869"></a><span class="lineno"> 869</span>&#160;}</div><div class="line"><a name="l00870"></a><span class="lineno"> 870</span>&#160;</div><div class="line"><a name="l00871"></a><span class="lineno"> 871</span>&#160;<span class="keywordtype">void</span> Workspace::OnPopupClick(wxCommandEvent&amp; event)</div><div class="line"><a name="l00872"></a><span class="lineno"> 872</span>&#160;{</div><div class="line"><a name="l00873"></a><span class="lineno"> 873</span>&#160; wxMenu* menu = <span class="keyword">static_cast&lt;</span>wxMenu*<span class="keyword">&gt;</span>(<span class="keyword">event</span>.GetEventObject());</div><div class="line"><a name="l00874"></a><span class="lineno"> 874</span>&#160; <a class="code" href="class_element.html">Element</a>* element = <span class="keyword">static_cast&lt;</span><a class="code" href="class_element.html">Element</a>*<span class="keyword">&gt;</span>(menu-&gt;GetClientData());</div><div class="line"><a name="l00875"></a><span class="lineno"> 875</span>&#160; <span class="keywordflow">switch</span>(event.GetId()) {</div><div class="line"><a name="l00876"></a><span class="lineno"> 876</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a>: {</div><div class="line"><a name="l00877"></a><span class="lineno"> 877</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ae1652eded3ccbd241a783691117418b2">ShowForm</a>(<span class="keyword">this</span>, element)) UpdateTextElements();</div><div class="line"><a name="l00878"></a><span class="lineno"> 878</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00879"></a><span class="lineno"> 879</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a>: {</div><div class="line"><a name="l00880"></a><span class="lineno"> 880</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l00881"></a><span class="lineno"> 881</span>&#160; line-&gt;AddNode(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00882"></a><span class="lineno"> 882</span>&#160; Redraw();</div><div class="line"><a name="l00883"></a><span class="lineno"> 883</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00884"></a><span class="lineno"> 884</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a>: {</div><div class="line"><a name="l00885"></a><span class="lineno"> 885</span>&#160; <a class="code" href="class_line.html">Line</a>* line = <span class="keyword">static_cast&lt;</span><a class="code" href="class_line.html">Line</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l00886"></a><span class="lineno"> 886</span>&#160; line-&gt;RemoveNode(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00887"></a><span class="lineno"> 887</span>&#160; Redraw();</div><div class="line"><a name="l00888"></a><span class="lineno"> 888</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00889"></a><span class="lineno"> 889</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a>: {</div><div class="line"><a name="l00890"></a><span class="lineno"> 890</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>();</div><div class="line"><a name="l00891"></a><span class="lineno"> 891</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00892"></a><span class="lineno"> 892</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00893"></a><span class="lineno"> 893</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00894"></a><span class="lineno"> 894</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00895"></a><span class="lineno"> 895</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00896"></a><span class="lineno"> 896</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00897"></a><span class="lineno"> 897</span>&#160; iElement-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent);</div><div class="line"><a name="l00898"></a><span class="lineno"> 898</span>&#160; }</div><div class="line"><a name="l00899"></a><span class="lineno"> 899</span>&#160; }</div><div class="line"><a name="l00900"></a><span class="lineno"> 900</span>&#160; }</div><div class="line"><a name="l00901"></a><span class="lineno"> 901</span>&#160; Redraw();</div><div class="line"><a name="l00902"></a><span class="lineno"> 902</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00903"></a><span class="lineno"> 903</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a>: {</div><div class="line"><a name="l00904"></a><span class="lineno"> 904</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l00905"></a><span class="lineno"> 905</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00906"></a><span class="lineno"> 906</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00907"></a><span class="lineno"> 907</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00908"></a><span class="lineno"> 908</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00909"></a><span class="lineno"> 909</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = iElement-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00910"></a><span class="lineno"> 910</span>&#160; <span class="keywordflow">if</span>(parent == element) {</div><div class="line"><a name="l00911"></a><span class="lineno"> 911</span>&#160; iElement-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent, <span class="keyword">false</span>);</div><div class="line"><a name="l00912"></a><span class="lineno"> 912</span>&#160; }</div><div class="line"><a name="l00913"></a><span class="lineno"> 913</span>&#160; }</div><div class="line"><a name="l00914"></a><span class="lineno"> 914</span>&#160; }</div><div class="line"><a name="l00915"></a><span class="lineno"> 915</span>&#160; Redraw();</div><div class="line"><a name="l00916"></a><span class="lineno"> 916</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00917"></a><span class="lineno"> 917</span>&#160; <span class="keywordflow">case</span> <a class="code" href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a>: {</div><div class="line"><a name="l00918"></a><span class="lineno"> 918</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00919"></a><span class="lineno"> 919</span>&#160; <a class="code" href="class_element.html">Element</a>* iElement = *it;</div><div class="line"><a name="l00920"></a><span class="lineno"> 920</span>&#160;</div><div class="line"><a name="l00921"></a><span class="lineno"> 921</span>&#160; <span class="keywordflow">if</span>(element == iElement) {</div><div class="line"><a name="l00922"></a><span class="lineno"> 922</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00923"></a><span class="lineno"> 923</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00924"></a><span class="lineno"> 924</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itEnd = childList.end(); itc != itEnd; ++itc) {</div><div class="line"><a name="l00925"></a><span class="lineno"> 925</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l00926"></a><span class="lineno"> 926</span>&#160; <span class="keywordflow">if</span>(child) {</div><div class="line"><a name="l00927"></a><span class="lineno"> 927</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(element);</div><div class="line"><a name="l00928"></a><span class="lineno"> 928</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(child);</div><div class="line"><a name="l00929"></a><span class="lineno"> 929</span>&#160; }</div><div class="line"><a name="l00930"></a><span class="lineno"> 930</span>&#160; }</div><div class="line"><a name="l00931"></a><span class="lineno"> 931</span>&#160; std::vector&lt;Element*&gt; parentList = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l00932"></a><span class="lineno"> 932</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itp = parentList.begin(), itEnd = parentList.end(); itp != itEnd; ++itp) {</div><div class="line"><a name="l00933"></a><span class="lineno"> 933</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itp;</div><div class="line"><a name="l00934"></a><span class="lineno"> 934</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l00935"></a><span class="lineno"> 935</span>&#160; parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(element);</div><div class="line"><a name="l00936"></a><span class="lineno"> 936</span>&#160; }</div><div class="line"><a name="l00937"></a><span class="lineno"> 937</span>&#160; }</div><div class="line"><a name="l00938"></a><span class="lineno"> 938</span>&#160;</div><div class="line"><a name="l00939"></a><span class="lineno"> 939</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itt = m_textList.begin(); itt != m_textList.end(); ++itt) {</div><div class="line"><a name="l00940"></a><span class="lineno"> 940</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *itt;</div><div class="line"><a name="l00941"></a><span class="lineno"> 941</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == element) {</div><div class="line"><a name="l00942"></a><span class="lineno"> 942</span>&#160; m_textList.erase(itt--);</div><div class="line"><a name="l00943"></a><span class="lineno"> 943</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l00944"></a><span class="lineno"> 944</span>&#160; }</div><div class="line"><a name="l00945"></a><span class="lineno"> 945</span>&#160; }</div><div class="line"><a name="l00946"></a><span class="lineno"> 946</span>&#160;</div><div class="line"><a name="l00947"></a><span class="lineno"> 947</span>&#160; m_elementList.erase(it);</div><div class="line"><a name="l00948"></a><span class="lineno"> 948</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l00949"></a><span class="lineno"> 949</span>&#160; menu-&gt;SetClientData(NULL);</div><div class="line"><a name="l00950"></a><span class="lineno"> 950</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l00951"></a><span class="lineno"> 951</span>&#160; }</div><div class="line"><a name="l00952"></a><span class="lineno"> 952</span>&#160; }</div><div class="line"><a name="l00953"></a><span class="lineno"> 953</span>&#160; } <span class="keywordflow">break</span>;</div><div class="line"><a name="l00954"></a><span class="lineno"> 954</span>&#160; }</div><div class="line"><a name="l00955"></a><span class="lineno"> 955</span>&#160;}</div><div class="line"><a name="l00956"></a><span class="lineno"> 956</span>&#160;</div><div class="line"><a name="l00957"></a><span class="lineno"> 957</span>&#160;<span class="keywordtype">void</span> Workspace::RotateSelectedElements(<span class="keywordtype">bool</span> clockwise)</div><div class="line"><a name="l00958"></a><span class="lineno"> 958</span>&#160;{</div><div class="line"><a name="l00959"></a><span class="lineno"> 959</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00960"></a><span class="lineno"> 960</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00961"></a><span class="lineno"> 961</span>&#160; <span class="comment">// Parent&#39;s element rotating...</span></div><div class="line"><a name="l00962"></a><span class="lineno"> 962</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l00963"></a><span class="lineno"> 963</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l00964"></a><span class="lineno"> 964</span>&#160; <span class="keywordflow">if</span>(parent) { <span class="comment">// Check if parent is not null</span></div><div class="line"><a name="l00965"></a><span class="lineno"> 965</span>&#160; <span class="keywordflow">if</span>(parent-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00966"></a><span class="lineno"> 966</span>&#160; element-&gt;<a class="code" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">RotateNode</a>(parent, clockwise);</div><div class="line"><a name="l00967"></a><span class="lineno"> 967</span>&#160; <span class="comment">// Update the positions used on motion action, the element will not be necessarily</span></div><div class="line"><a name="l00968"></a><span class="lineno"> 968</span>&#160; <span class="comment">// moved.</span></div><div class="line"><a name="l00969"></a><span class="lineno"> 969</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00970"></a><span class="lineno"> 970</span>&#160; }</div><div class="line"><a name="l00971"></a><span class="lineno"> 971</span>&#160; }</div><div class="line"><a name="l00972"></a><span class="lineno"> 972</span>&#160; }</div><div class="line"><a name="l00973"></a><span class="lineno"> 973</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00974"></a><span class="lineno"> 974</span>&#160; element-&gt;<a class="code" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Rotate</a>(clockwise);</div><div class="line"><a name="l00975"></a><span class="lineno"> 975</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00976"></a><span class="lineno"> 976</span>&#160; }</div><div class="line"><a name="l00977"></a><span class="lineno"> 977</span>&#160; }</div><div class="line"><a name="l00978"></a><span class="lineno"> 978</span>&#160;</div><div class="line"><a name="l00979"></a><span class="lineno"> 979</span>&#160; <span class="comment">// Rotate text element</span></div><div class="line"><a name="l00980"></a><span class="lineno"> 980</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); it++) {</div><div class="line"><a name="l00981"></a><span class="lineno"> 981</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l00982"></a><span class="lineno"> 982</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00983"></a><span class="lineno"> 983</span>&#160; text-&gt;<a class="code" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Rotate</a>(clockwise);</div><div class="line"><a name="l00984"></a><span class="lineno"> 984</span>&#160; text-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l00985"></a><span class="lineno"> 985</span>&#160; }</div><div class="line"><a name="l00986"></a><span class="lineno"> 986</span>&#160; }</div><div class="line"><a name="l00987"></a><span class="lineno"> 987</span>&#160; Redraw();</div><div class="line"><a name="l00988"></a><span class="lineno"> 988</span>&#160;}</div><div class="line"><a name="l00989"></a><span class="lineno"> 989</span>&#160;</div><div class="line"><a name="l00990"></a><span class="lineno"> 990</span>&#160;<span class="keywordtype">void</span> Workspace::DeleteSelectedElements()</div><div class="line"><a name="l00991"></a><span class="lineno"> 991</span>&#160;{</div><div class="line"><a name="l00992"></a><span class="lineno"> 992</span>&#160; <span class="comment">// Don&#39;t set the end of the list at the loop&#39;s begin.</span></div><div class="line"><a name="l00993"></a><span class="lineno"> 993</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); ++it) {</div><div class="line"><a name="l00994"></a><span class="lineno"> 994</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l00995"></a><span class="lineno"> 995</span>&#160;</div><div class="line"><a name="l00996"></a><span class="lineno"> 996</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l00997"></a><span class="lineno"> 997</span>&#160; <span class="comment">// Remove child/parent.</span></div><div class="line"><a name="l00998"></a><span class="lineno"> 998</span>&#160; std::vector&lt;Element*&gt; childList = element-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l00999"></a><span class="lineno"> 999</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itc = childList.begin(), itEnd = childList.end(); itc != itEnd; ++itc) {</div><div class="line"><a name="l01000"></a><span class="lineno"> 1000</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *itc;</div><div class="line"><a name="l01001"></a><span class="lineno"> 1001</span>&#160; <span class="keywordflow">if</span>(child) {</div><div class="line"><a name="l01002"></a><span class="lineno"> 1002</span>&#160; child-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(element);</div><div class="line"><a name="l01003"></a><span class="lineno"> 1003</span>&#160; element-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(child);</div><div class="line"><a name="l01004"></a><span class="lineno"> 1004</span>&#160; }</div><div class="line"><a name="l01005"></a><span class="lineno"> 1005</span>&#160; }</div><div class="line"><a name="l01006"></a><span class="lineno"> 1006</span>&#160; std::vector&lt;Element*&gt; parentList = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>();</div><div class="line"><a name="l01007"></a><span class="lineno"> 1007</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itp = parentList.begin(), itEnd = parentList.end(); itp != itEnd; ++itp) {</div><div class="line"><a name="l01008"></a><span class="lineno"> 1008</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = *itp;</div><div class="line"><a name="l01009"></a><span class="lineno"> 1009</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l01010"></a><span class="lineno"> 1010</span>&#160; parent-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(element);</div><div class="line"><a name="l01011"></a><span class="lineno"> 1011</span>&#160; }</div><div class="line"><a name="l01012"></a><span class="lineno"> 1012</span>&#160; }</div><div class="line"><a name="l01013"></a><span class="lineno"> 1013</span>&#160;</div><div class="line"><a name="l01014"></a><span class="lineno"> 1014</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> itt = m_textList.begin(); itt != m_textList.end(); ++itt) {</div><div class="line"><a name="l01015"></a><span class="lineno"> 1015</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *itt;</div><div class="line"><a name="l01016"></a><span class="lineno"> 1016</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == element) {</div><div class="line"><a name="l01017"></a><span class="lineno"> 1017</span>&#160; m_textList.erase(itt--);</div><div class="line"><a name="l01018"></a><span class="lineno"> 1018</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l01019"></a><span class="lineno"> 1019</span>&#160; }</div><div class="line"><a name="l01020"></a><span class="lineno"> 1020</span>&#160; }</div><div class="line"><a name="l01021"></a><span class="lineno"> 1021</span>&#160;</div><div class="line"><a name="l01022"></a><span class="lineno"> 1022</span>&#160; m_elementList.erase(it--);</div><div class="line"><a name="l01023"></a><span class="lineno"> 1023</span>&#160; <span class="keywordflow">if</span>(element) <span class="keyword">delete</span> element;</div><div class="line"><a name="l01024"></a><span class="lineno"> 1024</span>&#160; }</div><div class="line"><a name="l01025"></a><span class="lineno"> 1025</span>&#160; }</div><div class="line"><a name="l01026"></a><span class="lineno"> 1026</span>&#160;</div><div class="line"><a name="l01027"></a><span class="lineno"> 1027</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(); it != m_textList.end(); ++it) {</div><div class="line"><a name="l01028"></a><span class="lineno"> 1028</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01029"></a><span class="lineno"> 1029</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01030"></a><span class="lineno"> 1030</span>&#160; m_textList.erase(it--);</div><div class="line"><a name="l01031"></a><span class="lineno"> 1031</span>&#160; <span class="keywordflow">if</span>(text) <span class="keyword">delete</span> text;</div><div class="line"><a name="l01032"></a><span class="lineno"> 1032</span>&#160; }</div><div class="line"><a name="l01033"></a><span class="lineno"> 1033</span>&#160; }</div><div class="line"><a name="l01034"></a><span class="lineno"> 1034</span>&#160;</div><div class="line"><a name="l01035"></a><span class="lineno"> 1035</span>&#160; Redraw();</div><div class="line"><a name="l01036"></a><span class="lineno"> 1036</span>&#160;}</div><div class="line"><a name="l01037"></a><span class="lineno"> 1037</span>&#160;</div><div class="line"><a name="l01038"></a><span class="lineno"> 1038</span>&#160;<span class="keywordtype">bool</span> Workspace::GetElementsCorners(wxPoint2DDouble&amp; leftUpCorner,</div><div class="line"><a name="l01039"></a><span class="lineno"> 1039</span>&#160; wxPoint2DDouble&amp; rightDownCorner,</div><div class="line"><a name="l01040"></a><span class="lineno"> 1040</span>&#160; std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l01041"></a><span class="lineno"> 1041</span>&#160;{</div><div class="line"><a name="l01042"></a><span class="lineno"> 1042</span>&#160; <span class="keywordflow">if</span>(elementList.size() == 0) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01043"></a><span class="lineno"> 1043</span>&#160;</div><div class="line"><a name="l01044"></a><span class="lineno"> 1044</span>&#160; elementList[0]-&gt;CalculateBoundaries(leftUpCorner, rightDownCorner);</div><div class="line"><a name="l01045"></a><span class="lineno"> 1045</span>&#160;</div><div class="line"><a name="l01046"></a><span class="lineno"> 1046</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin() + 1, itEnd = elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01047"></a><span class="lineno"> 1047</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01048"></a><span class="lineno"> 1048</span>&#160; wxPoint2DDouble leftUp;</div><div class="line"><a name="l01049"></a><span class="lineno"> 1049</span>&#160; wxPoint2DDouble rightDown;</div><div class="line"><a name="l01050"></a><span class="lineno"> 1050</span>&#160; element-&gt;<a class="code" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">CalculateBoundaries</a>(leftUp, rightDown);</div><div class="line"><a name="l01051"></a><span class="lineno"> 1051</span>&#160; <span class="keywordflow">if</span>(leftUp.m_x &lt; leftUpCorner.m_x) leftUpCorner.m_x = leftUp.m_x;</div><div class="line"><a name="l01052"></a><span class="lineno"> 1052</span>&#160; <span class="keywordflow">if</span>(leftUp.m_y &lt; leftUpCorner.m_y) leftUpCorner.m_y = leftUp.m_y;</div><div class="line"><a name="l01053"></a><span class="lineno"> 1053</span>&#160; <span class="keywordflow">if</span>(rightDown.m_x &gt; rightDownCorner.m_x) rightDownCorner.m_x = rightDown.m_x;</div><div class="line"><a name="l01054"></a><span class="lineno"> 1054</span>&#160; <span class="keywordflow">if</span>(rightDown.m_y &gt; rightDownCorner.m_y) rightDownCorner.m_y = rightDown.m_y;</div><div class="line"><a name="l01055"></a><span class="lineno"> 1055</span>&#160; }</div><div class="line"><a name="l01056"></a><span class="lineno"> 1056</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01057"></a><span class="lineno"> 1057</span>&#160;}</div><div class="line"><a name="l01058"></a><span class="lineno"> 1058</span>&#160;</div><div class="line"><a name="l01059"></a><span class="lineno"> 1059</span>&#160;<span class="keywordtype">void</span> Workspace::Fit()</div><div class="line"><a name="l01060"></a><span class="lineno"> 1060</span>&#160;{</div><div class="line"><a name="l01061"></a><span class="lineno"> 1061</span>&#160; wxPoint2DDouble leftUpCorner(0, 0);</div><div class="line"><a name="l01062"></a><span class="lineno"> 1062</span>&#160; wxPoint2DDouble rightDownCorner(0, 0);</div><div class="line"><a name="l01063"></a><span class="lineno"> 1063</span>&#160; std::vector&lt;Element*&gt; elementList = GetElementList();</div><div class="line"><a name="l01064"></a><span class="lineno"> 1064</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01065"></a><span class="lineno"> 1065</span>&#160; elementList.push_back(*it);</div><div class="line"><a name="l01066"></a><span class="lineno"> 1066</span>&#160; }</div><div class="line"><a name="l01067"></a><span class="lineno"> 1067</span>&#160;</div><div class="line"><a name="l01068"></a><span class="lineno"> 1068</span>&#160; <span class="keywordflow">if</span>(!GetElementsCorners(leftUpCorner, rightDownCorner, elementList)) <span class="keywordflow">return</span>;</div><div class="line"><a name="l01069"></a><span class="lineno"> 1069</span>&#160; wxPoint2DDouble middleCoords = (leftUpCorner + rightDownCorner) / 2.0;</div><div class="line"><a name="l01070"></a><span class="lineno"> 1070</span>&#160;</div><div class="line"><a name="l01071"></a><span class="lineno"> 1071</span>&#160; <span class="keywordtype">int</span> width = 0.0;</div><div class="line"><a name="l01072"></a><span class="lineno"> 1072</span>&#160; <span class="keywordtype">int</span> height = 0.0;</div><div class="line"><a name="l01073"></a><span class="lineno"> 1073</span>&#160; GetSize(&amp;width, &amp;height);</div><div class="line"><a name="l01074"></a><span class="lineno"> 1074</span>&#160;</div><div class="line"><a name="l01075"></a><span class="lineno"> 1075</span>&#160; <span class="keywordtype">double</span> scaleX = double(width) / (rightDownCorner.m_x - leftUpCorner.m_x);</div><div class="line"><a name="l01076"></a><span class="lineno"> 1076</span>&#160; <span class="keywordtype">double</span> scaleY = double(height) / (rightDownCorner.m_y - leftUpCorner.m_y);</div><div class="line"><a name="l01077"></a><span class="lineno"> 1077</span>&#160;</div><div class="line"><a name="l01078"></a><span class="lineno"> 1078</span>&#160; <span class="keywordtype">double</span> scale = scaleX &lt; scaleY ? scaleX : scaleY;</div><div class="line"><a name="l01079"></a><span class="lineno"> 1079</span>&#160; <span class="keywordflow">if</span>(scale &gt; m_camera-&gt;GetZoomMax()) scale = m_camera-&gt;GetZoomMax();</div><div class="line"><a name="l01080"></a><span class="lineno"> 1080</span>&#160; <span class="keywordflow">if</span>(scale &lt; m_camera-&gt;GetZoomMin()) scale = m_camera-&gt;GetZoomMin();</div><div class="line"><a name="l01081"></a><span class="lineno"> 1081</span>&#160;</div><div class="line"><a name="l01082"></a><span class="lineno"> 1082</span>&#160; m_camera-&gt;SetScale(scale);</div><div class="line"><a name="l01083"></a><span class="lineno"> 1083</span>&#160;</div><div class="line"><a name="l01084"></a><span class="lineno"> 1084</span>&#160; m_camera-&gt;StartTranslation(middleCoords);</div><div class="line"><a name="l01085"></a><span class="lineno"> 1085</span>&#160; m_camera-&gt;SetTranslation(wxPoint2DDouble(width / 2, height / 2));</div><div class="line"><a name="l01086"></a><span class="lineno"> 1086</span>&#160; Redraw();</div><div class="line"><a name="l01087"></a><span class="lineno"> 1087</span>&#160;}</div><div class="line"><a name="l01088"></a><span class="lineno"> 1088</span>&#160;</div><div class="line"><a name="l01089"></a><span class="lineno"> 1089</span>&#160;<span class="keywordtype">void</span> Workspace::ValidateBusesVoltages(<a class="code" href="class_element.html">Element</a>* initialBus)</div><div class="line"><a name="l01090"></a><span class="lineno"> 1090</span>&#160;{</div><div class="line"><a name="l01091"></a><span class="lineno"> 1091</span>&#160; <span class="keywordtype">double</span> nominalVoltage = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(initialBus)-&gt;GetElectricalData().nominalVoltage;</div><div class="line"><a name="l01092"></a><span class="lineno"> 1092</span>&#160; <a class="code" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> nominalVoltageUnit = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(initialBus)-&gt;GetElectricalData().nominalVoltageUnit;</div><div class="line"><a name="l01093"></a><span class="lineno"> 1093</span>&#160;</div><div class="line"><a name="l01094"></a><span class="lineno"> 1094</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); it++) {</div><div class="line"><a name="l01095"></a><span class="lineno"> 1095</span>&#160; <a class="code" href="class_element.html">Element</a>* child = *it;</div><div class="line"><a name="l01096"></a><span class="lineno"> 1096</span>&#160;</div><div class="line"><a name="l01097"></a><span class="lineno"> 1097</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*child) == <span class="keyword">typeid</span>(<a class="code" href="class_line.html">Line</a>)) {</div><div class="line"><a name="l01098"></a><span class="lineno"> 1098</span>&#160; <span class="keywordflow">if</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0] &amp;&amp; child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1]) {</div><div class="line"><a name="l01099"></a><span class="lineno"> 1099</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data1 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;GetElectricalData();</div><div class="line"><a name="l01100"></a><span class="lineno"> 1100</span>&#160; <a class="code" href="struct_bus_electrical_data.html">BusElectricalData</a> data2 = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;GetElectricalData();</div><div class="line"><a name="l01101"></a><span class="lineno"> 1101</span>&#160;</div><div class="line"><a name="l01102"></a><span class="lineno"> 1102</span>&#160; <span class="keywordflow">if</span>(data1.nominalVoltage != data2.nominalVoltage ||</div><div class="line"><a name="l01103"></a><span class="lineno"> 1103</span>&#160; data1.nominalVoltageUnit != data2.nominalVoltageUnit) {</div><div class="line"><a name="l01104"></a><span class="lineno"> 1104</span>&#160; data1.nominalVoltage = nominalVoltage;</div><div class="line"><a name="l01105"></a><span class="lineno"> 1105</span>&#160; data2.nominalVoltage = nominalVoltage;</div><div class="line"><a name="l01106"></a><span class="lineno"> 1106</span>&#160; data1.nominalVoltageUnit = nominalVoltageUnit;</div><div class="line"><a name="l01107"></a><span class="lineno"> 1107</span>&#160; data2.nominalVoltageUnit = nominalVoltageUnit;</div><div class="line"><a name="l01108"></a><span class="lineno"> 1108</span>&#160;</div><div class="line"><a name="l01109"></a><span class="lineno"> 1109</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[0])-&gt;SetElectricalData(data1);</div><div class="line"><a name="l01110"></a><span class="lineno"> 1110</span>&#160; <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[1])-&gt;SetElectricalData(data2);</div><div class="line"><a name="l01111"></a><span class="lineno"> 1111</span>&#160;</div><div class="line"><a name="l01112"></a><span class="lineno"> 1112</span>&#160; it = m_elementList.begin(); <span class="comment">// Restart search.</span></div><div class="line"><a name="l01113"></a><span class="lineno"> 1113</span>&#160; }</div><div class="line"><a name="l01114"></a><span class="lineno"> 1114</span>&#160; }</div><div class="line"><a name="l01115"></a><span class="lineno"> 1115</span>&#160; }</div><div class="line"><a name="l01116"></a><span class="lineno"> 1116</span>&#160; }</div><div class="line"><a name="l01117"></a><span class="lineno"> 1117</span>&#160;</div><div class="line"><a name="l01118"></a><span class="lineno"> 1118</span>&#160; <span class="comment">// ValidateElementsVoltages();</span></div><div class="line"><a name="l01119"></a><span class="lineno"> 1119</span>&#160;}</div><div class="line"><a name="l01120"></a><span class="lineno"> 1120</span>&#160;</div><div class="line"><a name="l01121"></a><span class="lineno"> 1121</span>&#160;<span class="keywordtype">void</span> Workspace::ValidateElementsVoltages()</div><div class="line"><a name="l01122"></a><span class="lineno"> 1122</span>&#160;{</div><div class="line"><a name="l01123"></a><span class="lineno"> 1123</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(); it != m_elementList.end(); it++) {</div><div class="line"><a name="l01124"></a><span class="lineno"> 1124</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* child = *it;</div><div class="line"><a name="l01125"></a><span class="lineno"> 1125</span>&#160;</div><div class="line"><a name="l01126"></a><span class="lineno"> 1126</span>&#160; std::vector&lt;double&gt; nominalVoltage;</div><div class="line"><a name="l01127"></a><span class="lineno"> 1127</span>&#160; std::vector&lt;ElectricalUnit&gt; nominalVoltageUnit;</div><div class="line"><a name="l01128"></a><span class="lineno"> 1128</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l01129"></a><span class="lineno"> 1129</span>&#160; <a class="code" href="class_bus.html">Bus</a>* parent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(child-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i]);</div><div class="line"><a name="l01130"></a><span class="lineno"> 1130</span>&#160; <span class="keywordflow">if</span>(parent) {</div><div class="line"><a name="l01131"></a><span class="lineno"> 1131</span>&#160; nominalVoltage.push_back(parent-&gt;GetElectricalData().nominalVoltage);</div><div class="line"><a name="l01132"></a><span class="lineno"> 1132</span>&#160; nominalVoltageUnit.push_back(parent-&gt;GetElectricalData().nominalVoltageUnit);</div><div class="line"><a name="l01133"></a><span class="lineno"> 1133</span>&#160; }</div><div class="line"><a name="l01134"></a><span class="lineno"> 1134</span>&#160; }</div><div class="line"><a name="l01135"></a><span class="lineno"> 1135</span>&#160; child-&gt;<a class="code" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">SetNominalVoltage</a>(nominalVoltage, nominalVoltageUnit);</div><div class="line"><a name="l01136"></a><span class="lineno"> 1136</span>&#160; }</div><div class="line"><a name="l01137"></a><span class="lineno"> 1137</span>&#160;}</div><div class="line"><a name="l01138"></a><span class="lineno"> 1138</span>&#160;</div><div class="line"><a name="l01139"></a><span class="lineno"> 1139</span>&#160;<span class="keywordtype">bool</span> Workspace::RunPowerFlow()</div><div class="line"><a name="l01140"></a><span class="lineno"> 1140</span>&#160;{</div><div class="line"><a name="l01141"></a><span class="lineno"> 1141</span>&#160; <a class="code" href="class_power_flow.html">PowerFlow</a> pf(GetElementList());</div><div class="line"><a name="l01142"></a><span class="lineno"> 1142</span>&#160; <span class="keywordtype">bool</span> result = pf.RunGaussSeidel();</div><div class="line"><a name="l01143"></a><span class="lineno"> 1143</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01144"></a><span class="lineno"> 1144</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, pf.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01145"></a><span class="lineno"> 1145</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01146"></a><span class="lineno"> 1146</span>&#160; }</div><div class="line"><a name="l01147"></a><span class="lineno"> 1147</span>&#160;</div><div class="line"><a name="l01148"></a><span class="lineno"> 1148</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01149"></a><span class="lineno"> 1149</span>&#160; Redraw();</div><div class="line"><a name="l01150"></a><span class="lineno"> 1150</span>&#160;</div><div class="line"><a name="l01151"></a><span class="lineno"> 1151</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01152"></a><span class="lineno"> 1152</span>&#160;}</div><div class="line"><a name="l01153"></a><span class="lineno"> 1153</span>&#160;</div><div class="line"><a name="l01154"></a><span class="lineno"> 1154</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateTextElements()</div><div class="line"><a name="l01155"></a><span class="lineno"> 1155</span>&#160;{</div><div class="line"><a name="l01156"></a><span class="lineno"> 1156</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01157"></a><span class="lineno"> 1157</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01158"></a><span class="lineno"> 1158</span>&#160; text-&gt;UpdateText(m_properties-&gt;GetSimulationPropertiesData().basePower);</div><div class="line"><a name="l01159"></a><span class="lineno"> 1159</span>&#160; }</div><div class="line"><a name="l01160"></a><span class="lineno"> 1160</span>&#160;}</div><div class="line"><a name="l01161"></a><span class="lineno"> 1161</span>&#160;</div><div class="line"><a name="l01162"></a><span class="lineno"> 1162</span>&#160;<span class="keywordtype">void</span> Workspace::CopySelection()</div><div class="line"><a name="l01163"></a><span class="lineno"> 1163</span>&#160;{</div><div class="line"><a name="l01164"></a><span class="lineno"> 1164</span>&#160; UpdateElementsID();</div><div class="line"><a name="l01165"></a><span class="lineno"> 1165</span>&#160; std::vector&lt;Element*&gt; selectedElements;</div><div class="line"><a name="l01166"></a><span class="lineno"> 1166</span>&#160; <span class="comment">// The buses need to be numerated to associate the child&#39;s parents to the copies.</span></div><div class="line"><a name="l01167"></a><span class="lineno"> 1167</span>&#160; <span class="keywordtype">int</span> busNumber = 0;</div><div class="line"><a name="l01168"></a><span class="lineno"> 1168</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01169"></a><span class="lineno"> 1169</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01170"></a><span class="lineno"> 1170</span>&#160; <span class="keywordflow">if</span>(<span class="keyword">typeid</span>(*element) == <span class="keyword">typeid</span>(<a class="code" href="class_bus.html">Bus</a>)) {</div><div class="line"><a name="l01171"></a><span class="lineno"> 1171</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(element);</div><div class="line"><a name="l01172"></a><span class="lineno"> 1172</span>&#160; <span class="keyword">auto</span> data = bus-&gt;GetElectricalData();</div><div class="line"><a name="l01173"></a><span class="lineno"> 1173</span>&#160; data.number = busNumber;</div><div class="line"><a name="l01174"></a><span class="lineno"> 1174</span>&#160; bus-&gt;SetElectricalData(data);</div><div class="line"><a name="l01175"></a><span class="lineno"> 1175</span>&#160; busNumber++;</div><div class="line"><a name="l01176"></a><span class="lineno"> 1176</span>&#160; }</div><div class="line"><a name="l01177"></a><span class="lineno"> 1177</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01178"></a><span class="lineno"> 1178</span>&#160; selectedElements.push_back(element);</div><div class="line"><a name="l01179"></a><span class="lineno"> 1179</span>&#160; }</div><div class="line"><a name="l01180"></a><span class="lineno"> 1180</span>&#160; }</div><div class="line"><a name="l01181"></a><span class="lineno"> 1181</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01182"></a><span class="lineno"> 1182</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01183"></a><span class="lineno"> 1183</span>&#160; <span class="keywordflow">if</span>(text-&gt;<a class="code" href="class_element.html#ac42604083db300d20c010b50084de91b">IsSelected</a>()) {</div><div class="line"><a name="l01184"></a><span class="lineno"> 1184</span>&#160; selectedElements.push_back(text);</div><div class="line"><a name="l01185"></a><span class="lineno"> 1185</span>&#160; }</div><div class="line"><a name="l01186"></a><span class="lineno"> 1186</span>&#160; }</div><div class="line"><a name="l01187"></a><span class="lineno"> 1187</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a>* dataObject = <span class="keyword">new</span> <a class="code" href="class_element_data_object.html">ElementDataObject</a>(selectedElements);</div><div class="line"><a name="l01188"></a><span class="lineno"> 1188</span>&#160; wxTheClipboard-&gt;SetData(dataObject);</div><div class="line"><a name="l01189"></a><span class="lineno"> 1189</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01190"></a><span class="lineno"> 1190</span>&#160;}</div><div class="line"><a name="l01191"></a><span class="lineno"> 1191</span>&#160;</div><div class="line"><a name="l01192"></a><span class="lineno"> 1192</span>&#160;<span class="keywordtype">bool</span> Workspace::Paste()</div><div class="line"><a name="l01193"></a><span class="lineno"> 1193</span>&#160;{</div><div class="line"><a name="l01194"></a><span class="lineno"> 1194</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;Open()) {</div><div class="line"><a name="l01195"></a><span class="lineno"> 1195</span>&#160; <a class="code" href="class_element_data_object.html">ElementDataObject</a> dataObject;</div><div class="line"><a name="l01196"></a><span class="lineno"> 1196</span>&#160;</div><div class="line"><a name="l01197"></a><span class="lineno"> 1197</span>&#160; <span class="keywordflow">if</span>(wxTheClipboard-&gt;IsSupported(wxDataFormat(<span class="stringliteral">&quot;PSPCopy&quot;</span>))) {</div><div class="line"><a name="l01198"></a><span class="lineno"> 1198</span>&#160; <span class="keywordflow">if</span>(!wxTheClipboard-&gt;GetData(dataObject)) {</div><div class="line"><a name="l01199"></a><span class="lineno"> 1199</span>&#160; wxMessageDialog dialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to paste from clipboard.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l01200"></a><span class="lineno"> 1200</span>&#160; wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);</div><div class="line"><a name="l01201"></a><span class="lineno"> 1201</span>&#160; dialog.ShowModal();</div><div class="line"><a name="l01202"></a><span class="lineno"> 1202</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01203"></a><span class="lineno"> 1203</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01204"></a><span class="lineno"> 1204</span>&#160; }</div><div class="line"><a name="l01205"></a><span class="lineno"> 1205</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01206"></a><span class="lineno"> 1206</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01207"></a><span class="lineno"> 1207</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01208"></a><span class="lineno"> 1208</span>&#160; }</div><div class="line"><a name="l01209"></a><span class="lineno"> 1209</span>&#160; wxTheClipboard-&gt;Close();</div><div class="line"><a name="l01210"></a><span class="lineno"> 1210</span>&#160;</div><div class="line"><a name="l01211"></a><span class="lineno"> 1211</span>&#160; UnselectAll();</div><div class="line"><a name="l01212"></a><span class="lineno"> 1212</span>&#160;</div><div class="line"><a name="l01213"></a><span class="lineno"> 1213</span>&#160; std::vector&lt;Element*&gt; pastedElements;</div><div class="line"><a name="l01214"></a><span class="lineno"> 1214</span>&#160; <a class="code" href="struct_elements_lists.html">ElementsLists</a>* elementsLists = dataObject.GetElementsLists();</div><div class="line"><a name="l01215"></a><span class="lineno"> 1215</span>&#160;</div><div class="line"><a name="l01216"></a><span class="lineno"> 1216</span>&#160; <span class="comment">// Paste buses (parents).</span></div><div class="line"><a name="l01217"></a><span class="lineno"> 1217</span>&#160; <span class="keyword">auto</span> parentList = elementsLists-&gt;parentList;</div><div class="line"><a name="l01218"></a><span class="lineno"> 1218</span>&#160; std::vector&lt;Bus*&gt; pastedBusList; <span class="comment">// To set new parents;</span></div><div class="line"><a name="l01219"></a><span class="lineno"> 1219</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = parentList.begin(), itEnd = parentList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01220"></a><span class="lineno"> 1220</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l01221"></a><span class="lineno"> 1221</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l01222"></a><span class="lineno"> 1222</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01223"></a><span class="lineno"> 1223</span>&#160; pastedBusList.push_back(static_cast&lt;Bus*&gt;(copy));</div><div class="line"><a name="l01224"></a><span class="lineno"> 1224</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(copy));</div><div class="line"><a name="l01225"></a><span class="lineno"> 1225</span>&#160; }</div><div class="line"><a name="l01226"></a><span class="lineno"> 1226</span>&#160; }</div><div class="line"><a name="l01227"></a><span class="lineno"> 1227</span>&#160;</div><div class="line"><a name="l01228"></a><span class="lineno"> 1228</span>&#160; <span class="comment">// Paste other elements.</span></div><div class="line"><a name="l01229"></a><span class="lineno"> 1229</span>&#160; <span class="keyword">auto</span> elementLists = elementsLists-&gt;elementList;</div><div class="line"><a name="l01230"></a><span class="lineno"> 1230</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementLists.begin(), itEnd = elementLists.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01231"></a><span class="lineno"> 1231</span>&#160; <a class="code" href="class_element.html">Element</a>* copy = (*it)-&gt;<a class="code" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">GetCopy</a>();</div><div class="line"><a name="l01232"></a><span class="lineno"> 1232</span>&#160; <span class="keywordflow">if</span>(copy) {</div><div class="line"><a name="l01233"></a><span class="lineno"> 1233</span>&#160; <span class="comment">// Check if is text element</span></div><div class="line"><a name="l01234"></a><span class="lineno"> 1234</span>&#160; <span class="keywordflow">if</span>(<a class="code" href="class_text.html">Text</a>* text = dynamic_cast&lt;Text*&gt;(copy)) {</div><div class="line"><a name="l01235"></a><span class="lineno"> 1235</span>&#160; <span class="comment">// Check if element associated with the text exists.</span></div><div class="line"><a name="l01236"></a><span class="lineno"> 1236</span>&#160; <span class="keywordtype">bool</span> elementExist = <span class="keyword">false</span>;</div><div class="line"><a name="l01237"></a><span class="lineno"> 1237</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)m_elementList.size(); i++) {</div><div class="line"><a name="l01238"></a><span class="lineno"> 1238</span>&#160; <span class="keywordflow">if</span>(text-&gt;GetElement() == m_elementList[i]) {</div><div class="line"><a name="l01239"></a><span class="lineno"> 1239</span>&#160; elementExist = <span class="keyword">true</span>;</div><div class="line"><a name="l01240"></a><span class="lineno"> 1240</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01241"></a><span class="lineno"> 1241</span>&#160; }</div><div class="line"><a name="l01242"></a><span class="lineno"> 1242</span>&#160; }</div><div class="line"><a name="l01243"></a><span class="lineno"> 1243</span>&#160; <span class="keywordflow">if</span>(elementExist) {</div><div class="line"><a name="l01244"></a><span class="lineno"> 1244</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01245"></a><span class="lineno"> 1245</span>&#160; m_textList.push_back(text);</div><div class="line"><a name="l01246"></a><span class="lineno"> 1246</span>&#160; }</div><div class="line"><a name="l01247"></a><span class="lineno"> 1247</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01248"></a><span class="lineno"> 1248</span>&#160; <span class="comment">// Change the parent if copied, otherwise remove it.</span></div><div class="line"><a name="l01249"></a><span class="lineno"> 1249</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> j = 0; j &lt; (int)copy-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); j++) {</div><div class="line"><a name="l01250"></a><span class="lineno"> 1250</span>&#160; <a class="code" href="class_bus.html">Bus</a>* currentParent = <span class="keyword">static_cast&lt;</span><a class="code" href="class_bus.html">Bus</a>*<span class="keyword">&gt;</span>(copy-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[j]);</div><div class="line"><a name="l01251"></a><span class="lineno"> 1251</span>&#160; <span class="keywordflow">if</span>(currentParent) {</div><div class="line"><a name="l01252"></a><span class="lineno"> 1252</span>&#160; <span class="keywordtype">int</span> parentID = currentParent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>();</div><div class="line"><a name="l01253"></a><span class="lineno"> 1253</span>&#160; <span class="keywordtype">bool</span> parentCopied = <span class="keyword">false</span>;</div><div class="line"><a name="l01254"></a><span class="lineno"> 1254</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> k = 0; k &lt; (int)pastedBusList.size(); k++) {</div><div class="line"><a name="l01255"></a><span class="lineno"> 1255</span>&#160; <a class="code" href="class_bus.html">Bus</a>* newParent = pastedBusList[k];</div><div class="line"><a name="l01256"></a><span class="lineno"> 1256</span>&#160; <span class="keywordflow">if</span>(parentID == newParent-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l01257"></a><span class="lineno"> 1257</span>&#160; parentCopied = <span class="keyword">true</span>;</div><div class="line"><a name="l01258"></a><span class="lineno"> 1258</span>&#160; copy-&gt;<a class="code" href="class_element.html#a74ec9a279ac0127550e00941206dddb1">ReplaceParent</a>(currentParent, newParent);</div><div class="line"><a name="l01259"></a><span class="lineno"> 1259</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01260"></a><span class="lineno"> 1260</span>&#160; }</div><div class="line"><a name="l01261"></a><span class="lineno"> 1261</span>&#160; }</div><div class="line"><a name="l01262"></a><span class="lineno"> 1262</span>&#160; <span class="keywordflow">if</span>(!parentCopied) copy-&gt;<a class="code" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">RemoveParent</a>(currentParent);</div><div class="line"><a name="l01263"></a><span class="lineno"> 1263</span>&#160; }</div><div class="line"><a name="l01264"></a><span class="lineno"> 1264</span>&#160; }</div><div class="line"><a name="l01265"></a><span class="lineno"> 1265</span>&#160;</div><div class="line"><a name="l01266"></a><span class="lineno"> 1266</span>&#160; pastedElements.push_back(copy);</div><div class="line"><a name="l01267"></a><span class="lineno"> 1267</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(copy));</div><div class="line"><a name="l01268"></a><span class="lineno"> 1268</span>&#160; }</div><div class="line"><a name="l01269"></a><span class="lineno"> 1269</span>&#160; }</div><div class="line"><a name="l01270"></a><span class="lineno"> 1270</span>&#160; }</div><div class="line"><a name="l01271"></a><span class="lineno"> 1271</span>&#160;</div><div class="line"><a name="l01272"></a><span class="lineno"> 1272</span>&#160; <span class="comment">// Update buses childs</span></div><div class="line"><a name="l01273"></a><span class="lineno"> 1273</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = pastedBusList.begin(), itEnd = pastedBusList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01274"></a><span class="lineno"> 1274</span>&#160; <a class="code" href="class_bus.html">Bus</a>* bus = *it;</div><div class="line"><a name="l01275"></a><span class="lineno"> 1275</span>&#160; std::vector&lt;Element*&gt; childList = bus-&gt;<a class="code" href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">GetChildList</a>();</div><div class="line"><a name="l01276"></a><span class="lineno"> 1276</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = childList.begin(), itEnd = childList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01277"></a><span class="lineno"> 1277</span>&#160; <a class="code" href="class_element.html">Element</a>* currentChild = *it;</div><div class="line"><a name="l01278"></a><span class="lineno"> 1278</span>&#160; <span class="keywordtype">int</span> childID = currentChild-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>();</div><div class="line"><a name="l01279"></a><span class="lineno"> 1279</span>&#160; <span class="keywordtype">bool</span> childCopied = <span class="keyword">false</span>;</div><div class="line"><a name="l01280"></a><span class="lineno"> 1280</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)pastedElements.size(); i++) {</div><div class="line"><a name="l01281"></a><span class="lineno"> 1281</span>&#160; <a class="code" href="class_element.html">Element</a>* newChild = pastedElements[i];</div><div class="line"><a name="l01282"></a><span class="lineno"> 1282</span>&#160; <span class="keywordflow">if</span>(childID == newChild-&gt;<a class="code" href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">GetID</a>()) {</div><div class="line"><a name="l01283"></a><span class="lineno"> 1283</span>&#160; childCopied = <span class="keyword">true</span>;</div><div class="line"><a name="l01284"></a><span class="lineno"> 1284</span>&#160; bus-&gt;<a class="code" href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">ReplaceChild</a>(currentChild, newChild);</div><div class="line"><a name="l01285"></a><span class="lineno"> 1285</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01286"></a><span class="lineno"> 1286</span>&#160; }</div><div class="line"><a name="l01287"></a><span class="lineno"> 1287</span>&#160; }</div><div class="line"><a name="l01288"></a><span class="lineno"> 1288</span>&#160; <span class="keywordflow">if</span>(!childCopied) bus-&gt;<a class="code" href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">RemoveChild</a>(currentChild);</div><div class="line"><a name="l01289"></a><span class="lineno"> 1289</span>&#160; }</div><div class="line"><a name="l01290"></a><span class="lineno"> 1290</span>&#160; }</div><div class="line"><a name="l01291"></a><span class="lineno"> 1291</span>&#160;</div><div class="line"><a name="l01292"></a><span class="lineno"> 1292</span>&#160; <span class="comment">// Move elements (and nodes) to the mouse position.</span></div><div class="line"><a name="l01293"></a><span class="lineno"> 1293</span>&#160; <span class="comment">// The start position it&#39;s the center of the pasted objects.</span></div><div class="line"><a name="l01294"></a><span class="lineno"> 1294</span>&#160; wxPoint2DDouble leftUpCorner, rightDownCorner;</div><div class="line"><a name="l01295"></a><span class="lineno"> 1295</span>&#160; GetElementsCorners(leftUpCorner, rightDownCorner, pastedElements);</div><div class="line"><a name="l01296"></a><span class="lineno"> 1296</span>&#160; wxPoint2DDouble startPosition = (leftUpCorner + rightDownCorner) / 2.0;</div><div class="line"><a name="l01297"></a><span class="lineno"> 1297</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = pastedElements.begin(), itEnd = pastedElements.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01298"></a><span class="lineno"> 1298</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01299"></a><span class="lineno"> 1299</span>&#160; element-&gt;<a class="code" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">StartMove</a>(startPosition);</div><div class="line"><a name="l01300"></a><span class="lineno"> 1300</span>&#160; element-&gt;<a class="code" href="class_element.html#abe884d99d12d5252e18956162115b025">Move</a>(m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l01301"></a><span class="lineno"> 1301</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">int</span> i = 0; i &lt; (int)element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>().size(); i++) {</div><div class="line"><a name="l01302"></a><span class="lineno"> 1302</span>&#160; <a class="code" href="class_element.html">Element</a>* parent = element-&gt;<a class="code" href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">GetParentList</a>()[i];</div><div class="line"><a name="l01303"></a><span class="lineno"> 1303</span>&#160; element-&gt;<a class="code" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">MoveNode</a>(parent, m_camera-&gt;GetMousePosition());</div><div class="line"><a name="l01304"></a><span class="lineno"> 1304</span>&#160; }</div><div class="line"><a name="l01305"></a><span class="lineno"> 1305</span>&#160; }</div><div class="line"><a name="l01306"></a><span class="lineno"> 1306</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01307"></a><span class="lineno"> 1307</span>&#160; wxMessageDialog dialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;It was not possible to paste from clipboard.&quot;</span>), _(<span class="stringliteral">&quot;Error&quot;</span>),</div><div class="line"><a name="l01308"></a><span class="lineno"> 1308</span>&#160; wxOK | wxCENTER | wxICON_ERROR, wxDefaultPosition);</div><div class="line"><a name="l01309"></a><span class="lineno"> 1309</span>&#160; dialog.ShowModal();</div><div class="line"><a name="l01310"></a><span class="lineno"> 1310</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01311"></a><span class="lineno"> 1311</span>&#160; }</div><div class="line"><a name="l01312"></a><span class="lineno"> 1312</span>&#160;</div><div class="line"><a name="l01313"></a><span class="lineno"> 1313</span>&#160; UpdateElementsID();</div><div class="line"><a name="l01314"></a><span class="lineno"> 1314</span>&#160; m_mode = MODE_PASTE;</div><div class="line"><a name="l01315"></a><span class="lineno"> 1315</span>&#160; m_statusBar-&gt;SetStatusText(_(<span class="stringliteral">&quot;Click to paste.&quot;</span>));</div><div class="line"><a name="l01316"></a><span class="lineno"> 1316</span>&#160; UpdateStatusBar();</div><div class="line"><a name="l01317"></a><span class="lineno"> 1317</span>&#160; Redraw();</div><div class="line"><a name="l01318"></a><span class="lineno"> 1318</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01319"></a><span class="lineno"> 1319</span>&#160;}</div><div class="line"><a name="l01320"></a><span class="lineno"> 1320</span>&#160;</div><div class="line"><a name="l01321"></a><span class="lineno"> 1321</span>&#160;<span class="keywordtype">void</span> Workspace::UnselectAll()</div><div class="line"><a name="l01322"></a><span class="lineno"> 1322</span>&#160;{</div><div class="line"><a name="l01323"></a><span class="lineno"> 1323</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01324"></a><span class="lineno"> 1324</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01325"></a><span class="lineno"> 1325</span>&#160; element-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l01326"></a><span class="lineno"> 1326</span>&#160; }</div><div class="line"><a name="l01327"></a><span class="lineno"> 1327</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; it++) {</div><div class="line"><a name="l01328"></a><span class="lineno"> 1328</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01329"></a><span class="lineno"> 1329</span>&#160; text-&gt;<a class="code" href="class_element.html#a5279e5a513391d399d576bcb83df736b">SetSelected</a>(<span class="keyword">false</span>);</div><div class="line"><a name="l01330"></a><span class="lineno"> 1330</span>&#160; }</div><div class="line"><a name="l01331"></a><span class="lineno"> 1331</span>&#160;}</div><div class="line"><a name="l01332"></a><span class="lineno"> 1332</span>&#160;</div><div class="line"><a name="l01333"></a><span class="lineno"> 1333</span>&#160;<span class="keywordtype">void</span> Workspace::UpdateElementsID()</div><div class="line"><a name="l01334"></a><span class="lineno"> 1334</span>&#160;{</div><div class="line"><a name="l01335"></a><span class="lineno"> 1335</span>&#160; <span class="keywordtype">int</span> <span class="keywordtype">id</span> = 0;</div><div class="line"><a name="l01336"></a><span class="lineno"> 1336</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01337"></a><span class="lineno"> 1337</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01338"></a><span class="lineno"> 1338</span>&#160; element-&gt;<a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l01339"></a><span class="lineno"> 1339</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l01340"></a><span class="lineno"> 1340</span>&#160; }</div><div class="line"><a name="l01341"></a><span class="lineno"> 1341</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01342"></a><span class="lineno"> 1342</span>&#160; <a class="code" href="class_text.html">Text</a>* text = *it;</div><div class="line"><a name="l01343"></a><span class="lineno"> 1343</span>&#160; text-&gt;<a class="code" href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">SetID</a>(<span class="keywordtype">id</span>);</div><div class="line"><a name="l01344"></a><span class="lineno"> 1344</span>&#160; <span class="keywordtype">id</span>++;</div><div class="line"><a name="l01345"></a><span class="lineno"> 1345</span>&#160; }</div><div class="line"><a name="l01346"></a><span class="lineno"> 1346</span>&#160;}</div><div class="line"><a name="l01347"></a><span class="lineno"> 1347</span>&#160;<span class="keywordtype">void</span> Workspace::OnTimer(wxTimerEvent&amp; event)</div><div class="line"><a name="l01348"></a><span class="lineno"> 1348</span>&#160;{</div><div class="line"><a name="l01349"></a><span class="lineno"> 1349</span>&#160; <span class="keywordflow">if</span>(m_tipWindow) {</div><div class="line"><a name="l01350"></a><span class="lineno"> 1350</span>&#160; m_tipWindow-&gt;Close();</div><div class="line"><a name="l01351"></a><span class="lineno"> 1351</span>&#160; m_tipWindow = NULL;</div><div class="line"><a name="l01352"></a><span class="lineno"> 1352</span>&#160; }</div><div class="line"><a name="l01353"></a><span class="lineno"> 1353</span>&#160; <span class="keywordflow">if</span>(m_mode == MODE_EDIT) {</div><div class="line"><a name="l01354"></a><span class="lineno"> 1354</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01355"></a><span class="lineno"> 1355</span>&#160; <a class="code" href="class_element.html">Element</a>* element = *it;</div><div class="line"><a name="l01356"></a><span class="lineno"> 1356</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Contains</a>(m_camera-&gt;GetMousePosition())) {</div><div class="line"><a name="l01357"></a><span class="lineno"> 1357</span>&#160; wxString tipText = element-&gt;<a class="code" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">GetTipText</a>();</div><div class="line"><a name="l01358"></a><span class="lineno"> 1358</span>&#160; <span class="keywordflow">if</span>(!tipText.IsEmpty()) {</div><div class="line"><a name="l01359"></a><span class="lineno"> 1359</span>&#160; m_tipWindow = <span class="keyword">new</span> wxTipWindow(<span class="keyword">this</span>, tipText, 10000, &amp;m_tipWindow);</div><div class="line"><a name="l01360"></a><span class="lineno"> 1360</span>&#160; <span class="comment">// Creates a very tiny bounding rect to remove the tip on any mouse movement.</span></div><div class="line"><a name="l01361"></a><span class="lineno"> 1361</span>&#160; m_tipWindow-&gt;SetBoundingRect(wxRect(wxGetMousePosition(), wxSize(1, 1)));</div><div class="line"><a name="l01362"></a><span class="lineno"> 1362</span>&#160; <span class="keywordflow">break</span>;</div><div class="line"><a name="l01363"></a><span class="lineno"> 1363</span>&#160; }</div><div class="line"><a name="l01364"></a><span class="lineno"> 1364</span>&#160; }</div><div class="line"><a name="l01365"></a><span class="lineno"> 1365</span>&#160; }</div><div class="line"><a name="l01366"></a><span class="lineno"> 1366</span>&#160; }</div><div class="line"><a name="l01367"></a><span class="lineno"> 1367</span>&#160;</div><div class="line"><a name="l01368"></a><span class="lineno"> 1368</span>&#160; m_timer-&gt;Stop();</div><div class="line"><a name="l01369"></a><span class="lineno"> 1369</span>&#160;}</div><div class="line"><a name="l01370"></a><span class="lineno"> 1370</span>&#160;</div><div class="line"><a name="l01371"></a><span class="lineno"> 1371</span>&#160;<span class="keywordtype">void</span> Workspace::SetTextList(std::vector&lt;Text*&gt; textList)</div><div class="line"><a name="l01372"></a><span class="lineno"> 1372</span>&#160;{</div><div class="line"><a name="l01373"></a><span class="lineno"> 1373</span>&#160; m_textList.clear();</div><div class="line"><a name="l01374"></a><span class="lineno"> 1374</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = textList.begin(), itEnd = textList.end(); it != itEnd; ++it) m_textList.push_back(*it);</div><div class="line"><a name="l01375"></a><span class="lineno"> 1375</span>&#160;</div><div class="line"><a name="l01376"></a><span class="lineno"> 1376</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01377"></a><span class="lineno"> 1377</span>&#160;}</div><div class="line"><a name="l01378"></a><span class="lineno"> 1378</span>&#160;</div><div class="line"><a name="l01379"></a><span class="lineno"> 1379</span>&#160;<span class="keywordtype">void</span> Workspace::SetElementList(std::vector&lt;Element*&gt; elementList)</div><div class="line"><a name="l01380"></a><span class="lineno"> 1380</span>&#160;{</div><div class="line"><a name="l01381"></a><span class="lineno"> 1381</span>&#160; m_elementList.clear();</div><div class="line"><a name="l01382"></a><span class="lineno"> 1382</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = elementList.begin(), itEnd = elementList.end(); it != itEnd; ++it)</div><div class="line"><a name="l01383"></a><span class="lineno"> 1383</span>&#160; m_elementList.push_back(static_cast&lt;PowerElement*&gt;(*it));</div><div class="line"><a name="l01384"></a><span class="lineno"> 1384</span>&#160;}</div><div class="line"><a name="l01385"></a><span class="lineno"> 1385</span>&#160;</div><div class="line"><a name="l01386"></a><span class="lineno"> 1386</span>&#160;<span class="keywordtype">void</span> Workspace::OnIdle(wxIdleEvent&amp; event)</div><div class="line"><a name="l01387"></a><span class="lineno"> 1387</span>&#160;{</div><div class="line"><a name="l01388"></a><span class="lineno"> 1388</span>&#160; <span class="comment">// TODO: Find other solution to text displayed wrong on opened file.</span></div><div class="line"><a name="l01389"></a><span class="lineno"> 1389</span>&#160; <span class="keywordflow">if</span>(m_justOpened) {</div><div class="line"><a name="l01390"></a><span class="lineno"> 1390</span>&#160; m_justOpened = <span class="keyword">false</span>;</div><div class="line"><a name="l01391"></a><span class="lineno"> 1391</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01392"></a><span class="lineno"> 1392</span>&#160; Redraw();</div><div class="line"><a name="l01393"></a><span class="lineno"> 1393</span>&#160; }</div><div class="line"><a name="l01394"></a><span class="lineno"> 1394</span>&#160;}</div><div class="line"><a name="l01395"></a><span class="lineno"> 1395</span>&#160;</div><div class="line"><a name="l01396"></a><span class="lineno"> 1396</span>&#160;std::vector&lt;Element*&gt; Workspace::GetAllElements()<span class="keyword"> const</span></div><div class="line"><a name="l01397"></a><span class="lineno"> 1397</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01398"></a><span class="lineno"> 1398</span>&#160; std::vector&lt;Element*&gt; allElements;</div><div class="line"><a name="l01399"></a><span class="lineno"> 1399</span>&#160;</div><div class="line"><a name="l01400"></a><span class="lineno"> 1400</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) allElements.push_back(*it);</div><div class="line"><a name="l01401"></a><span class="lineno"> 1401</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_textList.begin(), itEnd = m_textList.end(); it != itEnd; ++it) allElements.push_back(*it);</div><div class="line"><a name="l01402"></a><span class="lineno"> 1402</span>&#160;</div><div class="line"><a name="l01403"></a><span class="lineno"> 1403</span>&#160; <span class="keywordflow">return</span> allElements;</div><div class="line"><a name="l01404"></a><span class="lineno"> 1404</span>&#160;}</div><div class="line"><a name="l01405"></a><span class="lineno"> 1405</span>&#160;</div><div class="line"><a name="l01406"></a><span class="lineno"> 1406</span>&#160;<span class="keywordtype">bool</span> Workspace::RunFault()</div><div class="line"><a name="l01407"></a><span class="lineno"> 1407</span>&#160;{</div><div class="line"><a name="l01408"></a><span class="lineno"> 1408</span>&#160; <a class="code" href="class_fault.html">Fault</a> fault(GetElementList());</div><div class="line"><a name="l01409"></a><span class="lineno"> 1409</span>&#160; <span class="keywordtype">bool</span> result = fault.RunFaultCalculation(100e6);</div><div class="line"><a name="l01410"></a><span class="lineno"> 1410</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01411"></a><span class="lineno"> 1411</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, fault.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01412"></a><span class="lineno"> 1412</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01413"></a><span class="lineno"> 1413</span>&#160; }</div><div class="line"><a name="l01414"></a><span class="lineno"> 1414</span>&#160;</div><div class="line"><a name="l01415"></a><span class="lineno"> 1415</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01416"></a><span class="lineno"> 1416</span>&#160; Redraw();</div><div class="line"><a name="l01417"></a><span class="lineno"> 1417</span>&#160;</div><div class="line"><a name="l01418"></a><span class="lineno"> 1418</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01419"></a><span class="lineno"> 1419</span>&#160;}</div><div class="line"><a name="l01420"></a><span class="lineno"> 1420</span>&#160;</div><div class="line"><a name="l01421"></a><span class="lineno"> 1421</span>&#160;std::vector&lt;Element*&gt; Workspace::GetElementList()<span class="keyword"> const</span></div><div class="line"><a name="l01422"></a><span class="lineno"> 1422</span>&#160;<span class="keyword"></span>{</div><div class="line"><a name="l01423"></a><span class="lineno"> 1423</span>&#160; std::vector&lt;Element*&gt; elementList;</div><div class="line"><a name="l01424"></a><span class="lineno"> 1424</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) elementList.push_back(*it);</div><div class="line"><a name="l01425"></a><span class="lineno"> 1425</span>&#160; <span class="keywordflow">return</span> elementList;</div><div class="line"><a name="l01426"></a><span class="lineno"> 1426</span>&#160;}</div><div class="line"><a name="l01427"></a><span class="lineno"> 1427</span>&#160;</div><div class="line"><a name="l01428"></a><span class="lineno"> 1428</span>&#160;<span class="keywordtype">bool</span> Workspace::RunSCPower()</div><div class="line"><a name="l01429"></a><span class="lineno"> 1429</span>&#160;{</div><div class="line"><a name="l01430"></a><span class="lineno"> 1430</span>&#160; <a class="code" href="class_fault.html">Fault</a> fault(GetElementList());</div><div class="line"><a name="l01431"></a><span class="lineno"> 1431</span>&#160; <span class="keywordtype">bool</span> result = fault.RunSCPowerCalcutation(100e6);</div><div class="line"><a name="l01432"></a><span class="lineno"> 1432</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01433"></a><span class="lineno"> 1433</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, fault.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01434"></a><span class="lineno"> 1434</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01435"></a><span class="lineno"> 1435</span>&#160; }</div><div class="line"><a name="l01436"></a><span class="lineno"> 1436</span>&#160;</div><div class="line"><a name="l01437"></a><span class="lineno"> 1437</span>&#160; UpdateTextElements();</div><div class="line"><a name="l01438"></a><span class="lineno"> 1438</span>&#160; Redraw();</div><div class="line"><a name="l01439"></a><span class="lineno"> 1439</span>&#160;</div><div class="line"><a name="l01440"></a><span class="lineno"> 1440</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01441"></a><span class="lineno"> 1441</span>&#160;}</div><div class="line"><a name="l01442"></a><span class="lineno"> 1442</span>&#160;</div><div class="line"><a name="l01443"></a><span class="lineno"> 1443</span>&#160;<span class="keywordtype">bool</span> Workspace::RunStability()</div><div class="line"><a name="l01444"></a><span class="lineno"> 1444</span>&#160;{</div><div class="line"><a name="l01445"></a><span class="lineno"> 1445</span>&#160; <span class="comment">// Run power flow before stability.</span></div><div class="line"><a name="l01446"></a><span class="lineno"> 1446</span>&#160; RunPowerFlow();</div><div class="line"><a name="l01447"></a><span class="lineno"> 1447</span>&#160;</div><div class="line"><a name="l01448"></a><span class="lineno"> 1448</span>&#160; <a class="code" href="class_electromechanical.html">Electromechanical</a> stability(<span class="keyword">this</span>, GetElementList(), m_properties-&gt;GetSimulationPropertiesData());</div><div class="line"><a name="l01449"></a><span class="lineno"> 1449</span>&#160; <span class="keywordtype">bool</span> result = stability.RunStabilityCalculation();</div><div class="line"><a name="l01450"></a><span class="lineno"> 1450</span>&#160; <span class="keywordflow">if</span>(!result) {</div><div class="line"><a name="l01451"></a><span class="lineno"> 1451</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, stability.GetErrorMessage(), _(<span class="stringliteral">&quot;Error&quot;</span>), wxOK | wxCENTRE | wxICON_ERROR);</div><div class="line"><a name="l01452"></a><span class="lineno"> 1452</span>&#160; msgDialog.ShowModal();</div><div class="line"><a name="l01453"></a><span class="lineno"> 1453</span>&#160; }</div><div class="line"><a name="l01454"></a><span class="lineno"> 1454</span>&#160; m_stabilityTimeVector.clear();</div><div class="line"><a name="l01455"></a><span class="lineno"> 1455</span>&#160; m_stabilityTimeVector = stability.GetTimeVector();</div><div class="line"><a name="l01456"></a><span class="lineno"> 1456</span>&#160;</div><div class="line"><a name="l01457"></a><span class="lineno"> 1457</span>&#160; <span class="comment">// Run power flow after stability.</span></div><div class="line"><a name="l01458"></a><span class="lineno"> 1458</span>&#160; RunPowerFlow();</div><div class="line"><a name="l01459"></a><span class="lineno"> 1459</span>&#160;</div><div class="line"><a name="l01460"></a><span class="lineno"> 1460</span>&#160; wxMessageDialog msgDialog(<span class="keyword">this</span>, _(<span class="stringliteral">&quot;Do you wish to open the stability graphics?&quot;</span>), _(<span class="stringliteral">&quot;Question&quot;</span>),</div><div class="line"><a name="l01461"></a><span class="lineno"> 1461</span>&#160; wxYES_NO | wxCENTRE | wxICON_QUESTION);</div><div class="line"><a name="l01462"></a><span class="lineno"> 1462</span>&#160; <span class="keywordflow">if</span>(msgDialog.ShowModal() == wxID_YES) {</div><div class="line"><a name="l01463"></a><span class="lineno"> 1463</span>&#160; std::vector&lt;ElementPlotData&gt; plotDataList;</div><div class="line"><a name="l01464"></a><span class="lineno"> 1464</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = m_elementList.begin(), itEnd = m_elementList.end(); it != itEnd; ++it) {</div><div class="line"><a name="l01465"></a><span class="lineno"> 1465</span>&#160; <a class="code" href="class_power_element.html">PowerElement</a>* element = *it;</div><div class="line"><a name="l01466"></a><span class="lineno"> 1466</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> plotData;</div><div class="line"><a name="l01467"></a><span class="lineno"> 1467</span>&#160; <span class="keywordflow">if</span>(element-&gt;<a class="code" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">GetPlotData</a>(plotData)) plotDataList.push_back(plotData);</div><div class="line"><a name="l01468"></a><span class="lineno"> 1468</span>&#160; }</div><div class="line"><a name="l01469"></a><span class="lineno"> 1469</span>&#160; <a class="code" href="class_element_plot_data.html">ElementPlotData</a> tests(_(<span class="stringliteral">&quot;Error&quot;</span>), ElementPlotData::CT_TEST);</div><div class="line"><a name="l01470"></a><span class="lineno"> 1470</span>&#160; tests.AddData(stability.m_wErrorVector, _(<span class="stringliteral">&quot;Speed error&quot;</span>));</div><div class="line"><a name="l01471"></a><span class="lineno"> 1471</span>&#160; tests.AddData(stability.m_sdCVector, _(<span class="stringliteral">&quot;Sd&quot;</span>));</div><div class="line"><a name="l01472"></a><span class="lineno"> 1472</span>&#160; tests.AddData(stability.m_sqCVector, _(<span class="stringliteral">&quot;Sq&quot;</span>));</div><div class="line"><a name="l01473"></a><span class="lineno"> 1473</span>&#160; tests.AddData(stability.m_numItVector, _(<span class="stringliteral">&quot;Number iterations&quot;</span>));</div><div class="line"><a name="l01474"></a><span class="lineno"> 1474</span>&#160; plotDataList.push_back(tests);</div><div class="line"><a name="l01475"></a><span class="lineno"> 1475</span>&#160;</div><div class="line"><a name="l01476"></a><span class="lineno"> 1476</span>&#160; <a class="code" href="class_chart_view.html">ChartView</a>* cView = <span class="keyword">new</span> <a class="code" href="class_chart_view.html">ChartView</a>(<span class="keyword">this</span>, plotDataList, m_stabilityTimeVector);</div><div class="line"><a name="l01477"></a><span class="lineno"> 1477</span>&#160; cView-&gt;Show();</div><div class="line"><a name="l01478"></a><span class="lineno"> 1478</span>&#160; }</div><div class="line"><a name="l01479"></a><span class="lineno"> 1479</span>&#160;</div><div class="line"><a name="l01480"></a><span class="lineno"> 1480</span>&#160; <span class="keywordflow">return</span> result;</div><div class="line"><a name="l01481"></a><span class="lineno"> 1481</span>&#160;}</div><div class="line"><a name="l01482"></a><span class="lineno"> 1482</span>&#160;<span class="keywordtype">void</span> Workspace::OnMiddleDoubleClick(wxMouseEvent&amp; event)</div><div class="line"><a name="l01483"></a><span class="lineno"> 1483</span>&#160;{</div><div class="line"><a name="l01484"></a><span class="lineno"> 1484</span>&#160; Fit();</div><div class="line"><a name="l01485"></a><span class="lineno"> 1485</span>&#160; <span class="keyword">event</span>.Skip();</div><div class="line"><a name="l01486"></a><span class="lineno"> 1486</span>&#160;}</div><div class="line"><a name="l01487"></a><span class="lineno"> 1487</span>&#160;</div><div class="line"><a name="l01488"></a><span class="lineno"> 1488</span>&#160;<span class="keywordtype">bool</span> Workspace::RunStaticStudies()</div><div class="line"><a name="l01489"></a><span class="lineno"> 1489</span>&#160;{</div><div class="line"><a name="l01490"></a><span class="lineno"> 1490</span>&#160; <span class="keywordtype">bool</span> pfStatus, faultStatus, scStatus;</div><div class="line"><a name="l01491"></a><span class="lineno"> 1491</span>&#160; pfStatus = faultStatus = scStatus = <span class="keyword">false</span>;</div><div class="line"><a name="l01492"></a><span class="lineno"> 1492</span>&#160;</div><div class="line"><a name="l01493"></a><span class="lineno"> 1493</span>&#160; pfStatus = RunPowerFlow();</div><div class="line"><a name="l01494"></a><span class="lineno"> 1494</span>&#160;</div><div class="line"><a name="l01495"></a><span class="lineno"> 1495</span>&#160; <span class="keywordflow">if</span>(m_properties-&gt;GetSimulationPropertiesData().faultAfterPowerFlow) {</div><div class="line"><a name="l01496"></a><span class="lineno"> 1496</span>&#160; <span class="keywordflow">if</span>(pfStatus) faultStatus = RunFault();</div><div class="line"><a name="l01497"></a><span class="lineno"> 1497</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01498"></a><span class="lineno"> 1498</span>&#160; faultStatus = <span class="keyword">true</span>;</div><div class="line"><a name="l01499"></a><span class="lineno"> 1499</span>&#160; }</div><div class="line"><a name="l01500"></a><span class="lineno"> 1500</span>&#160;</div><div class="line"><a name="l01501"></a><span class="lineno"> 1501</span>&#160; <span class="keywordflow">if</span>(m_properties-&gt;GetSimulationPropertiesData().scPowerAfterPowerFlow) {</div><div class="line"><a name="l01502"></a><span class="lineno"> 1502</span>&#160; <span class="keywordflow">if</span>(pfStatus) scStatus = RunSCPower();</div><div class="line"><a name="l01503"></a><span class="lineno"> 1503</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l01504"></a><span class="lineno"> 1504</span>&#160; scStatus = <span class="keyword">true</span>;</div><div class="line"><a name="l01505"></a><span class="lineno"> 1505</span>&#160; }</div><div class="line"><a name="l01506"></a><span class="lineno"> 1506</span>&#160;</div><div class="line"><a name="l01507"></a><span class="lineno"> 1507</span>&#160; <span class="keywordflow">if</span>(pfStatus &amp;&amp; faultStatus &amp;&amp; scStatus) <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l01508"></a><span class="lineno"> 1508</span>&#160;</div><div class="line"><a name="l01509"></a><span class="lineno"> 1509</span>&#160; <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l01510"></a><span class="lineno"> 1510</span>&#160;}</div><div class="ttc" id="class_text_html_a51c55b9272f653cfc3cdafe665d5dde0"><div class="ttname"><a href="class_text.html#a51c55b9272f653cfc3cdafe665d5dde0">Text::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const</div><div class="ttdoc">Checks if the element contains a position. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00047">Text.cpp:47</a></div></div>
+<div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="class_element_html_ab8bf35b4a205fa58772402cea7fad89c"><div class="ttname"><a href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element::ShowPickbox</a></div><div class="ttdeci">void ShowPickbox(bool showPickbox=true)</div><div class="ttdoc">Set if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00161">Element.h:161</a></div></div>
+<div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="class_element_html_abe884d99d12d5252e18956162115b025"><div class="ttname"><a href="class_element.html#abe884d99d12d5252e18956162115b025">Element::Move</a></div><div class="ttdeci">virtual void Move(wxPoint2DDouble position)</div><div class="ttdoc">Move the element other position. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00123">Element.cpp:123</a></div></div>
+<div class="ttc" id="class_element_html_aa40c60c03d6a76639d8c6f6bab86720e"><div class="ttname"><a href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">Element::AddPoint</a></div><div class="ttdeci">virtual void AddPoint(wxPoint2DDouble point)</div><div class="ttdoc">Add point to the list of points that connect the element to the bus. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00318">Element.h:318</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="_workspace_8h_html"><div class="ttname"><a href="_workspace_8h.html">Workspace.h</a></div></div>
+<div class="ttc" id="class_element_html_a5279e5a513391d399d576bcb83df736b"><div class="ttname"><a href="class_element.html#a5279e5a513391d399d576bcb83df736b">Element::SetSelected</a></div><div class="ttdeci">void SetSelected(bool selected=true)</div><div class="ttdoc">Set element selection. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00146">Element.h:146</a></div></div>
+<div class="ttc" id="class_text_html_afe1f86a497f34cee4809cbd7fda24dc3"><div class="ttname"><a href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00162">Text.cpp:162</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="class_element_html_a7dce6c1b97facecf3e3b2f1555858b09"><div class="ttname"><a href="class_element.html#a7dce6c1b97facecf3e3b2f1555858b09">Element::GetParentList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetParentList() const</div><div class="ttdoc">Get the parent list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00506">Element.h:506</a></div></div>
+<div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdoc">Calculate the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00033">PowerFlow.h:33</a></div></div>
+<div class="ttc" id="_electromechanical_8h_html"><div class="ttname"><a href="_electromechanical_8h.html">Electromechanical.h</a></div></div>
+<div class="ttc" id="_transformer_8h_html"><div class="ttname"><a href="_transformer_8h.html">Transformer.h</a></div></div>
+<div class="ttc" id="class_element_html_aa79a7c1b219ce07f39ef3848e61c6eb0"><div class="ttname"><a href="class_element.html#aa79a7c1b219ce07f39ef3848e61c6eb0">Element::GetChildList</a></div><div class="ttdeci">virtual std::vector&lt; Element * &gt; GetChildList() const</div><div class="ttdoc">Get the Child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00511">Element.h:511</a></div></div>
+<div class="ttc" id="class_element_html_a3be3ed2876d3bb547c43caab95353f33"><div class="ttname"><a href="class_element.html#a3be3ed2876d3bb547c43caab95353f33">Element::ResetPickboxes</a></div><div class="ttdeci">virtual void ResetPickboxes()</div><div class="ttdoc">Remove the pickboxes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00393">Element.h:393</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049ad3186b31000d6bac43a0a20725e26b42">ID_EDIT_ELEMENT</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00052">Element.h:52</a></div></div>
+<div class="ttc" id="class_element_html_a95b4f7e9341883ec39d0201148afffb4"><div class="ttname"><a href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element::NodeContains</a></div><div class="ttdeci">virtual bool NodeContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a node contains a point. If contains, set the attributes related to node movement...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00343">Element.h:343</a></div></div>
+<div class="ttc" id="class_element_html_aeb786f831736af82b74c1393ee4cd2bb"><div class="ttname"><a href="class_element.html#aeb786f831736af82b74c1393ee4cd2bb">Element::SetOnline</a></div><div class="ttdeci">bool SetOnline(bool online=true)</div><div class="ttdoc">Set if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00235">Element.cpp:235</a></div></div>
+<div class="ttc" id="class_element_html_af4815de7e7698ea116e8e2af51414050"><div class="ttname"><a href="class_element.html#af4815de7e7698ea116e8e2af51414050">Element::PickboxContains</a></div><div class="ttdeci">virtual bool PickboxContains(wxPoint2DDouble position)</div><div class="ttdoc">Check if a pickbox contains a point. If contains the attributes related to pickbox movement will be c...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00379">Element.h:379</a></div></div>
+<div class="ttc" id="class_element_html_a499c3b52be27d2bf436a13b6f5353b9c"><div class="ttname"><a href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">Element::UpdateNodes</a></div><div class="ttdeci">virtual void UpdateNodes()</div><div class="ttdoc">Update the nodes according to the parents. If a parent is removed, use this method. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00347">Element.h:347</a></div></div>
+<div class="ttc" id="class_power_element_html_a0730506d0417089d69f7ce64b05daed4"><div class="ttname"><a href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement::SetNominalVoltage</a></div><div class="ttdeci">virtual void SetNominalVoltage(std::vector&lt; double &gt; nominalVoltage, std::vector&lt; ElectricalUnit &gt; nominalVoltageUnit)</div><div class="ttdoc">Set nominal voltage of the element. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00035">PowerElement.cpp:35</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551">ID_ROTATE_COUNTERCLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00056">Element.h:56</a></div></div>
+<div class="ttc" id="_sync_generator_8h_html"><div class="ttname"><a href="_sync_generator_8h.html">SyncGenerator.h</a></div></div>
+<div class="ttc" id="_chart_view_8h_html"><div class="ttname"><a href="_chart_view_8h.html">ChartView.h</a></div></div>
+<div class="ttc" id="class_element_html_a6be881ba60674b289a91e498d3d8fc09"><div class="ttname"><a href="class_element.html#a6be881ba60674b289a91e498d3d8fc09">Element::RemoveChild</a></div><div class="ttdeci">virtual void RemoveChild(Element *child)</div><div class="ttdoc">Remove a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00354">Element.cpp:354</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_text_html_a9923c820cd77b411257ba48beceafeaa"><div class="ttname"><a href="class_text.html#a9923c820cd77b411257ba48beceafeaa">Text::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8cpp_source.html#l00092">Text.cpp:92</a></div></div>
+<div class="ttc" id="struct_bus_electrical_data_html"><div class="ttname"><a href="struct_bus_electrical_data.html">BusElectricalData</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00024">Bus.h:24</a></div></div>
<div class="ttc" id="class_element_html_a038dfd8452fe48ab04bc4e47820c148e"><div class="ttname"><a href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element::Intersects</a></div><div class="ttdeci">virtual bool Intersects(wxRect2DDouble rect) const =0</div><div class="ttdoc">Check if the element&amp;#39;s rect intersects other rect. </div></div>
-<div class="ttc" id="class_element_html_a870e266e0457bacbc3f7ef1fb70c6fdd"><div class="ttname"><a href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00341">Element.h:341</a></div></div>
-<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00006">Camera.h:6</a></div></div>
-<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00011">PowerElement.h:11</a></div></div>
-<div class="ttc" id="class_element_html_a57f5771fd003020fef3866a1d1dc7487"><div class="ttname"><a href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00243">Element.cpp:243</a></div></div>
-<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00234">Element.h:234</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00034">Element.h:34</a></div></div>
-<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div><div class="ttdoc">Class to manage color of OpenGL. </div></div>
-<div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00007">ElementDataObject.h:7</a></div></div>
-<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00343">Element.cpp:343</a></div></div>
+<div class="ttc" id="class_element_html_a870e266e0457bacbc3f7ef1fb70c6fdd"><div class="ttname"><a href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element::MoveNode</a></div><div class="ttdeci">virtual void MoveNode(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Move a node. StartMove(wxPoint2DDouble position) before start moving. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00337">Element.h:337</a></div></div>
+<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdoc">Class responsible for the correct visualization of the elements on screen. </div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00030">Camera.h:30</a></div></div>
+<div class="ttc" id="_power_element_8h_html_a398e3da742a726a8f2bacd8149220cca"><div class="ttname"><a href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a></div><div class="ttdeci">ElectricalUnit</div><div class="ttdoc">Electrical units. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00028">PowerElement.h:28</a></div></div>
+<div class="ttc" id="class_element_html_a57f5771fd003020fef3866a1d1dc7487"><div class="ttname"><a href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element::CalculateBoundaries</a></div><div class="ttdeci">virtual void CalculateBoundaries(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</div><div class="ttdoc">Calculate the element boundaries. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00263">Element.cpp:263</a></div></div>
+<div class="ttc" id="_sync_motor_8h_html"><div class="ttname"><a href="_sync_motor_8h.html">SyncMotor.h</a></div></div>
+<div class="ttc" id="class_element_html_a569178e9138490a981511a644536c0f9"><div class="ttname"><a href="class_element.html#a569178e9138490a981511a644536c0f9">Element::AddParent</a></div><div class="ttdeci">virtual bool AddParent(Element *parent, wxPoint2DDouble position)</div><div class="ttdoc">Add a parent to the element. This method must be used on power elements that connect to a bus...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00240">Element.h:240</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049af05f38a3b3fea5d6da036dce48e9d960">ID_LINE_ADD_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00053">Element.h:53</a></div></div>
+<div class="ttc" id="_element_8h_html"><div class="ttname"><a href="_element_8h.html">Element.h</a></div></div>
+<div class="ttc" id="struct_elements_lists_html"><div class="ttname"><a href="struct_elements_lists.html">ElementsLists</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00024">ElementDataObject.h:24</a></div></div>
+<div class="ttc" id="class_element_html_ad5f4bee2e241c430a643f46dadf3d3f5"><div class="ttname"><a href="class_element.html#ad5f4bee2e241c430a643f46dadf3d3f5">Element::ReplaceChild</a></div><div class="ttdeci">virtual void ReplaceChild(Element *oldChild, Element *newChild)</div><div class="ttdoc">Replace a child from the list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00362">Element.cpp:362</a></div></div>
<div class="ttc" id="class_workspace_base_html"><div class="ttname"><a href="class_workspace_base.html">WorkspaceBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_base_8h_source.html#l00035">WorkspaceBase.h:35</a></div></div>
-<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00045">Bus.h:45</a></div></div>
+<div class="ttc" id="class_bus_html"><div class="ttname"><a href="class_bus.html">Bus</a></div><div class="ttdoc">Node for power elements. All others power elements are connected through this. </div><div class="ttdef"><b>Definition:</b> <a href="_bus_8h_source.html#l00069">Bus.h:69</a></div></div>
<div class="ttc" id="class_element_html_a551ed1eeab446b5366d56c2ee9dec187"><div class="ttname"><a href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element::Draw</a></div><div class="ttdeci">virtual void Draw(wxPoint2DDouble translation, double scale) const</div><div class="ttdoc">Draw the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00302">Element.h:302</a></div></div>
-<div class="ttc" id="class_power_element_html_acadf6712b430f9fadfbd7015903eaeaf"><div class="ttname"><a href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00181">PowerElement.h:181</a></div></div>
-<div class="ttc" id="class_element_html_abd94ea2ca7984d9a32d3ffd23837a323"><div class="ttname"><a href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">Element::IsPickboxShown</a></div><div class="ttdeci">bool IsPickboxShown() const</div><div class="ttdoc">Checks if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00213">Element.h:213</a></div></div>
-<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00219">Element.h:219</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_element_html_aa79db7f54ba9754e953b5059a1d79486"><div class="ttname"><a href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00295">Element.h:295</a></div></div>
-<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00012">ElementDataObject.h:12</a></div></div>
-<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00010">Element.cpp:10</a></div></div>
-<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00308">Element.h:308</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00038">Element.h:38</a></div></div>
-<div class="ttc" id="_fault_8h_html"><div class="ttname"><a href="_fault_8h.html">Fault.h</a></div><div class="ttdoc">Calculate the fault of the system and update the elements data. </div></div>
-<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00333">Element.cpp:333</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00010">Electromechanical.h:10</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="class_element_html_a2a436b0497017a1c3d03dba5e59f037e"><div class="ttname"><a href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00315">Element.h:315</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00547">Element.h:547</a></div></div>
-<div class="ttc" id="class_element_html_a6f071b6dfd64721ca673bfbe1ca2d525"><div class="ttname"><a href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">Element::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00395">Element.h:395</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00036">Element.h:36</a></div></div>
-<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00035">Element.h:35</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_element_html_a245924c5be948397b101787dbea565ea"><div class="ttname"><a href="class_element.html#a245924c5be948397b101787dbea565ea">Element::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00401">Element.h:401</a></div></div>
-<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00013">Fault.h:13</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00189">Element.h:189</a></div></div>
-<div class="ttc" id="class_element_html_af26c67b6dd32eb1b3e417fddf54818c3"><div class="ttname"><a href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00381">Element.h:381</a></div></div>
-<div class="ttc" id="class_element_html_a9aa2fec8b6c7bef4bf75b9f86fbb76f2"><div class="ttname"><a href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">Element::SetID</a></div><div class="ttdeci">virtual void SetID(int id)</div><div class="ttdoc">Set the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00264">Element.h:264</a></div></div>
-<div class="ttc" id="class_element_html_ac7490a91f3edfff08584567cc84d86b5"><div class="ttname"><a href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00361">Element.h:361</a></div></div>
-<div class="ttc" id="class_power_element_html_a789105cc7c170330e7daf2a0453fde6d"><div class="ttname"><a href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a></div><div class="ttdeci">virtual bool SwitchesContains(wxPoint2DDouble position) const</div><div class="ttdoc">Check if switch contains position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00046">PowerElement.cpp:46</a></div></div>
-<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00270">Element.h:270</a></div></div>
-<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00326">Element.cpp:326</a></div></div>
-<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00367">Element.h:367</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
+<div class="ttc" id="class_power_element_html_acadf6712b430f9fadfbd7015903eaeaf"><div class="ttname"><a href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement::GetPlotData</a></div><div class="ttdeci">virtual bool GetPlotData(ElementPlotData &amp;plotData)</div><div class="ttdoc">Fill the plot data. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00198">PowerElement.h:198</a></div></div>
+<div class="ttc" id="class_element_html_abd94ea2ca7984d9a32d3ffd23837a323"><div class="ttname"><a href="class_element.html#abd94ea2ca7984d9a32d3ffd23837a323">Element::IsPickboxShown</a></div><div class="ttdeci">bool IsPickboxShown() const</div><div class="ttdoc">Checks if the pickbox is shown. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00222">Element.h:222</a></div></div>
+<div class="ttc" id="class_element_html_a57c84a8e6eb80f0fea6e23cdd439d5aa"><div class="ttname"><a href="class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa">Element::IsOnline</a></div><div class="ttdeci">bool IsOnline() const</div><div class="ttdoc">Checks if the element is online or offline. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00227">Element.h:227</a></div></div>
+<div class="ttc" id="_line_8h_html"><div class="ttname"><a href="_line_8h.html">Line.h</a></div></div>
+<div class="ttc" id="_load_8h_html"><div class="ttname"><a href="_load_8h.html">Load.h</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="_element_data_object_8h_html"><div class="ttname"><a href="_element_data_object_8h.html">ElementDataObject.h</a></div></div>
+<div class="ttc" id="class_element_html_aa79db7f54ba9754e953b5059a1d79486"><div class="ttname"><a href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element::GetTipText</a></div><div class="ttdeci">virtual wxString GetTipText() const</div><div class="ttdoc">Get the tip text. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00296">Element.h:296</a></div></div>
+<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdoc">Class to store the elements in the clipboard. </div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00036">ElementDataObject.h:36</a></div></div>
+<div class="ttc" id="class_element_html_a920fe7ba1563615857618f01e64b3284"><div class="ttname"><a href="class_element.html#a920fe7ba1563615857618f01e64b3284">Element::SetPosition</a></div><div class="ttdeci">void SetPosition(const wxPoint2DDouble position)</div><div class="ttdoc">Set the element position and update the rectangle. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00025">Element.cpp:25</a></div></div>
+<div class="ttc" id="_ind_motor_8h_html"><div class="ttname"><a href="_ind_motor_8h.html">IndMotor.h</a></div></div>
+<div class="ttc" id="class_element_html_afab568cea0a7074bb9984e94bd2ba52e"><div class="ttname"><a href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element::Rotate</a></div><div class="ttdeci">virtual void Rotate(bool clockwise=true)</div><div class="ttdoc">Rotate the element. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00307">Element.h:307</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a80c989d88bc686137e96564dfad6166a">ID_DELETE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00057">Element.h:57</a></div></div>
+<div class="ttc" id="_fault_8h_html"><div class="ttname"><a href="_fault_8h.html">Fault.h</a></div></div>
+<div class="ttc" id="class_element_html_ac38d6707d08cb5c057032aa94b511a62"><div class="ttname"><a href="class_element.html#ac38d6707d08cb5c057032aa94b511a62">Element::AddChild</a></div><div class="ttdeci">virtual void AddChild(Element *child)</div><div class="ttdoc">Add a child to the child list. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00353">Element.cpp:353</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdoc">Calculates the electromechanical transient based on disturbances (e.g. system fault). </div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00051">Electromechanical.h:51</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="class_element_html_a2a436b0497017a1c3d03dba5e59f037e"><div class="ttname"><a href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element::GetContextMenu</a></div><div class="ttdeci">virtual bool GetContextMenu(wxMenu &amp;menu)</div><div class="ttdoc">Get the element contex menu. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00313">Element.h:313</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_element_html_ae1652eded3ccbd241a783691117418b2"><div class="ttname"><a href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element::ShowForm</a></div><div class="ttdeci">virtual bool ShowForm(wxWindow *parent, Element *element)</div><div class="ttdoc">Show element data form. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00534">Element.h:534</a></div></div>
+<div class="ttc" id="class_element_html_a6f071b6dfd64721ca673bfbe1ca2d525"><div class="ttname"><a href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">Element::MovePickbox</a></div><div class="ttdeci">virtual void MovePickbox(wxPoint2DDouble position)</div><div class="ttdoc">Move the pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00384">Element.h:384</a></div></div>
+<div class="ttc" id="_element_plot_data_8h_html"><div class="ttname"><a href="_element_plot_data_8h.html">ElementPlotData.h</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8">ID_ROTATE_CLOCK</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00055">Element.h:55</a></div></div>
+<div class="ttc" id="_element_8h_html_a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803"><div class="ttname"><a href="_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a1a8f8c62fc201993f6a605ff06314803">ID_LINE_REMOVE_NODE</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00054">Element.h:54</a></div></div>
+<div class="ttc" id="_text_8h_html"><div class="ttname"><a href="_text_8h.html">Text.h</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="_power_flow_8h_html"><div class="ttname"><a href="_power_flow_8h.html">PowerFlow.h</a></div></div>
+<div class="ttc" id="class_element_html_a245924c5be948397b101787dbea565ea"><div class="ttname"><a href="class_element.html#a245924c5be948397b101787dbea565ea">Element::GetBestPickboxCursor</a></div><div class="ttdeci">virtual wxCursor GetBestPickboxCursor() const</div><div class="ttdoc">Get the best cursor to shown to the user when the mouse is above a pickbox. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00389">Element.h:389</a></div></div>
+<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdoc">Calculate the fault of the system and update the elements data. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00030">Fault.h:30</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_element_html_ac42604083db300d20c010b50084de91b"><div class="ttname"><a href="class_element.html#ac42604083db300d20c010b50084de91b">Element::IsSelected</a></div><div class="ttdeci">bool IsSelected() const</div><div class="ttdoc">Checks if the element is selected. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00202">Element.h:202</a></div></div>
+<div class="ttc" id="class_element_html_af26c67b6dd32eb1b3e417fddf54818c3"><div class="ttname"><a href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element::RotateNode</a></div><div class="ttdeci">virtual void RotateNode(Element *parent, bool clockwise=true)</div><div class="ttdoc">Rotate a node. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00372">Element.h:372</a></div></div>
+<div class="ttc" id="_inductor_8h_html"><div class="ttname"><a href="_inductor_8h.html">Inductor.h</a></div></div>
+<div class="ttc" id="class_element_html_a9aa2fec8b6c7bef4bf75b9f86fbb76f2"><div class="ttname"><a href="class_element.html#a9aa2fec8b6c7bef4bf75b9f86fbb76f2">Element::SetID</a></div><div class="ttdeci">virtual void SetID(int id)</div><div class="ttdoc">Set the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00267">Element.h:267</a></div></div>
+<div class="ttc" id="class_element_html_ac7490a91f3edfff08584567cc84d86b5"><div class="ttname"><a href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element::SetNodeParent</a></div><div class="ttdeci">virtual bool SetNodeParent(Element *parent)</div><div class="ttdoc">Set a perent to the node. If all conditions are met, a new parent are added to the element and the po...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00354">Element.h:354</a></div></div>
+<div class="ttc" id="class_power_element_html_a789105cc7c170330e7daf2a0453fde6d"><div class="ttname"><a href="class_power_element.html#a789105cc7c170330e7daf2a0453fde6d">PowerElement::SwitchesContains</a></div><div class="ttdeci">virtual bool SwitchesContains(wxPoint2DDouble position) const</div><div class="ttdoc">Check if switch contains position. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8cpp_source.html#l00063">PowerElement.cpp:63</a></div></div>
+<div class="ttc" id="_camera_8h_html"><div class="ttname"><a href="_camera_8h.html">Camera.h</a></div></div>
+<div class="ttc" id="class_element_html_a20693eda52fae0b42d6fa6a70fd0a0ee"><div class="ttname"><a href="class_element.html#a20693eda52fae0b42d6fa6a70fd0a0ee">Element::GetID</a></div><div class="ttdeci">virtual int GetID() const</div><div class="ttdoc">Get the element ID. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00272">Element.h:272</a></div></div>
+<div class="ttc" id="class_element_html_a74ec9a279ac0127550e00941206dddb1"><div class="ttname"><a href="class_element.html#a74ec9a279ac0127550e00941206dddb1">Element::ReplaceParent</a></div><div class="ttdeci">virtual void ReplaceParent(Element *oldParent, Element *newParent)</div><div class="ttdoc">Replace a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00346">Element.cpp:346</a></div></div>
+<div class="ttc" id="class_element_html_a9504437b60faf2c5a27584de8a24810c"><div class="ttname"><a href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element::RemoveParent</a></div><div class="ttdeci">virtual void RemoveParent(Element *parent)</div><div class="ttdoc">Remove a parent. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00359">Element.h:359</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
<div class="ttc" id="class_element_html_abf6c4949733debca55b2f56d8e9b7372"><div class="ttname"><a href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element::Contains</a></div><div class="ttdeci">virtual bool Contains(wxPoint2DDouble position) const =0</div><div class="ttdoc">Checks if the element contains a position. </div></div>
-<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00101">Element.cpp:101</a></div></div>
-<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00100">PowerElement.h:100</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_element_html_a8c16c17a6f22ffcdeb80ffa0ed27a72a"><div class="ttname"><a href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">Element::ResetNodes</a></div><div class="ttdeci">virtual void ResetNodes()</div><div class="ttdoc">Remove the active nodes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00411">Element.h:411</a></div></div>
-<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00258">Element.h:258</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_element_html_a846a2a51780a99363b4d4b1812ca16b4"><div class="ttname"><a href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element::StartMove</a></div><div class="ttdeci">virtual void StartMove(wxPoint2DDouble position)</div><div class="ttdoc">Update the element attributes related to the movement. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8cpp_source.html#l00117">Element.cpp:117</a></div></div>
+<div class="ttc" id="class_power_element_html"><div class="ttname"><a href="class_power_element.html">PowerElement</a></div><div class="ttdoc">Abstract class of power elements. </div><div class="ttdef"><b>Definition:</b> <a href="_power_element_8h_source.html#l00117">PowerElement.h:117</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_element_html_a8c16c17a6f22ffcdeb80ffa0ed27a72a"><div class="ttname"><a href="class_element.html#a8c16c17a6f22ffcdeb80ffa0ed27a72a">Element::ResetNodes</a></div><div class="ttdeci">virtual void ResetNodes()</div><div class="ttdoc">Remove the active nodes. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00397">Element.h:397</a></div></div>
+<div class="ttc" id="_capacitor_8h_html"><div class="ttname"><a href="_capacitor_8h.html">Capacitor.h</a></div></div>
+<div class="ttc" id="class_element_html_aeabe64a5907e917c8b61afd605ea52c3"><div class="ttname"><a href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element::GetCopy</a></div><div class="ttdeci">virtual Element * GetCopy()</div><div class="ttdoc">Get a the element copy. </div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00262">Element.h:262</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/_workspace_8h.html b/docs/doxygen/html/_workspace_8h.html
new file mode 100644
index 0000000..7d16e44
--- /dev/null
+++ b/docs/doxygen/html/_workspace_8h.html
@@ -0,0 +1,145 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Project/Workspace.h File Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('_workspace_8h.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#nested-classes">Classes</a> &#124;
+<a href="#enum-members">Enumerations</a> </div>
+ <div class="headertitle">
+<div class="title">Workspace.h File Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+<div class="textblock"><code>#include &lt;GL/gl.h&gt;</code><br />
+<code>#include &lt;GL/glu.h&gt;</code><br />
+<code>#include &lt;wx/dcclient.h&gt;</code><br />
+<code>#include &lt;wx/msgdlg.h&gt;</code><br />
+<code>#include &lt;wx/statusbr.h&gt;</code><br />
+<code>#include &lt;wx/clipbrd.h&gt;</code><br />
+<code>#include &lt;wx/tipwin.h&gt;</code><br />
+<code>#include &quot;WorkspaceBase.h&quot;</code><br />
+<code>#include &quot;<a class="el" href="_bus_8h_source.html">Bus.h</a>&quot;</code><br />
+<code>#include &quot;<a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>&quot;</code><br />
+</div>
+<p><a href="_workspace_8h_source.html">Go to the source code of this file.</a></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="nested-classes"></a>
+Classes</h2></td></tr>
+<tr class="memitem:"><td class="memItemLeft" align="right" valign="top">class &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_workspace.html">Workspace</a></td></tr>
+<tr class="memdesc:"><td class="mdescLeft">&#160;</td><td class="mdescRight">This class manages the graphical and power elements. It is responsible for handling the user's interaction with the elements. <a href="class_workspace.html#details">More...</a><br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table><table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="enum-members"></a>
+Enumerations</h2></td></tr>
+<tr class="memitem:a8f434816783a791128b48a39ae663f15"><td class="memItemLeft" align="right" valign="top"><a id="a8f434816783a791128b48a39ae663f15"></a>enum &#160;</td><td class="memItemRight" valign="bottom"><b>ElementID</b> { <br />
+&#160;&#160;<b>ID_BUS</b> = 0,
+<b>ID_LINE</b>,
+<b>ID_TRANSFORMER</b>,
+<b>ID_SYNCGENERATOR</b>,
+<br />
+&#160;&#160;<b>ID_INDMOTOR</b>,
+<b>ID_SYNCMOTOR</b>,
+<b>ID_LOAD</b>,
+<b>ID_CAPACITOR</b>,
+<br />
+&#160;&#160;<b>ID_INDUCTOR</b>,
+<b>ID_TEXT</b>,
+<b>NUM_ELEMENTS</b>
+<br />
+ }</td></tr>
+<tr class="separator:a8f434816783a791128b48a39ae663f15"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_workspace_8h.html">Workspace.h</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/_workspace_8h.js b/docs/doxygen/html/_workspace_8h.js
new file mode 100644
index 0000000..19fe701
--- /dev/null
+++ b/docs/doxygen/html/_workspace_8h.js
@@ -0,0 +1,17 @@
+var _workspace_8h =
+[
+ [ "Workspace", "class_workspace.html", "class_workspace" ],
+ [ "ElementID", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15", [
+ [ "ID_BUS", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a1ef615af10b75825208fe612934cd993", null ],
+ [ "ID_LINE", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a7ce9843fb67511c2e4b20c707ad590d8", null ],
+ [ "ID_TRANSFORMER", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15aec53219b0d127b0c7c48bce6bc6618bb", null ],
+ [ "ID_SYNCGENERATOR", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a85788d6fc58afde943ce8bb130461ac1", null ],
+ [ "ID_INDMOTOR", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15adc8df3f3cd5a626ee5c327423dd7d825", null ],
+ [ "ID_SYNCMOTOR", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a7088a60d72d0730404f0965f10dd0786", null ],
+ [ "ID_LOAD", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15ac3e3dcfd8b3450a32dd2665d542695f2", null ],
+ [ "ID_CAPACITOR", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a89ae894b55baca13320fdc0f71345795", null ],
+ [ "ID_INDUCTOR", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15ad22104a7215f22fd9bcca5d8b56889ef", null ],
+ [ "ID_TEXT", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a0b19c55f1dfecc32f6572a67d37e8cc2", null ],
+ [ "NUM_ELEMENTS", "_workspace_8h.html#a8f434816783a791128b48a39ae663f15a51add6c28e024f17f0d0dde52e23f466", null ]
+ ] ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/_workspace_8h_source.html b/docs/doxygen/html/_workspace_8h_source.html
index bdb439d..767bdba 100644
--- a/docs/doxygen/html/_workspace_8h_source.html
+++ b/docs/doxygen/html/_workspace_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,32 +88,34 @@ $(document).ready(function(){initNavTree('_workspace_8h_source.html','');});
<div class="title">Workspace.h</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#ifndef WORKSPACE_H</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#define WORKSPACE_H</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;</div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;GL/glu.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/dcclient.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &lt;wx/statusbr.h&gt;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &lt;wx/clipbrd.h&gt;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="preprocessor">#include &lt;wx/tipwin.h&gt;</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="preprocessor">#include &quot;WorkspaceBase.h&quot;</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="preprocessor">#include &quot;Bus.h&quot;</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="preprocessor">#include &quot;ControlEditor.h&quot;</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a>;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a>;</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="comment">// class Bus;</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="keyword">class </span><a class="code" href="class_text.html">Text</a>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="keyword">class </span><a class="code" href="class_power_flow.html">PowerFlow</a>;</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;<span class="keyword">class </span><a class="code" href="class_fault.html">Fault</a>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_electromechanical.html">Electromechanical</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a>;</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">enum</span> ElementID {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; ID_BUS = 0,</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; ID_LINE,</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; ID_TRANSFORMER,</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; ID_SYNCGENERATOR,</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; ID_INDMOTOR,</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; ID_SYNCMOTOR,</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; ID_LOAD,</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; ID_CAPACITOR,</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; ID_INDUCTOR,</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; ID_TEXT,</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; NUM_ELEMENTS</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;};</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"><a class="line" href="class_workspace.html"> 56</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a> : <span class="keyword">public</span> <a class="code" href="class_workspace_base.html">WorkspaceBase</a></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;{</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">public</span>:</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keyword">enum</span> WorkspaceMode {</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; MODE_EDIT = 0,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; MODE_MOVE_ELEMENT,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; MODE_MOVE_PICKBOX,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; MODE_MOVE_NODE,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; MODE_DRAG,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; MODE_DRAG_INSERT,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; MODE_DRAG_INSERT_TEXT,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; MODE_INSERT,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; MODE_INSERT_TEXT,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; MODE_SELECTION_RECT,</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; MODE_PASTE,</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; MODE_DRAG_PASTE</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; };</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160;</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>();</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>(wxWindow* parent, wxString name = wxEmptyString, wxStatusBar* statusBar = NULL);</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; ~<a class="code" href="class_workspace.html">Workspace</a>();</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160;</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; std::vector&lt;Element*&gt; GetElementList() <span class="keyword">const</span>;</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; std::vector&lt;Text*&gt; GetTextList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_textList; }</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; std::vector&lt;Element*&gt; GetAllElements() <span class="keyword">const</span>;</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; WorkspaceMode GetWorkspaceMode()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_mode; }</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <a class="code" href="class_camera.html">Camera</a>* GetCamera()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_camera; }</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160;</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; <span class="keywordtype">void</span> CopySelection();</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keywordtype">bool</span> Paste();</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; wxFileName GetSavedPath()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_savedPath; }</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160;</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="keywordtype">void</span> SetName(wxString name) { m_name = name; }</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; <span class="keywordtype">void</span> SetElementList(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <span class="keywordtype">void</span> SetTextList(std::vector&lt;Text*&gt; textList);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; <span class="keywordtype">void</span> SetStatusBarText(wxString text) { m_statusBar-&gt;SetStatusText(text); }</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <span class="keywordtype">void</span> SetWorkspaceMode(WorkspaceMode mode) { m_mode = mode; }</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; <span class="keywordtype">void</span> SetSavedPath(wxFileName savedPath) { m_savedPath = savedPath; }</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; <span class="keywordtype">void</span> SetJustOpened(<span class="keywordtype">bool</span> justOpened) { m_justOpened = justOpened; }</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <span class="keywordtype">void</span> Redraw() { m_glCanvas-&gt;Refresh(); }</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <span class="keywordtype">void</span> RotateSelectedElements(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <span class="keywordtype">void</span> DeleteSelectedElements();</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordtype">bool</span> GetElementsCorners(wxPoint2DDouble&amp; leftUpCorner,</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxPoint2DDouble&amp; rightDownCorner,</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordtype">void</span> Fit();</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; <span class="keywordtype">void</span> UnselectAll();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordtype">void</span> ValidateBusesVoltages(<a class="code" href="class_element.html">Element</a>* initialBus);</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <span class="keywordtype">void</span> ValidateElementsVoltages();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160;</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">void</span> UpdateElementsID();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; <span class="keywordtype">void</span> UpdateTextElements();</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160;</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">int</span> GetElementNumber(ElementID elementID) { <span class="keywordflow">return</span> m_elementNumber[elementID]; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> IncrementElementNumber(ElementID elementID) { m_elementNumber[elementID]++; }</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; </div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* GetProperties()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_properties; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; </div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; std::vector&lt;double&gt; GetStabilityTimeVector()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_stabilityTimeVector; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; </div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">bool</span> IsContinuousCalculationActive()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_continuousCalc; }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> SetContinuousCalculationActive(<span class="keywordtype">bool</span> value = <span class="keyword">true</span>) { m_continuousCalc = value; }</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160;</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> RunPowerFlow();</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; <span class="keywordtype">bool</span> RunFault();</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; <span class="keywordtype">bool</span> RunSCPower();</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">bool</span> RunStaticStudies();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">bool</span> RunStability();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160;<span class="keyword">protected</span>:</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnIdle(wxIdleEvent&amp; event);</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTimer(wxTimerEvent&amp; event);</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRightClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnScroll(wxMouseEvent&amp; event);</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseMotion(wxMouseEvent&amp; event);</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnKeyDown(wxKeyEvent&amp; event);</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPopupClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160;</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">void</span> SetViewport();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160; <span class="keywordtype">void</span> UpdateStatusBar();</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160;</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; wxGLContext* m_glContext = NULL;</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; wxStatusBar* m_statusBar = NULL;</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <a class="code" href="class_camera.html">Camera</a>* m_camera = NULL;</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; wxTipWindow* m_tipWindow = NULL;</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; wxString m_name;</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160;</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; WorkspaceMode m_mode = MODE_EDIT;</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160;</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; std::vector&lt;PowerElement*&gt; m_elementList;</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keywordtype">int</span> m_elementNumber[NUM_ELEMENTS];</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160;</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; std::vector&lt;Text*&gt; m_textList;</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160;</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; wxFileName m_savedPath;</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; wxRect2DDouble m_selectionRect;</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; wxPoint2DDouble m_startSelRect;</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160; </div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties = NULL;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; </div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; std::vector&lt;double&gt; m_stabilityTimeVector;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; </div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; <span class="keywordtype">bool</span> m_continuousCalc = <span class="keyword">false</span>;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160; <span class="keywordtype">bool</span> m_disconnectedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; <span class="keywordtype">bool</span> m_justOpened = <span class="keyword">false</span>;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;};</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160;<span class="preprocessor">#endif // WORKSPACE_H</span></div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00048">Text.h:48</a></div></div>
-<div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00088">Element.h:88</a></div></div>
-<div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00009">PowerFlow.h:9</a></div></div>
-<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00110">SyncGenerator.h:110</a></div></div>
-<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00006">Camera.h:6</a></div></div>
+<a href="_workspace_8h.html">Go to the documentation of this file.</a><div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="comment">/*</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="comment"> * Copyright (C) 2017 Thales Lima Oliveira &lt;thales@ufu.br&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="comment"> * This program is free software; you can redistribute it and/or modify</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="comment"> * it under the terms of the GNU General Public License as published by</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="comment"> * the Free Software Foundation; either version 2 of the License, or</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="comment"> * any later version.</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="comment"> * This program is distributed in the hope that it will be useful,</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment"> * but WITHOUT ANY WARRANTY; without even the implied warranty of</span></div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment"> * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the</span></div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;<span class="comment"> * GNU General Public License for more details.</span></div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;<span class="comment"> *</span></div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160;<span class="comment"> * You should have received a copy of the GNU General Public License</span></div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160;<span class="comment"> * along with this program. If not, see &lt;https://www.gnu.org/licenses/&gt;.</span></div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160;<span class="comment"> */</span></div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160;</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160;<span class="preprocessor">#ifndef WORKSPACE_H</span></div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160;<span class="preprocessor">#define WORKSPACE_H</span></div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160;<span class="preprocessor">#include &lt;GL/gl.h&gt;</span></div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;<span class="preprocessor">#include &lt;GL/glu.h&gt;</span></div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160;<span class="preprocessor">#include &lt;wx/dcclient.h&gt;</span></div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160;<span class="preprocessor">#include &lt;wx/msgdlg.h&gt;</span></div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;<span class="preprocessor">#include &lt;wx/statusbr.h&gt;</span></div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160;<span class="preprocessor">#include &lt;wx/clipbrd.h&gt;</span></div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160;<span class="preprocessor">#include &lt;wx/tipwin.h&gt;</span></div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160;<span class="preprocessor">#include &quot;WorkspaceBase.h&quot;</span></div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_bus_8h.html">Bus.h</a>&quot;</span></div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_control_editor_8h.html">ControlEditor.h</a>&quot;</span></div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160;<span class="keyword">class </span><a class="code" href="class_camera.html">Camera</a>;</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160;<span class="keyword">class </span><a class="code" href="class_element.html">Element</a>;</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160;<span class="comment">// class Bus;</span></div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160;<span class="keyword">class </span><a class="code" href="class_line.html">Line</a>;</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160;<span class="keyword">class </span><a class="code" href="class_transformer.html">Transformer</a>;</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_generator.html">SyncGenerator</a>;</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160;<span class="keyword">class </span><a class="code" href="class_ind_motor.html">IndMotor</a>;</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160;<span class="keyword">class </span><a class="code" href="class_sync_motor.html">SyncMotor</a>;</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160;<span class="keyword">class </span><a class="code" href="class_load.html">Load</a>;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160;<span class="keyword">class </span><a class="code" href="class_inductor.html">Inductor</a>;</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160;<span class="keyword">class </span><a class="code" href="class_capacitor.html">Capacitor</a>;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_data_object.html">ElementDataObject</a>;</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160;<span class="keyword">class </span><a class="code" href="class_text.html">Text</a>;</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160;</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160;<span class="keyword">class </span><a class="code" href="class_power_flow.html">PowerFlow</a>;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160;<span class="keyword">class </span><a class="code" href="class_fault.html">Fault</a>;</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160;<span class="keyword">class </span><a class="code" href="class_electromechanical.html">Electromechanical</a>;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160;</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160;<span class="keyword">class </span><a class="code" href="class_element_plot_data.html">ElementPlotData</a>;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160;<span class="keyword">class </span><a class="code" href="class_chart_view.html">ChartView</a>;</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160;</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160;<span class="keyword">class </span><a class="code" href="class_properties_data.html">PropertiesData</a>;</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;<span class="keyword">enum</span> ElementID {</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; ID_BUS = 0,</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; ID_LINE,</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; ID_TRANSFORMER,</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; ID_SYNCGENERATOR,</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; ID_INDMOTOR,</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; ID_SYNCMOTOR,</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; ID_LOAD,</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; ID_CAPACITOR,</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; ID_INDUCTOR,</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; ID_TEXT,</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; NUM_ELEMENTS</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160;};</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"><a class="line" href="class_workspace.html"> 81</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_workspace.html">Workspace</a> : <span class="keyword">public</span> <a class="code" href="class_workspace_base.html">WorkspaceBase</a></div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160;{</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="keyword">enum</span> WorkspaceMode {</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; MODE_EDIT = 0,</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; MODE_MOVE_ELEMENT,</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; MODE_MOVE_PICKBOX,</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; MODE_MOVE_NODE,</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; MODE_DRAG,</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; MODE_DRAG_INSERT,</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; MODE_DRAG_INSERT_TEXT,</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; MODE_INSERT,</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; MODE_INSERT_TEXT,</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; MODE_SELECTION_RECT,</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; MODE_PASTE,</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; MODE_DRAG_PASTE</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; };</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160;</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>();</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; <a class="code" href="class_workspace.html">Workspace</a>(wxWindow* parent, wxString name = wxEmptyString, wxStatusBar* statusBar = NULL);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; ~<a class="code" href="class_workspace.html">Workspace</a>();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160;</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; wxString GetName()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_name; }</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; std::vector&lt;Element*&gt; GetElementList() <span class="keyword">const</span>;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; std::vector&lt;Text*&gt; GetTextList()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_textList; }</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; std::vector&lt;Element*&gt; GetAllElements() <span class="keyword">const</span>;</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; WorkspaceMode GetWorkspaceMode()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_mode; }</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; <a class="code" href="class_camera.html">Camera</a>* GetCamera()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_camera; }</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; <span class="keywordtype">void</span> CopySelection();</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; <span class="keywordtype">bool</span> Paste();</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160;</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; wxFileName GetSavedPath()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_savedPath; }</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; <span class="keywordtype">void</span> SetName(wxString name) { m_name = name; }</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; <span class="keywordtype">void</span> SetElementList(std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordtype">void</span> SetTextList(std::vector&lt;Text*&gt; textList);</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; <span class="keywordtype">void</span> SetStatusBarText(wxString text) { m_statusBar-&gt;SetStatusText(text); }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160; <span class="keywordtype">void</span> SetWorkspaceMode(WorkspaceMode mode) { m_mode = mode; }</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160; <span class="keywordtype">void</span> SetSavedPath(wxFileName savedPath) { m_savedPath = savedPath; }</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160; <span class="keywordtype">void</span> SetJustOpened(<span class="keywordtype">bool</span> justOpened) { m_justOpened = justOpened; }</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160; <span class="keywordtype">void</span> Redraw() { m_glCanvas-&gt;Refresh(); }</div><div class="line"><a name="l00121"></a><span class="lineno"> 121</span>&#160; <span class="keywordtype">void</span> RotateSelectedElements(<span class="keywordtype">bool</span> clockwise = <span class="keyword">true</span>);</div><div class="line"><a name="l00122"></a><span class="lineno"> 122</span>&#160; <span class="keywordtype">void</span> DeleteSelectedElements();</div><div class="line"><a name="l00123"></a><span class="lineno"> 123</span>&#160; <span class="keywordtype">bool</span> GetElementsCorners(wxPoint2DDouble&amp; leftUpCorner,</div><div class="line"><a name="l00124"></a><span class="lineno"> 124</span>&#160; wxPoint2DDouble&amp; rightDownCorner,</div><div class="line"><a name="l00125"></a><span class="lineno"> 125</span>&#160; std::vector&lt;Element*&gt; elementList);</div><div class="line"><a name="l00126"></a><span class="lineno"> 126</span>&#160; <span class="keywordtype">void</span> Fit();</div><div class="line"><a name="l00127"></a><span class="lineno"> 127</span>&#160; <span class="keywordtype">void</span> UnselectAll();</div><div class="line"><a name="l00128"></a><span class="lineno"> 128</span>&#160;</div><div class="line"><a name="l00129"></a><span class="lineno"> 129</span>&#160; <span class="keywordtype">void</span> ValidateBusesVoltages(<a class="code" href="class_element.html">Element</a>* initialBus);</div><div class="line"><a name="l00130"></a><span class="lineno"> 130</span>&#160; <span class="keywordtype">void</span> ValidateElementsVoltages();</div><div class="line"><a name="l00131"></a><span class="lineno"> 131</span>&#160;</div><div class="line"><a name="l00132"></a><span class="lineno"> 132</span>&#160; <span class="keywordtype">void</span> UpdateElementsID();</div><div class="line"><a name="l00133"></a><span class="lineno"> 133</span>&#160; <span class="keywordtype">void</span> UpdateTextElements();</div><div class="line"><a name="l00134"></a><span class="lineno"> 134</span>&#160;</div><div class="line"><a name="l00135"></a><span class="lineno"> 135</span>&#160; <span class="keywordtype">int</span> GetElementNumber(ElementID elementID) { <span class="keywordflow">return</span> m_elementNumber[elementID]; }</div><div class="line"><a name="l00136"></a><span class="lineno"> 136</span>&#160; <span class="keywordtype">void</span> IncrementElementNumber(ElementID elementID) { m_elementNumber[elementID]++; }</div><div class="line"><a name="l00137"></a><span class="lineno"> 137</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* GetProperties()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_properties; }</div><div class="line"><a name="l00138"></a><span class="lineno"> 138</span>&#160; std::vector&lt;double&gt; GetStabilityTimeVector()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_stabilityTimeVector; }</div><div class="line"><a name="l00139"></a><span class="lineno"> 139</span>&#160; <span class="keywordtype">bool</span> IsContinuousCalculationActive()<span class="keyword"> const </span>{ <span class="keywordflow">return</span> m_continuousCalc; }</div><div class="line"><a name="l00140"></a><span class="lineno"> 140</span>&#160; <span class="keywordtype">void</span> SetContinuousCalculationActive(<span class="keywordtype">bool</span> value = <span class="keyword">true</span>) { m_continuousCalc = value; }</div><div class="line"><a name="l00141"></a><span class="lineno"> 141</span>&#160; <span class="keywordtype">bool</span> RunPowerFlow();</div><div class="line"><a name="l00142"></a><span class="lineno"> 142</span>&#160; <span class="keywordtype">bool</span> RunFault();</div><div class="line"><a name="l00143"></a><span class="lineno"> 143</span>&#160; <span class="keywordtype">bool</span> RunSCPower();</div><div class="line"><a name="l00144"></a><span class="lineno"> 144</span>&#160; <span class="keywordtype">bool</span> RunStaticStudies();</div><div class="line"><a name="l00145"></a><span class="lineno"> 145</span>&#160; <span class="keywordtype">bool</span> RunStability();</div><div class="line"><a name="l00146"></a><span class="lineno"> 146</span>&#160;</div><div class="line"><a name="l00147"></a><span class="lineno"> 147</span>&#160; <span class="keyword">protected</span>:</div><div class="line"><a name="l00148"></a><span class="lineno"> 148</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00149"></a><span class="lineno"> 149</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnIdle(wxIdleEvent&amp; event);</div><div class="line"><a name="l00150"></a><span class="lineno"> 150</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnTimer(wxTimerEvent&amp; event);</div><div class="line"><a name="l00151"></a><span class="lineno"> 151</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftDoubleClick(wxMouseEvent&amp; event);</div><div class="line"><a name="l00152"></a><span class="lineno"> 152</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnRightClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00153"></a><span class="lineno"> 153</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00154"></a><span class="lineno"> 154</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnScroll(wxMouseEvent&amp; event);</div><div class="line"><a name="l00155"></a><span class="lineno"> 155</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00156"></a><span class="lineno"> 156</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMiddleUp(wxMouseEvent&amp; event);</div><div class="line"><a name="l00157"></a><span class="lineno"> 157</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnMouseMotion(wxMouseEvent&amp; event);</div><div class="line"><a name="l00158"></a><span class="lineno"> 158</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnKeyDown(wxKeyEvent&amp; event);</div><div class="line"><a name="l00159"></a><span class="lineno"> 159</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnLeftClickDown(wxMouseEvent&amp; event);</div><div class="line"><a name="l00160"></a><span class="lineno"> 160</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPaint(wxPaintEvent&amp; event);</div><div class="line"><a name="l00161"></a><span class="lineno"> 161</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">void</span> OnPopupClick(wxCommandEvent&amp; event);</div><div class="line"><a name="l00162"></a><span class="lineno"> 162</span>&#160;</div><div class="line"><a name="l00163"></a><span class="lineno"> 163</span>&#160; <span class="keywordtype">void</span> SetViewport();</div><div class="line"><a name="l00164"></a><span class="lineno"> 164</span>&#160; <span class="keywordtype">void</span> UpdateStatusBar();</div><div class="line"><a name="l00165"></a><span class="lineno"> 165</span>&#160;</div><div class="line"><a name="l00166"></a><span class="lineno"> 166</span>&#160; wxGLContext* m_glContext = NULL;</div><div class="line"><a name="l00167"></a><span class="lineno"> 167</span>&#160; wxStatusBar* m_statusBar = NULL;</div><div class="line"><a name="l00168"></a><span class="lineno"> 168</span>&#160; <a class="code" href="class_camera.html">Camera</a>* m_camera = NULL;</div><div class="line"><a name="l00169"></a><span class="lineno"> 169</span>&#160; wxTipWindow* m_tipWindow = NULL;</div><div class="line"><a name="l00170"></a><span class="lineno"> 170</span>&#160; wxString m_name;</div><div class="line"><a name="l00171"></a><span class="lineno"> 171</span>&#160;</div><div class="line"><a name="l00172"></a><span class="lineno"> 172</span>&#160; WorkspaceMode m_mode = MODE_EDIT;</div><div class="line"><a name="l00173"></a><span class="lineno"> 173</span>&#160;</div><div class="line"><a name="l00174"></a><span class="lineno"> 174</span>&#160; std::vector&lt;PowerElement*&gt; m_elementList;</div><div class="line"><a name="l00175"></a><span class="lineno"> 175</span>&#160; <span class="keywordtype">int</span> m_elementNumber[NUM_ELEMENTS];</div><div class="line"><a name="l00176"></a><span class="lineno"> 176</span>&#160;</div><div class="line"><a name="l00177"></a><span class="lineno"> 177</span>&#160; std::vector&lt;Text*&gt; m_textList;</div><div class="line"><a name="l00178"></a><span class="lineno"> 178</span>&#160;</div><div class="line"><a name="l00179"></a><span class="lineno"> 179</span>&#160; wxFileName m_savedPath;</div><div class="line"><a name="l00180"></a><span class="lineno"> 180</span>&#160;</div><div class="line"><a name="l00181"></a><span class="lineno"> 181</span>&#160; wxRect2DDouble m_selectionRect;</div><div class="line"><a name="l00182"></a><span class="lineno"> 182</span>&#160; wxPoint2DDouble m_startSelRect;</div><div class="line"><a name="l00183"></a><span class="lineno"> 183</span>&#160;</div><div class="line"><a name="l00184"></a><span class="lineno"> 184</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* m_properties = NULL;</div><div class="line"><a name="l00185"></a><span class="lineno"> 185</span>&#160;</div><div class="line"><a name="l00186"></a><span class="lineno"> 186</span>&#160; std::vector&lt;double&gt; m_stabilityTimeVector;</div><div class="line"><a name="l00187"></a><span class="lineno"> 187</span>&#160;</div><div class="line"><a name="l00188"></a><span class="lineno"> 188</span>&#160; <span class="keywordtype">bool</span> m_continuousCalc = <span class="keyword">false</span>;</div><div class="line"><a name="l00189"></a><span class="lineno"> 189</span>&#160; <span class="keywordtype">bool</span> m_disconnectedElement = <span class="keyword">false</span>;</div><div class="line"><a name="l00190"></a><span class="lineno"> 190</span>&#160; <span class="keywordtype">bool</span> m_justOpened = <span class="keyword">false</span>;</div><div class="line"><a name="l00191"></a><span class="lineno"> 191</span>&#160;};</div><div class="line"><a name="l00192"></a><span class="lineno"> 192</span>&#160;</div><div class="line"><a name="l00193"></a><span class="lineno"> 193</span>&#160;<span class="preprocessor">#endif // WORKSPACE_H</span></div><div class="ttc" id="class_text_html"><div class="ttname"><a href="class_text.html">Text</a></div><div class="ttdoc">Element that shows power element informations in workspace. </div><div class="ttdef"><b>Definition:</b> <a href="_text_8h_source.html#l00072">Text.h:72</a></div></div>
+<div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="class_element_html"><div class="ttname"><a href="class_element.html">Element</a></div><div class="ttdoc">Base class of all elements of the program. This class is responsible for manage graphical and his dat...</div><div class="ttdef"><b>Definition:</b> <a href="_element_8h_source.html#l00113">Element.h:113</a></div></div>
+<div class="ttc" id="class_power_flow_html"><div class="ttname"><a href="class_power_flow.html">PowerFlow</a></div><div class="ttdoc">Calculate the power flow. </div><div class="ttdef"><b>Definition:</b> <a href="_power_flow_8h_source.html#l00033">PowerFlow.h:33</a></div></div>
+<div class="ttc" id="class_sync_generator_html"><div class="ttname"><a href="class_sync_generator.html">SyncGenerator</a></div><div class="ttdoc">Synchronous generator power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_generator_8h_source.html#l00140">SyncGenerator.h:140</a></div></div>
+<div class="ttc" id="class_camera_html"><div class="ttname"><a href="class_camera.html">Camera</a></div><div class="ttdoc">Class responsible for the correct visualization of the elements on screen. </div><div class="ttdef"><b>Definition:</b> <a href="_camera_8h_source.html#l00030">Camera.h:30</a></div></div>
+<div class="ttc" id="_control_editor_8h_html"><div class="ttname"><a href="_control_editor_8h.html">ControlEditor.h</a></div></div>
+<div class="ttc" id="_bus_8h_html"><div class="ttname"><a href="_bus_8h.html">Bus.h</a></div></div>
<div class="ttc" id="class_workspace_base_html"><div class="ttname"><a href="class_workspace_base.html">WorkspaceBase</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_base_8h_source.html#l00035">WorkspaceBase.h:35</a></div></div>
-<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00039">ElementPlotData.h:39</a></div></div>
-<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00012">ElementDataObject.h:12</a></div></div>
-<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00035">Line.h:35</a></div></div>
-<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00010">Electromechanical.h:10</a></div></div>
-<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00023">Load.h:23</a></div></div>
-<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00016">ChartView.h:16</a></div></div>
-<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00110">SyncMotor.h:110</a></div></div>
-<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00013">Fault.h:13</a></div></div>
-<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00017">IndMotor.h:17</a></div></div>
-<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00014">Capacitor.h:14</a></div></div>
-<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00014">Inductor.h:14</a></div></div>
-<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00056">Workspace.h:56</a></div></div>
-<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00054">Transformer.h:54</a></div></div>
+<div class="ttc" id="class_element_plot_data_html"><div class="ttname"><a href="class_element_plot_data.html">ElementPlotData</a></div><div class="ttdef"><b>Definition:</b> <a href="_element_plot_data_8h_source.html#l00064">ElementPlotData.h:64</a></div></div>
+<div class="ttc" id="class_element_data_object_html"><div class="ttname"><a href="class_element_data_object.html">ElementDataObject</a></div><div class="ttdoc">Class to store the elements in the clipboard. </div><div class="ttdef"><b>Definition:</b> <a href="_element_data_object_8h_source.html#l00036">ElementDataObject.h:36</a></div></div>
+<div class="ttc" id="class_line_html"><div class="ttname"><a href="class_line.html">Line</a></div><div class="ttdoc">Power line element. </div><div class="ttdef"><b>Definition:</b> <a href="_line_8h_source.html#l00059">Line.h:59</a></div></div>
+<div class="ttc" id="class_electromechanical_html"><div class="ttname"><a href="class_electromechanical.html">Electromechanical</a></div><div class="ttdoc">Calculates the electromechanical transient based on disturbances (e.g. system fault). </div><div class="ttdef"><b>Definition:</b> <a href="_electromechanical_8h_source.html#l00051">Electromechanical.h:51</a></div></div>
+<div class="ttc" id="class_load_html"><div class="ttname"><a href="class_load.html">Load</a></div><div class="ttdoc">Loas shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_load_8h_source.html#l00042">Load.h:42</a></div></div>
+<div class="ttc" id="class_chart_view_html"><div class="ttname"><a href="class_chart_view.html">ChartView</a></div><div class="ttdoc">This class is responsible to manage the charts generated in the transient electromechanical studies...</div><div class="ttdef"><b>Definition:</b> <a href="_chart_view_8h_source.html#l00040">ChartView.h:40</a></div></div>
+<div class="ttc" id="class_sync_motor_html"><div class="ttname"><a href="class_sync_motor.html">SyncMotor</a></div><div class="ttdoc">Synchronous motor (synchronous compensator) power element. </div><div class="ttdef"><b>Definition:</b> <a href="_sync_motor_8h_source.html#l00134">SyncMotor.h:134</a></div></div>
+<div class="ttc" id="class_fault_html"><div class="ttname"><a href="class_fault.html">Fault</a></div><div class="ttdoc">Calculate the fault of the system and update the elements data. </div><div class="ttdef"><b>Definition:</b> <a href="_fault_8h_source.html#l00030">Fault.h:30</a></div></div>
+<div class="ttc" id="class_ind_motor_html"><div class="ttname"><a href="class_ind_motor.html">IndMotor</a></div><div class="ttdoc">Induction motor power element. </div><div class="ttdef"><b>Definition:</b> <a href="_ind_motor_8h_source.html#l00040">IndMotor.h:40</a></div></div>
+<div class="ttc" id="class_capacitor_html"><div class="ttname"><a href="class_capacitor.html">Capacitor</a></div><div class="ttdoc">Shunt capactior power element. </div><div class="ttdef"><b>Definition:</b> <a href="_capacitor_8h_source.html#l00038">Capacitor.h:38</a></div></div>
+<div class="ttc" id="class_inductor_html"><div class="ttname"><a href="class_inductor.html">Inductor</a></div><div class="ttdoc">Inductor shunt power element. </div><div class="ttdef"><b>Definition:</b> <a href="_inductor_8h_source.html#l00038">Inductor.h:38</a></div></div>
+<div class="ttc" id="class_workspace_html"><div class="ttname"><a href="class_workspace.html">Workspace</a></div><div class="ttdoc">This class manages the graphical and power elements. It is responsible for handling the user&amp;#39;s intera...</div><div class="ttdef"><b>Definition:</b> <a href="_workspace_8h_source.html#l00081">Workspace.h:81</a></div></div>
+<div class="ttc" id="class_transformer_html"><div class="ttname"><a href="class_transformer.html">Transformer</a></div><div class="ttdoc">Two-winding transformer power element. </div><div class="ttdef"><b>Definition:</b> <a href="_transformer_8h_source.html#l00078">Transformer.h:78</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
<ul>
- <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><b>Workspace.h</b></li>
+ <li class="navelem"><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html">Project</a></li><li class="navelem"><a class="el" href="_workspace_8h.html">Workspace.h</a></li>
<li class="footer">Generated by
<a href="http://www.doxygen.org/index.html">
<img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
diff --git a/docs/doxygen/html/_workspace_base_8cpp_source.html b/docs/doxygen/html/_workspace_base_8cpp_source.html
index 03c29e5..eeda509 100644
--- a/docs/doxygen/html/_workspace_base_8cpp_source.html
+++ b/docs/doxygen/html/_workspace_base_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_workspace_base_8h_source.html b/docs/doxygen/html/_workspace_base_8h_source.html
index b8a67a4..427bf4e 100644
--- a/docs/doxygen/html/_workspace_base_8h_source.html
+++ b/docs/doxygen/html/_workspace_base_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/_workspace_bitmaps_8cpp_source.html b/docs/doxygen/html/_workspace_bitmaps_8cpp_source.html
index e9b74a8..ce575da 100644
--- a/docs/doxygen/html/_workspace_bitmaps_8cpp_source.html
+++ b/docs/doxygen/html/_workspace_bitmaps_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/annotated.html b/docs/doxygen/html/annotated.html
index f4275bc..3949517 100644
--- a/docs/doxygen/html/annotated.html
+++ b/docs/doxygen/html/annotated.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -84,125 +90,127 @@ $(document).ready(function(){initNavTree('annotated.html','');});
<div class="contents">
<div class="textblock">Here are the classes, structs, unions and interfaces with brief descriptions:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
-<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form.html" target="_self">AboutForm</a></td><td class="desc"></td></tr>
+<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form.html" target="_self">AboutForm</a></td><td class="desc">Form to show some informations </td></tr>
<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form_base.html" target="_self">AboutFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_branch.html" target="_self">Branch</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus.html" target="_self">Bus</a></td><td class="desc"></td></tr>
+<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_branch.html" target="_self">Branch</a></td><td class="desc">Abstract class for branch power elements </td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus.html" target="_self">Bus</a></td><td class="desc"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> for power elements. All others power elements are connected through this </td></tr>
<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bus_electrical_data.html" target="_self">BusElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form.html" target="_self">BusForm</a></td><td class="desc"></td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form.html" target="_self">BusForm</a></td><td class="desc">Form to edit the bus power data </td></tr>
<tr id="row_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form_base.html" target="_self">BusFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_camera.html" target="_self">Camera</a></td><td class="desc"></td></tr>
-<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_capacitor.html" target="_self">Capacitor</a></td><td class="desc"></td></tr>
+<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_camera.html" target="_self">Camera</a></td><td class="desc">Class responsible for the correct visualization of the elements on screen </td></tr>
+<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_capacitor.html" target="_self">Capacitor</a></td><td class="desc"><a class="el" href="class_shunt.html" title="Abstract class for shunt power elements. ">Shunt</a> capactior power element </td></tr>
<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_capacitor_electrical_data.html" target="_self">CapacitorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view.html" target="_self">ChartView</a></td><td class="desc"></td></tr>
+<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view.html" target="_self">ChartView</a></td><td class="desc">This class is responsible to manage the charts generated in the transient electromechanical studies </td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view_base.html" target="_self">ChartViewBase</a></td><td class="desc"></td></tr>
-<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_connection_line.html" target="_self">ConnectionLine</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
-<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form.html" target="_self">ConstantForm</a></td><td class="desc"></td></tr>
+<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_connection_line.html" target="_self">ConnectionLine</a></td><td class="desc">Connection between two control elements or other connection line and an element </td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant.html" target="_self">Constant</a></td><td class="desc">A control element that provides a constant value </td></tr>
+<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form.html" target="_self">ConstantForm</a></td><td class="desc">Form to edit the constant control data </td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form_base.html" target="_self">ConstantFormBase</a></td><td class="desc"></td></tr>
<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor.html" target="_self">ControlEditor</a></td><td class="desc"></td></tr>
<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor_base.html" target="_self">ControlEditorBase</a></td><td class="desc"></td></tr>
<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element.html" target="_self">ControlElement</a></td><td class="desc"></td></tr>
-<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_button.html" target="_self">ControlElementButton</a></td><td class="desc"></td></tr>
-<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_container.html" target="_self">ControlElementContainer</a></td><td class="desc"></td></tr>
-<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_solver.html" target="_self">ControlElementSolver</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test.html" target="_self">ControlSystemTest</a></td><td class="desc"></td></tr>
+<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_button.html" target="_self">ControlElementButton</a></td><td class="desc">This class is responsible to handle the user interaction with control elements </td></tr>
+<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_container.html" target="_self">ControlElementContainer</a></td><td class="desc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic list and store them separately </td></tr>
+<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_solver.html" target="_self">ControlElementSolver</a></td><td class="desc">Solves in the time the control system. Can solve the control system directly from a <a class="el" href="class_control_editor.html">ControlEditor</a> or from a ControlEditorElement </td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test.html" target="_self">ControlSystemTest</a></td><td class="desc">Form to edit properties to test the control system created </td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test_base.html" target="_self">ControlSystemTestBase</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report.html" target="_self">DataReport</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report.html" target="_self">DataReport</a></td><td class="desc">Form that shows the results of power flow and fault calculations </td></tr>
<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report_base.html" target="_self">DataReportBase</a></td><td class="desc"></td></tr>
-<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electric_calculation.html" target="_self">ElectricCalculation</a></td><td class="desc"></td></tr>
-<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electromechanical.html" target="_self">Electromechanical</a></td><td class="desc"></td></tr>
-<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element.html" target="_self">Element</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_data_object.html" target="_self">ElementDataObject</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electric_calculation.html" target="_self">ElectricCalculation</a></td><td class="desc">Base class of electric calculations, with general methods </td></tr>
+<tr id="row_27_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electromechanical.html" target="_self">Electromechanical</a></td><td class="desc">Calculates the electromechanical transient based on disturbances (e.g. system fault) </td></tr>
+<tr id="row_28_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element.html" target="_self">Element</a></td><td class="desc">Base class of all elements of the program. This class is responsible for manage graphical and his data </td></tr>
+<tr id="row_29_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_data_object.html" target="_self">ElementDataObject</a></td><td class="desc">Class to store the elements in the clipboard </td></tr>
<tr id="row_30_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_plot_data.html" target="_self">ElementPlotData</a></td><td class="desc"></td></tr>
<tr id="row_31_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_elements_lists.html" target="_self">ElementsLists</a></td><td class="desc"></td></tr>
-<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential.html" target="_self">Exponential</a></td><td class="desc"></td></tr>
-<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form.html" target="_self">ExponentialForm</a></td><td class="desc"></td></tr>
+<tr id="row_32_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential.html" target="_self">Exponential</a></td><td class="desc">Generates an output following an exponential function </td></tr>
+<tr id="row_33_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form.html" target="_self">ExponentialForm</a></td><td class="desc">Form to edit the exponential control data </td></tr>
<tr id="row_34_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form_base.html" target="_self">ExponentialFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fault.html" target="_self">Fault</a></td><td class="desc"></td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_file_handing.html" target="_self">FileHanding</a></td><td class="desc"></td></tr>
-<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain.html" target="_self">Gain</a></td><td class="desc"></td></tr>
-<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form.html" target="_self">GainForm</a></td><td class="desc"></td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fault.html" target="_self">Fault</a></td><td class="desc">Calculate the fault of the system and update the elements data </td></tr>
+<tr id="row_36_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_file_handing.html" target="_self">FileHanding</a></td><td class="desc">Save and opens the projects created on disk </td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain.html" target="_self">Gain</a></td><td class="desc">Provide an output multiplying the input by a constant </td></tr>
+<tr id="row_38_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form.html" target="_self">GainForm</a></td><td class="desc">Form to edit the gain control data </td></tr>
<tr id="row_39_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form_base.html" target="_self">GainFormBase</a></td><td class="desc"></td></tr>
<tr id="row_40_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_general_data.html" target="_self">GeneralData</a></td><td class="desc"></td></tr>
-<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form.html" target="_self">GeneralPropertiesForm</a></td><td class="desc"></td></tr>
+<tr id="row_41_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form.html" target="_self">GeneralPropertiesForm</a></td><td class="desc">Form to edit the software's general data </td></tr>
<tr id="row_42_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form_base.html" target="_self">GeneralPropertiesFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form.html" target="_self">GeneratorStabForm</a></td><td class="desc"></td></tr>
+<tr id="row_43_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form.html" target="_self">GeneratorStabForm</a></td><td class="desc">Form to edit the synchronous generator data for electromechanical studies </td></tr>
<tr id="row_44_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form_base.html" target="_self">GeneratorStabFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_graphical_element.html" target="_self">GraphicalElement</a></td><td class="desc"></td></tr>
-<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor.html" target="_self">IndMotor</a></td><td class="desc"></td></tr>
+<tr id="row_45_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_graphical_element.html" target="_self">GraphicalElement</a></td><td class="desc">Abstract class for graphical elements shown with power elements in workspace </td></tr>
+<tr id="row_46_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor.html" target="_self">IndMotor</a></td><td class="desc">Induction motor power element </td></tr>
<tr id="row_47_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ind_motor_electrical_data.html" target="_self">IndMotorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form.html" target="_self">IndMotorForm</a></td><td class="desc"></td></tr>
+<tr id="row_48_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form.html" target="_self">IndMotorForm</a></td><td class="desc">Form to edit the induction motor power data </td></tr>
<tr id="row_49_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form_base.html" target="_self">IndMotorFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_inductor.html" target="_self">Inductor</a></td><td class="desc"></td></tr>
+<tr id="row_50_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_inductor.html" target="_self">Inductor</a></td><td class="desc"><a class="el" href="class_inductor.html" title="Inductor shunt power element. ">Inductor</a> shunt power element </td></tr>
<tr id="row_51_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_inductor_electrical_data.html" target="_self">InductorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_integration_constant.html" target="_self">IntegrationConstant</a></td><td class="desc"></td></tr>
-<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control.html" target="_self">IOControl</a></td><td class="desc"></td></tr>
-<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form.html" target="_self">IOControlForm</a></td><td class="desc"></td></tr>
+<tr id="row_52_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_integration_constant.html" target="_self">IntegrationConstant</a></td><td class="desc">Integration constants to calculate dynamic elements through trapezoidal integration method </td></tr>
+<tr id="row_53_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control.html" target="_self">IOControl</a></td><td class="desc">Provides the communication with the power element </td></tr>
+<tr id="row_54_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form.html" target="_self">IOControlForm</a></td><td class="desc">Form to edit the input/output control data </td></tr>
<tr id="row_55_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form_base.html" target="_self">IOControlFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter.html" target="_self">Limiter</a></td><td class="desc"></td></tr>
-<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form.html" target="_self">LimiterForm</a></td><td class="desc"></td></tr>
+<tr id="row_56_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter.html" target="_self">Limiter</a></td><td class="desc">Limits the input value by superior and inferior values </td></tr>
+<tr id="row_57_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form.html" target="_self">LimiterForm</a></td><td class="desc">Form to edit the limit control data </td></tr>
<tr id="row_58_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form_base.html" target="_self">LimiterFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line.html" target="_self">Line</a></td><td class="desc"></td></tr>
+<tr id="row_59_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line.html" target="_self">Line</a></td><td class="desc">Power line element </td></tr>
<tr id="row_60_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_line_electrical_data.html" target="_self">LineElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form.html" target="_self">LineForm</a></td><td class="desc"></td></tr>
+<tr id="row_61_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form.html" target="_self">LineForm</a></td><td class="desc">Form to edit the line power data </td></tr>
<tr id="row_62_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form_base.html" target="_self">LineFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
+<tr id="row_63_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load.html" target="_self">Load</a></td><td class="desc">Loas shunt power element </td></tr>
<tr id="row_64_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_load_electrical_data.html" target="_self">LoadElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form.html" target="_self">LoadForm</a></td><td class="desc"></td></tr>
+<tr id="row_65_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form.html" target="_self">LoadForm</a></td><td class="desc">Form to edit the load power data </td></tr>
<tr id="row_66_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form_base.html" target="_self">LoadFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_machines.html" target="_self">Machines</a></td><td class="desc"></td></tr>
+<tr id="row_67_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_machines.html" target="_self">Machines</a></td><td class="desc">Abstract class for rotary machines power elements </td></tr>
<tr id="row_68_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_app.html" target="_self">MainApp</a></td><td class="desc"></td></tr>
-<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame.html" target="_self">MainFrame</a></td><td class="desc"></td></tr>
+<tr id="row_69_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame.html" target="_self">MainFrame</a></td><td class="desc">Main frame of the program. This class manage the ribbon menu and the notebook behavior </td></tr>
<tr id="row_70_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame_base.html" target="_self">MainFrameBase</a></td><td class="desc"></td></tr>
-<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_multiplier.html" target="_self">Multiplier</a></td><td class="desc"></td></tr>
-<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_node.html" target="_self">Node</a></td><td class="desc"></td></tr>
-<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_open_g_l_colour.html" target="_self">OpenGLColour</a></td><td class="desc"></td></tr>
-<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_plot_data.html" target="_self">PlotData</a></td><td class="desc"></td></tr>
-<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_element.html" target="_self">PowerElement</a></td><td class="desc"></td></tr>
-<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_flow.html" target="_self">PowerFlow</a></td><td class="desc"></td></tr>
-<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_properties_data.html" target="_self">PropertiesData</a></td><td class="desc"></td></tr>
-<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter.html" target="_self">RateLimiter</a></td><td class="desc"></td></tr>
-<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form.html" target="_self">RateLimiterForm</a></td><td class="desc"></td></tr>
+<tr id="row_71_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_multiplier.html" target="_self">Multiplier</a></td><td class="desc">Multiplies two inputs </td></tr>
+<tr id="row_72_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_node.html" target="_self">Node</a></td><td class="desc"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> of a control element. This class manages the user interaction with the connection and control elements </td></tr>
+<tr id="row_73_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_open_g_l_colour.html" target="_self">OpenGLColour</a></td><td class="desc">Class to manage color of OpenGL </td></tr>
+<tr id="row_74_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_plot_data.html" target="_self">PlotData</a></td><td class="desc">This class is responsible to manage the graphical data of electromechanical result to be plotted on chart viewer </td></tr>
+<tr id="row_75_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_element.html" target="_self">PowerElement</a></td><td class="desc">Abstract class of power elements </td></tr>
+<tr id="row_76_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_flow.html" target="_self">PowerFlow</a></td><td class="desc">Calculate the power flow </td></tr>
+<tr id="row_77_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_properties_data.html" target="_self">PropertiesData</a></td><td class="desc">General and simulation data manager </td></tr>
+<tr id="row_78_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter.html" target="_self">RateLimiter</a></td><td class="desc">Limits the rising and/or falling rate.<br />
+ </td></tr>
+<tr id="row_79_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form.html" target="_self">RateLimiterForm</a></td><td class="desc">Form to edit the rate limit control data </td></tr>
<tr id="row_80_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form_base.html" target="_self">RateLimiterFormBase</a></td><td class="desc"></td></tr>
<tr id="row_81_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_reactive_limits.html" target="_self">ReactiveLimits</a></td><td class="desc"></td></tr>
-<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form.html" target="_self">ReactiveShuntElementForm</a></td><td class="desc"></td></tr>
+<tr id="row_82_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form.html" target="_self">ReactiveShuntElementForm</a></td><td class="desc">Form to edit the reactive shunt element power data </td></tr>
<tr id="row_83_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form_base.html" target="_self">ReactiveShuntElementFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_shunt.html" target="_self">Shunt</a></td><td class="desc"></td></tr>
+<tr id="row_84_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_shunt.html" target="_self">Shunt</a></td><td class="desc">Abstract class for shunt power elements </td></tr>
<tr id="row_85_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_simulation_data.html" target="_self">SimulationData</a></td><td class="desc"></td></tr>
-<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form.html" target="_self">SimulationsSettingsForm</a></td><td class="desc"></td></tr>
+<tr id="row_86_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form.html" target="_self">SimulationsSettingsForm</a></td><td class="desc">Form to edit the simulation data </td></tr>
<tr id="row_87_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form_base.html" target="_self">SimulationsSettingsFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum.html" target="_self">Sum</a></td><td class="desc"></td></tr>
-<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form.html" target="_self">SumForm</a></td><td class="desc"></td></tr>
+<tr id="row_88_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum.html" target="_self">Sum</a></td><td class="desc"><a class="el" href="class_sum.html" title="Sum the all inputs (can choose the input signal). ">Sum</a> the all inputs (can choose the input signal) </td></tr>
+<tr id="row_89_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form.html" target="_self">SumForm</a></td><td class="desc">Form to edit the sum control data </td></tr>
<tr id="row_90_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form_base.html" target="_self">SumFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_switching_data.html" target="_self">SwitchingData</a></td><td class="desc"></td></tr>
-<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form.html" target="_self">SwitchingForm</a></td><td class="desc"></td></tr>
+<tr id="row_91_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_switching_data.html" target="_self">SwitchingData</a></td><td class="desc">Switching data of power elements </td></tr>
+<tr id="row_92_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form.html" target="_self">SwitchingForm</a></td><td class="desc">Form to edit the switching data of power elements for electromechanical transient studies </td></tr>
<tr id="row_93_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form_base.html" target="_self">SwitchingFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_generator.html" target="_self">SyncGenerator</a></td><td class="desc"></td></tr>
+<tr id="row_94_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_generator.html" target="_self">SyncGenerator</a></td><td class="desc">Synchronous generator power element </td></tr>
<tr id="row_95_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_generator_electrical_data.html" target="_self">SyncGeneratorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form.html" target="_self">SyncMachineForm</a></td><td class="desc"></td></tr>
+<tr id="row_96_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form.html" target="_self">SyncMachineForm</a></td><td class="desc">Form to edit the synchronous machine power data </td></tr>
<tr id="row_97_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form_base.html" target="_self">SyncMachineFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_motor.html" target="_self">SyncMotor</a></td><td class="desc"></td></tr>
-<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_motor_electrical_data.html" target="_self">SyncMotorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text.html" target="_self">Text</a></td><td class="desc"></td></tr>
-<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form.html" target="_self">TextForm</a></td><td class="desc"></td></tr>
-<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form_base.html" target="_self">TextFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_g_l_drawable.html" target="_self">TextGLDrawable</a></td><td class="desc"></td></tr>
-<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_texture.html" target="_self">TextTexture</a></td><td class="desc"></td></tr>
-<tr id="row_105_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_105_" class="arrow" onclick="toggleFolder('105_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function.html" target="_self">TransferFunction</a></td><td class="desc"></td></tr>
-<tr id="row_105_0_" class="even" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transfer_function_1_1_space_state.html" target="_self">SpaceState</a></td><td class="desc"></td></tr>
-<tr id="row_106_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form.html" target="_self">TransferFunctionForm</a></td><td class="desc"></td></tr>
-<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form_base.html" target="_self">TransferFunctionFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer.html" target="_self">Transformer</a></td><td class="desc"></td></tr>
-<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transformer_electrical_data.html" target="_self">TransformerElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form.html" target="_self">TransformerForm</a></td><td class="desc"></td></tr>
-<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form_base.html" target="_self">TransformerFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace.html" target="_self">Workspace</a></td><td class="desc"></td></tr>
-<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace_base.html" target="_self">WorkspaceBase</a></td><td class="desc"></td></tr>
-<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_number_renderer.html" target="_self">wxGLNumberRenderer</a></td><td class="desc"></td></tr>
-<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
-<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string_array.html" target="_self">wxGLStringArray</a></td><td class="desc"></td></tr>
-<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_ribbon_metro_art_provider.html" target="_self">wxRibbonMetroArtProvider</a></td><td class="desc"></td></tr>
+<tr id="row_98_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_machine_model_data.html" target="_self">SyncMachineModelData</a></td><td class="desc">Synchronous machine data for different models </td></tr>
+<tr id="row_99_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_motor.html" target="_self">SyncMotor</a></td><td class="desc">Synchronous motor (synchronous compensator) power element </td></tr>
+<tr id="row_100_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_motor_electrical_data.html" target="_self">SyncMotorElectricalData</a></td><td class="desc"></td></tr>
+<tr id="row_101_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text.html" target="_self">Text</a></td><td class="desc"><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that shows power element informations in workspace </td></tr>
+<tr id="row_102_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form.html" target="_self">TextForm</a></td><td class="desc">Form to edit the text graphical data </td></tr>
+<tr id="row_103_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form_base.html" target="_self">TextFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_104_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_g_l_drawable.html" target="_self">TextGLDrawable</a></td><td class="desc"></td></tr>
+<tr id="row_105_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_texture.html" target="_self">TextTexture</a></td><td class="desc"></td></tr>
+<tr id="row_106_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_106_" class="arrow" onclick="toggleFolder('106_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function.html" target="_self">TransferFunction</a></td><td class="desc">Calculates the time response by a frequency domain transfer function </td></tr>
+<tr id="row_106_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transfer_function_1_1_space_state.html" target="_self">SpaceState</a></td><td class="desc"></td></tr>
+<tr id="row_107_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form.html" target="_self">TransferFunctionForm</a></td><td class="desc">Form to edit the transfer function control data </td></tr>
+<tr id="row_108_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form_base.html" target="_self">TransferFunctionFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_109_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer.html" target="_self">Transformer</a></td><td class="desc">Two-winding transformer power element </td></tr>
+<tr id="row_110_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transformer_electrical_data.html" target="_self">TransformerElectricalData</a></td><td class="desc"></td></tr>
+<tr id="row_111_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form.html" target="_self">TransformerForm</a></td><td class="desc">Form to edit the transformer power data </td></tr>
+<tr id="row_112_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form_base.html" target="_self">TransformerFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_113_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace.html" target="_self">Workspace</a></td><td class="desc">This class manages the graphical and power elements. It is responsible for handling the user's interaction with the elements </td></tr>
+<tr id="row_114_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace_base.html" target="_self">WorkspaceBase</a></td><td class="desc"></td></tr>
+<tr id="row_115_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_number_renderer.html" target="_self">wxGLNumberRenderer</a></td><td class="desc"></td></tr>
+<tr id="row_116_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
+<tr id="row_117_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string_array.html" target="_self">wxGLStringArray</a></td><td class="desc"></td></tr>
+<tr id="row_118_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_ribbon_metro_art_provider.html" target="_self">wxRibbonMetroArtProvider</a></td><td class="desc"></td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/docs/doxygen/html/annotated_dup.js b/docs/doxygen/html/annotated_dup.js
index e2c2bac..cade99c 100644
--- a/docs/doxygen/html/annotated_dup.js
+++ b/docs/doxygen/html/annotated_dup.js
@@ -98,6 +98,7 @@ var annotated_dup =
[ "SyncGeneratorElectricalData", "struct_sync_generator_electrical_data.html", "struct_sync_generator_electrical_data" ],
[ "SyncMachineForm", "class_sync_machine_form.html", "class_sync_machine_form" ],
[ "SyncMachineFormBase", "class_sync_machine_form_base.html", "class_sync_machine_form_base" ],
+ [ "SyncMachineModelData", "struct_sync_machine_model_data.html", "struct_sync_machine_model_data" ],
[ "SyncMotor", "class_sync_motor.html", "class_sync_motor" ],
[ "SyncMotorElectricalData", "struct_sync_motor_electrical_data.html", "struct_sync_motor_electrical_data" ],
[ "Text", "class_text.html", "class_text" ],
diff --git a/docs/doxygen/html/class_about_form-members.html b/docs/doxygen/html/class_about_form-members.html
index b8f5102..3826bd7 100644
--- a/docs/doxygen/html/class_about_form-members.html
+++ b/docs/doxygen/html/class_about_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_about_form.html b/docs/doxygen/html/class_about_form.html
index 6243c4f..97ff3a4 100644
--- a/docs/doxygen/html/class_about_form.html
+++ b/docs/doxygen/html/class_about_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_about_form.html','');});
<div class="title">AboutForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to show some informations.
+ <a href="class_about_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_about_form_8h_source.html">AboutForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for AboutForm:</div>
<div class="dyncontent">
@@ -192,8 +203,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonOK</b><
<tr class="separator:ab8d26c339ff508e7497e011cca359246 inherit pro_attribs_class_about_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_about_form_8h_source.html#l00007">7</a> of file <a class="el" href="_about_form_8h_source.html">AboutForm.h</a>.</p>
+<div class="textblock"><p>Form to show some informations. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_about_form_8h_source.html#l00032">32</a> of file <a class="el" href="_about_form_8h_source.html">AboutForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_about_form_8h_source.html">AboutForm.h</a></li>
<li>Project/<a class="el" href="_about_form_8cpp_source.html">AboutForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_about_form_base-members.html b/docs/doxygen/html/class_about_form_base-members.html
index 6f8ef15..57bf4db 100644
--- a/docs/doxygen/html/class_about_form_base-members.html
+++ b/docs/doxygen/html/class_about_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_about_form_base.html b/docs/doxygen/html/class_about_form_base.html
index 2e5688f..cb07e5a 100644
--- a/docs/doxygen/html/class_about_form_base.html
+++ b/docs/doxygen/html/class_about_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for AboutFormBase:</div>
<div class="center">
<img src="class_about_form_base.png" usemap="#AboutFormBase_map" alt=""/>
<map id="AboutFormBase_map" name="AboutFormBase_map">
-<area href="class_about_form.html" alt="AboutForm" shape="rect" coords="0,112,102,136"/>
+<area href="class_about_form.html" title="Form to show some informations. " alt="AboutForm" shape="rect" coords="0,112,102,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_branch-members.html b/docs/doxygen/html/class_branch-members.html
index 1bec124..50e5da0 100644
--- a/docs/doxygen/html/class_branch-members.html
+++ b/docs/doxygen/html/class_branch-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_branch.html b/docs/doxygen/html/class_branch.html
index faaa9bf..e69acbd 100644
--- a/docs/doxygen/html/class_branch.html
+++ b/docs/doxygen/html/class_branch.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,16 +92,21 @@ $(document).ready(function(){initNavTree('class_branch.html','');});
<div class="title">Branch Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Abstract class for branch power elements.
+ <a href="class_branch.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_branch_8h_source.html">Branch.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Branch:</div>
<div class="dyncontent">
<div class="center">
<img src="class_branch.png" usemap="#Branch_map" alt=""/>
<map id="Branch_map" name="Branch_map">
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="51,56,143,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="51,0,143,24"/>
-<area href="class_line.html" alt="Line" shape="rect" coords="0,168,92,192"/>
-<area href="class_transformer.html" alt="Transformer" shape="rect" coords="102,168,194,192"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="51,56,143,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="51,0,143,24"/>
+<area href="class_line.html" title="Power line element. " alt="Line" shape="rect" coords="0,168,92,192"/>
+<area href="class_transformer.html" title="Two-winding transformer power element. " alt="Transformer" shape="rect" coords="102,168,194,192"/>
</map>
</div></div>
<table class="memberdecls">
@@ -502,8 +513,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00007">7</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<div class="textblock"><p>Abstract class for branch power elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00031">31</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a8d6d80c50f849c5be2bccffd5b524e21"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d6d80c50f849c5be2bccffd5b524e21">&#9670;&nbsp;</a></span>AddPoint()</h2>
@@ -541,7 +555,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00027">27</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00051">51</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -581,7 +595,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0">Transformer</a>, and <a class="el" href="class_line.html#a05eb3761f198a058045f85d6e685ca97">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00013">13</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00037">37</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -632,7 +646,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422">Transformer</a>, and <a class="el" href="class_line.html#a297e12aa8ff0be5d344e245732487bdd">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00014">14</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00038">38</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -666,7 +680,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00022">22</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00046">46</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -707,7 +721,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer</a>, and <a class="el" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00028">28</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00052">52</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -747,7 +761,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a39b58fcf230970601c5d77c088559731">Transformer</a>, and <a class="el" href="class_line.html#a125581fc6d21c83565b902751af331dc">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00023">23</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00047">47</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -787,7 +801,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer</a>, and <a class="el" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00015">15</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00039">39</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -828,7 +842,7 @@ Additional Inherited Members</h2></td></tr>
<p>Move a node. <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -838,7 +852,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer</a>, and <a class="el" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00017">17</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00041">41</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -878,7 +892,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00024">24</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00048">48</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -917,7 +931,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00008">8</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00022">22</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
</div>
</div>
@@ -958,7 +972,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00025">25</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00049">49</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
@@ -996,7 +1010,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00090">90</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00105">105</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
</div>
</div>
@@ -1037,7 +1051,7 @@ Additional Inherited Members</h2></td></tr>
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -1047,7 +1061,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer</a>, and <a class="el" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00128">128</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00143">143</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
</div>
</div>
@@ -1078,7 +1092,7 @@ Additional Inherited Members</h2></td></tr>
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -1088,7 +1102,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer</a>, and <a class="el" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00028">28</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8cpp_source.html#l00043">43</a> of file <a class="el" href="_branch_8cpp_source.html">Branch.cpp</a>.</p>
</div>
</div>
@@ -1128,7 +1142,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer</a>, and <a class="el" href="class_line.html#abb812387508a9971570bfa1d38e41041">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00016">16</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_branch_8h_source.html#l00040">40</a> of file <a class="el" href="_branch_8h_source.html">Branch.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_bus-members.html b/docs/doxygen/html/class_bus-members.html
index 0564bde..351efbc 100644
--- a/docs/doxygen/html/class_bus-members.html
+++ b/docs/doxygen/html/class_bus-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_bus.html b/docs/doxygen/html/class_bus.html
index 80caefa..c613d83 100644
--- a/docs/doxygen/html/class_bus.html
+++ b/docs/doxygen/html/class_bus.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,14 +92,19 @@ $(document).ready(function(){initNavTree('class_bus.html','');});
<div class="title">Bus Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> for power elements. All others power elements are connected through this.
+ <a href="class_bus.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_bus_8h_source.html">Bus.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Bus:</div>
<div class="dyncontent">
<div class="center">
<img src="class_bus.png" usemap="#Bus_map" alt=""/>
<map id="Bus_map" name="Bus_map">
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -509,8 +520,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00045">45</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> for power elements. All others power elements are connected through this. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00069">69</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ab046baebe4bfe0a52905148d78f44681"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab046baebe4bfe0a52905148d78f44681">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -549,15 +563,15 @@ Additional Inherited Members</h2></td></tr>
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00053">53</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00077">77</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
</div>
</div>
@@ -595,7 +609,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00087">87</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00104">104</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -644,7 +658,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00024">24</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00041">41</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -676,7 +690,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a245924c5be948397b101787dbea565ea">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00124">124</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00141">141</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -715,7 +729,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00176">176</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00193">193</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -747,7 +761,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00195">195</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00212">212</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -786,7 +800,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00229">229</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00246">246</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -818,7 +832,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00201">201</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00218">218</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -856,7 +870,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00093">93</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00110">110</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -894,7 +908,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00141">141</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00158">158</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -933,7 +947,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#af4815de7e7698ea116e8e2af51414050">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00100">100</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00117">117</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -971,7 +985,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00167">167</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00184">184</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
@@ -1013,7 +1027,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -1021,7 +1035,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00183">183</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8cpp_source.html#l00200">200</a> of file <a class="el" href="_bus_8cpp_source.html">Bus.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_bus_form-members.html b/docs/doxygen/html/class_bus_form-members.html
index dc5cab5..3818b01 100644
--- a/docs/doxygen/html/class_bus_form-members.html
+++ b/docs/doxygen/html/class_bus_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_bus_form.html b/docs/doxygen/html/class_bus_form.html
index bf3d4ed..4d0099f 100644
--- a/docs/doxygen/html/class_bus_form.html
+++ b/docs/doxygen/html/class_bus_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_bus_form.html','');});
<div class="title">BusForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the bus power data.
+ <a href="class_bus_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_bus_form_8h_source.html">BusForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for BusForm:</div>
<div class="dyncontent">
@@ -394,8 +405,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:aa9546384b368a06197565391b6c38315 inherit pro_attribs_class_bus_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_bus_form_8h_source.html#l00007">7</a> of file <a class="el" href="_bus_form_8h_source.html">BusForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the bus power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_bus_form_8h_source.html#l00031">31</a> of file <a class="el" href="_bus_form_8h_source.html">BusForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_bus_form_8h_source.html">BusForm.h</a></li>
<li>Project/<a class="el" href="_bus_form_8cpp_source.html">BusForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_bus_form_base-members.html b/docs/doxygen/html/class_bus_form_base-members.html
index 14bfc84..654f60c 100644
--- a/docs/doxygen/html/class_bus_form_base-members.html
+++ b/docs/doxygen/html/class_bus_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_bus_form_base.html b/docs/doxygen/html/class_bus_form_base.html
index 4545239..6ac6ad6 100644
--- a/docs/doxygen/html/class_bus_form_base.html
+++ b/docs/doxygen/html/class_bus_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for BusFormBase:</div>
<div class="center">
<img src="class_bus_form_base.png" usemap="#BusFormBase_map" alt=""/>
<map id="BusFormBase_map" name="BusFormBase_map">
-<area href="class_bus_form.html" alt="BusForm" shape="rect" coords="0,112,90,136"/>
+<area href="class_bus_form.html" title="Form to edit the bus power data. " alt="BusForm" shape="rect" coords="0,112,90,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_camera-members.html b/docs/doxygen/html/class_camera-members.html
index d984e94..6576f53 100644
--- a/docs/doxygen/html/class_camera-members.html
+++ b/docs/doxygen/html/class_camera-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_camera.html b/docs/doxygen/html/class_camera.html
index 3540ffe..44bca8c 100644
--- a/docs/doxygen/html/class_camera.html
+++ b/docs/doxygen/html/class_camera.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_camera.html','');});
<div class="title">Camera Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Class responsible for the correct visualization of the elements on screen.
+ <a href="class_camera.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_camera_8h_source.html">Camera.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -145,8 +156,11 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>m_zoomMax</b> = 3.0
<tr class="separator:a46434cdf939f99eb9d7b6a6260c6954a"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_camera_8h_source.html#l00006">6</a> of file <a class="el" href="_camera_8h_source.html">Camera.h</a>.</p>
+<div class="textblock"><p>Class responsible for the correct visualization of the elements on screen. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_camera_8h_source.html#l00030">30</a> of file <a class="el" href="_camera_8h_source.html">Camera.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_camera_8h_source.html">Camera.h</a></li>
<li>Project/<a class="el" href="_camera_8cpp_source.html">Camera.cpp</a></li>
diff --git a/docs/doxygen/html/class_capacitor-members.html b/docs/doxygen/html/class_capacitor-members.html
index ee1ec82..9fe0a90 100644
--- a/docs/doxygen/html/class_capacitor-members.html
+++ b/docs/doxygen/html/class_capacitor-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_capacitor.html b/docs/doxygen/html/class_capacitor.html
index d4f6f84..3ebe8fc 100644
--- a/docs/doxygen/html/class_capacitor.html
+++ b/docs/doxygen/html/class_capacitor.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_capacitor.html','');});
<div class="title">Capacitor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_shunt.html" title="Abstract class for shunt power elements. ">Shunt</a> capactior power element.
+ <a href="class_capacitor.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Capacitor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_capacitor.png" usemap="#Capacitor_map" alt=""/>
<map id="Capacitor_map" name="Capacitor_map">
-<area href="class_shunt.html" alt="Shunt" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_shunt.html" title="Abstract class for shunt power elements. " alt="Shunt" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -525,8 +536,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<tr class="separator:a902525eebbb4bf3ecaab0e1e60b6f017 inherit pro_methods_class_shunt"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_capacitor_8h_source.html#l00014">14</a> of file <a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_shunt.html" title="Abstract class for shunt power elements. ">Shunt</a> capactior power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_capacitor_8h_source.html#l00038">38</a> of file <a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ace755e5bc3cc72b491ce31c24c54a5cf"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ace755e5bc3cc72b491ce31c24c54a5cf">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -565,15 +579,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00007">7</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00024">24</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -611,7 +625,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00117">117</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00134">134</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -660,7 +674,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00038">38</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00055">55</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -699,7 +713,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00110">110</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00127">127</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -731,7 +745,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00163">163</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00180">180</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -763,7 +777,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00170">170</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00187">187</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -801,7 +815,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00123">123</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00140">140</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -839,7 +853,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00098">98</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00115">115</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
@@ -881,7 +895,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -889,7 +903,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00128">128</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8cpp_source.html#l00145">145</a> of file <a class="el" href="_capacitor_8cpp_source.html">Capacitor.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_chart_view-members.html b/docs/doxygen/html/class_chart_view-members.html
index db4c4f8..102d504 100644
--- a/docs/doxygen/html/class_chart_view-members.html
+++ b/docs/doxygen/html/class_chart_view-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_chart_view.html b/docs/doxygen/html/class_chart_view.html
index 8b656ea..99d195f 100644
--- a/docs/doxygen/html/class_chart_view.html
+++ b/docs/doxygen/html/class_chart_view.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_chart_view.html','');});
<div class="title">ChartView Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This class is responsible to manage the charts generated in the transient electromechanical studies.
+ <a href="class_chart_view.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_chart_view_8h_source.html">ChartView.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ChartView:</div>
<div class="dyncontent">
@@ -346,8 +357,11 @@ wxPGProperty *&#160;</td><td class="memItemRight" valign="bottom"><b>m_pgPropYMa
<tr class="separator:a43e25960f37484e564f8043b273760cd inherit pro_attribs_class_chart_view_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_chart_view_8h_source.html#l00016">16</a> of file <a class="el" href="_chart_view_8h_source.html">ChartView.h</a>.</p>
+<div class="textblock"><p>This class is responsible to manage the charts generated in the transient electromechanical studies. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_chart_view_8h_source.html#l00040">40</a> of file <a class="el" href="_chart_view_8h_source.html">ChartView.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_chart_view_8h_source.html">ChartView.h</a></li>
<li>Project/<a class="el" href="_chart_view_8cpp_source.html">ChartView.cpp</a></li>
diff --git a/docs/doxygen/html/class_chart_view_base-members.html b/docs/doxygen/html/class_chart_view_base-members.html
index 2b30901..9708ca4 100644
--- a/docs/doxygen/html/class_chart_view_base-members.html
+++ b/docs/doxygen/html/class_chart_view_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_chart_view_base.html b/docs/doxygen/html/class_chart_view_base.html
index 6d2b528..7f631eb 100644
--- a/docs/doxygen/html/class_chart_view_base.html
+++ b/docs/doxygen/html/class_chart_view_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for ChartViewBase:</div>
<div class="center">
<img src="class_chart_view_base.png" usemap="#ChartViewBase_map" alt=""/>
<map id="ChartViewBase_map" name="ChartViewBase_map">
-<area href="class_chart_view.html" alt="ChartView" shape="rect" coords="0,112,99,136"/>
+<area href="class_chart_view.html" title="This class is responsible to manage the charts generated in the transient electromechanical studies..." alt="ChartView" shape="rect" coords="0,112,99,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_connection_line-members.html b/docs/doxygen/html/class_connection_line-members.html
index 02dbc4d..3beed78 100644
--- a/docs/doxygen/html/class_connection_line-members.html
+++ b/docs/doxygen/html/class_connection_line-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_connection_line.html b/docs/doxygen/html/class_connection_line.html
index c986c39..131c5ce 100644
--- a/docs/doxygen/html/class_connection_line.html
+++ b/docs/doxygen/html/class_connection_line.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_connection_line.html','');});
<div class="title">ConnectionLine Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Connection between two control elements or other connection line and an element.
+ <a href="class_connection_line.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_connection_line_8h_source.html">ConnectionLine.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ConnectionLine:</div>
<div class="dyncontent">
@@ -94,7 +105,7 @@ Inheritance diagram for ConnectionLine:</div>
<img src="class_connection_line.png" usemap="#ConnectionLine_map" alt=""/>
<map id="ConnectionLine_map" name="ConnectionLine_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,100,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,100,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,100,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -518,8 +529,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_connection_line_8h_source.html#l00006">6</a> of file <a class="el" href="_connection_line_8h_source.html">ConnectionLine.h</a>.</p>
+<div class="textblock"><p>Connection between two control elements or other connection line and an element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_connection_line_8h_source.html#l00030">30</a> of file <a class="el" href="_connection_line_8h_source.html">ConnectionLine.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a65c6d7139587c973a92dd1009909597f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a65c6d7139587c973a92dd1009909597f">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -555,7 +569,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00041">41</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00053">53</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -604,7 +618,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00021">21</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00033">33</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -636,7 +650,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00188">188</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00199">199</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -674,7 +688,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00049">49</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00061">61</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -712,7 +726,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00146">146</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00158">158</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -750,7 +764,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00180">180</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00191">191</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
@@ -788,7 +802,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00152">152</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_connection_line_8cpp_source.html#l00164">164</a> of file <a class="el" href="_connection_line_8cpp_source.html">ConnectionLine.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_constant-members.html b/docs/doxygen/html/class_constant-members.html
index 4abf2fe..9b9d463 100644
--- a/docs/doxygen/html/class_constant-members.html
+++ b/docs/doxygen/html/class_constant-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_constant.html b/docs/doxygen/html/class_constant.html
index cfc57a3..433d2d7 100644
--- a/docs/doxygen/html/class_constant.html
+++ b/docs/doxygen/html/class_constant.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_constant.html','');});
<div class="title">Constant Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>A control element that provides a constant value.
+ <a href="class_constant.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_constant_8h_source.html">Constant.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Constant:</div>
<div class="dyncontent">
@@ -93,7 +104,7 @@ Inheritance diagram for Constant:</div>
<img src="class_constant.png" usemap="#Constant_map" alt=""/>
<map id="Constant_map" name="Constant_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -468,8 +479,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00011">11</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
+<div class="textblock"><p>A control element that provides a constant value. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00035">35</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ae091eb79633beb158dc06880424f7ce6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae091eb79633beb158dc06880424f7ce6">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -505,7 +519,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00018">18</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00042">42</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
</div>
</div>
@@ -554,7 +568,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00015">15</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00032">32</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
</div>
</div>
@@ -586,7 +600,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00106">106</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00123">123</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
</div>
</div>
@@ -624,7 +638,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00019">19</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8h_source.html#l00043">43</a> of file <a class="el" href="_constant_8h_source.html">Constant.h</a>.</p>
</div>
</div>
@@ -662,7 +676,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00050">50</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00067">67</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
</div>
</div>
@@ -704,7 +718,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -712,7 +726,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00039">39</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_constant_8cpp_source.html#l00056">56</a> of file <a class="el" href="_constant_8cpp_source.html">Constant.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_constant_form-members.html b/docs/doxygen/html/class_constant_form-members.html
index b54c4f0..f1dd5aa 100644
--- a/docs/doxygen/html/class_constant_form-members.html
+++ b/docs/doxygen/html/class_constant_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_constant_form.html b/docs/doxygen/html/class_constant_form.html
index f68d3c6..8907813 100644
--- a/docs/doxygen/html/class_constant_form.html
+++ b/docs/doxygen/html/class_constant_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_constant_form.html','');});
<div class="title">ConstantForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the constant control data.
+ <a href="class_constant_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_constant_form_8h_source.html">ConstantForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ConstantForm:</div>
<div class="dyncontent">
@@ -166,8 +177,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:a8c2c85c2dbe59fc4831024ad4bb9e675 inherit pro_attribs_class_constant_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_constant_form_8h_source.html#l00007">7</a> of file <a class="el" href="_constant_form_8h_source.html">ConstantForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the constant control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_constant_form_8h_source.html#l00031">31</a> of file <a class="el" href="_constant_form_8h_source.html">ConstantForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_constant_form_8h_source.html">ConstantForm.h</a></li>
<li>Project/<a class="el" href="_constant_form_8cpp_source.html">ConstantForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_constant_form_base-members.html b/docs/doxygen/html/class_constant_form_base-members.html
index d4455aa..cba1071 100644
--- a/docs/doxygen/html/class_constant_form_base-members.html
+++ b/docs/doxygen/html/class_constant_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_constant_form_base.html b/docs/doxygen/html/class_constant_form_base.html
index d4457dd..e29a6fd 100644
--- a/docs/doxygen/html/class_constant_form_base.html
+++ b/docs/doxygen/html/class_constant_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for ConstantFormBase:</div>
<div class="center">
<img src="class_constant_form_base.png" usemap="#ConstantFormBase_map" alt=""/>
<map id="ConstantFormBase_map" name="ConstantFormBase_map">
-<area href="class_constant_form.html" alt="ConstantForm" shape="rect" coords="0,112,118,136"/>
+<area href="class_constant_form.html" title="Form to edit the constant control data. " alt="ConstantForm" shape="rect" coords="0,112,118,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_control_editor-members.html b/docs/doxygen/html/class_control_editor-members.html
index 0697cb9..e29b33f 100644
--- a/docs/doxygen/html/class_control_editor-members.html
+++ b/docs/doxygen/html/class_control_editor-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_editor.html b/docs/doxygen/html/class_control_editor.html
index e8772d1..9bb3b26 100644
--- a/docs/doxygen/html/class_control_editor.html
+++ b/docs/doxygen/html/class_control_editor.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -330,7 +336,7 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonOK</b><
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_editor_8h_source.html#l00067">67</a> of file <a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_control_editor_8h_source.html#l00091">91</a> of file <a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a></li>
<li>Project/<a class="el" href="_control_editor_8cpp_source.html">ControlEditor.cpp</a></li>
diff --git a/docs/doxygen/html/class_control_editor_base-members.html b/docs/doxygen/html/class_control_editor_base-members.html
index 3ce209e..a9c5495 100644
--- a/docs/doxygen/html/class_control_editor_base-members.html
+++ b/docs/doxygen/html/class_control_editor_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_editor_base.html b/docs/doxygen/html/class_control_editor_base.html
index 18ea296..445260b 100644
--- a/docs/doxygen/html/class_control_editor_base.html
+++ b/docs/doxygen/html/class_control_editor_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_element-members.html b/docs/doxygen/html/class_control_element-members.html
index a2f9245..28f4a92 100644
--- a/docs/doxygen/html/class_control_element-members.html
+++ b/docs/doxygen/html/class_control_element-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_element.html b/docs/doxygen/html/class_control_element.html
index c42f417..01f556a 100644
--- a/docs/doxygen/html/class_control_element.html
+++ b/docs/doxygen/html/class_control_element.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,23 +92,25 @@ $(document).ready(function(){initNavTree('class_control_element.html','');});
<div class="title">ControlElement Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><code>#include &lt;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ControlElement:</div>
<div class="dyncontent">
<div class="center">
<img src="class_control_element.png" usemap="#ControlElement_map" alt=""/>
<map id="ControlElement_map" name="ControlElement_map">
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,109,24"/>
-<area href="class_connection_line.html" alt="ConnectionLine" shape="rect" coords="119,112,228,136"/>
-<area href="class_constant.html" alt="Constant" shape="rect" coords="119,168,228,192"/>
-<area href="class_exponential.html" alt="Exponential" shape="rect" coords="119,224,228,248"/>
-<area href="class_gain.html" alt="Gain" shape="rect" coords="119,280,228,304"/>
-<area href="class_i_o_control.html" alt="IOControl" shape="rect" coords="119,336,228,360"/>
-<area href="class_limiter.html" alt="Limiter" shape="rect" coords="119,392,228,416"/>
-<area href="class_multiplier.html" alt="Multiplier" shape="rect" coords="119,448,228,472"/>
-<area href="class_rate_limiter.html" alt="RateLimiter" shape="rect" coords="119,504,228,528"/>
-<area href="class_sum.html" alt="Sum" shape="rect" coords="119,560,228,584"/>
-<area href="class_transfer_function.html" alt="TransferFunction" shape="rect" coords="119,616,228,640"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,109,24"/>
+<area href="class_connection_line.html" title="Connection between two control elements or other connection line and an element. " alt="ConnectionLine" shape="rect" coords="119,112,228,136"/>
+<area href="class_constant.html" title="A control element that provides a constant value. " alt="Constant" shape="rect" coords="119,168,228,192"/>
+<area href="class_exponential.html" title="Generates an output following an exponential function. " alt="Exponential" shape="rect" coords="119,224,228,248"/>
+<area href="class_gain.html" title="Provide an output multiplying the input by a constant. " alt="Gain" shape="rect" coords="119,280,228,304"/>
+<area href="class_i_o_control.html" title="Provides the communication with the power element. " alt="IOControl" shape="rect" coords="119,336,228,360"/>
+<area href="class_limiter.html" title="Limits the input value by superior and inferior values. " alt="Limiter" shape="rect" coords="119,392,228,416"/>
+<area href="class_multiplier.html" title="Multiplies two inputs. " alt="Multiplier" shape="rect" coords="119,448,228,472"/>
+<area href="class_rate_limiter.html" title="Limits the rising and/or falling rate. " alt="RateLimiter" shape="rect" coords="119,504,228,528"/>
+<area href="class_sum.html" title="Sum the all inputs (can choose the input signal). " alt="Sum" shape="rect" coords="119,560,228,584"/>
+<area href="class_transfer_function.html" title="Calculates the time response by a frequency domain transfer function. " alt="TransferFunction" shape="rect" coords="119,616,228,640"/>
</map>
</div></div>
<table class="memberdecls">
@@ -454,8 +462,10 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_element_8h_source.html#l00053">53</a> of file <a class="el" href="_control_element_8h_source.html">ControlElement.h</a>.</p>
+<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_element_8h_source.html#l00084">84</a> of file <a class="el" href="_control_element_8h_source.html">ControlElement.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac8bd52ddb8eed51a217fecb2eed65708"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac8bd52ddb8eed51a217fecb2eed65708">&#9670;&nbsp;</a></span>Move()</h2>
@@ -493,7 +503,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain</a>, and <a class="el" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_control_element_8cpp_source.html#l00109">109</a> of file <a class="el" href="_control_element_8cpp_source.html">ControlElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_control_element_8cpp_source.html#l00126">126</a> of file <a class="el" href="_control_element_8cpp_source.html">ControlElement.cpp</a>.</p>
</div>
</div>
@@ -533,7 +543,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_control_element_8cpp_source.html#l00100">100</a> of file <a class="el" href="_control_element_8cpp_source.html">ControlElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_control_element_8cpp_source.html#l00117">117</a> of file <a class="el" href="_control_element_8cpp_source.html">ControlElement.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_control_element_button-members.html b/docs/doxygen/html/class_control_element_button-members.html
index 44a370f..e72d876 100644
--- a/docs/doxygen/html/class_control_element_button-members.html
+++ b/docs/doxygen/html/class_control_element_button-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_element_button.html b/docs/doxygen/html/class_control_element_button.html
index 535fa66..c1028ce 100644
--- a/docs/doxygen/html/class_control_element_button.html
+++ b/docs/doxygen/html/class_control_element_button.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_control_element_button.html','')
<div class="title">ControlElementButton Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This class is responsible to handle the user interaction with control elements.
+ <a href="class_control_element_button.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ControlElementButton:</div>
<div class="dyncontent">
@@ -154,8 +165,11 @@ wxSize&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonSize</b></t
<tr class="separator:a81773f33a05c2b976bef693604a3ca4b"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_editor_8h_source.html#l00039">39</a> of file <a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>.</p>
+<div class="textblock"><p>This class is responsible to handle the user interaction with control elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_editor_8h_source.html#l00063">63</a> of file <a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_editor_8h_source.html">ControlEditor.h</a></li>
<li>Project/<a class="el" href="_control_editor_8cpp_source.html">ControlEditor.cpp</a></li>
diff --git a/docs/doxygen/html/class_control_element_container-members.html b/docs/doxygen/html/class_control_element_container-members.html
index 7e8f9dd..5d6ca53 100644
--- a/docs/doxygen/html/class_control_element_container-members.html
+++ b/docs/doxygen/html/class_control_element_container-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_element_container.html b/docs/doxygen/html/class_control_element_container.html
index 46f07e7..8958872 100644
--- a/docs/doxygen/html/class_control_element_container.html
+++ b/docs/doxygen/html/class_control_element_container.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_control_element_container.html',
<div class="title">ControlElementContainer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Class that can contain all control elements. Can identify (using RTTI) the elements from a generic list and store them separately.
+ <a href="class_control_element_container.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_control_element_container_8h_source.html">ControlElementContainer.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -172,8 +183,11 @@ std::vector&lt; <a class="el" href="class_transfer_function.html">TransferFuncti
<tr class="separator:a32afcd17e0f337c5ef4a6af55b5de358"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_element_container_8h_source.html#l00020">20</a> of file <a class="el" href="_control_element_container_8h_source.html">ControlElementContainer.h</a>.</p>
+<div class="textblock"><p>Class that can contain all control elements. Can identify (using RTTI) the elements from a generic list and store them separately. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_element_container_8h_source.html#l00045">45</a> of file <a class="el" href="_control_element_container_8h_source.html">ControlElementContainer.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_element_container_8h_source.html">ControlElementContainer.h</a></li>
<li>Project/<a class="el" href="_control_element_container_8cpp_source.html">ControlElementContainer.cpp</a></li>
diff --git a/docs/doxygen/html/class_control_element_solver-members.html b/docs/doxygen/html/class_control_element_solver-members.html
index d1c9bfa..5b38734 100644
--- a/docs/doxygen/html/class_control_element_solver-members.html
+++ b/docs/doxygen/html/class_control_element_solver-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_element_solver.html b/docs/doxygen/html/class_control_element_solver.html
index 4628d9b..cf89dff 100644
--- a/docs/doxygen/html/class_control_element_solver.html
+++ b/docs/doxygen/html/class_control_element_solver.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_control_element_solver.html','')
<div class="title">ControlElementSolver Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Solves in the time the control system. Can solve the control system directly from a <a class="el" href="class_control_editor.html">ControlEditor</a> or from a ControlEditorElement.
+ <a href="class_control_element_solver.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_control_element_solver_8h_source.html">ControlElementSolver.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -149,8 +160,11 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_isOK</b> = false</t
<tr class="separator:a7eb65b2465b751462cb08f21496607a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_element_solver_8h_source.html#l00020">20</a> of file <a class="el" href="_control_element_solver_8h_source.html">ControlElementSolver.h</a>.</p>
+<div class="textblock"><p>Solves in the time the control system. Can solve the control system directly from a <a class="el" href="class_control_editor.html">ControlEditor</a> or from a ControlEditorElement. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_element_solver_8h_source.html#l00045">45</a> of file <a class="el" href="_control_element_solver_8h_source.html">ControlElementSolver.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_element_solver_8h_source.html">ControlElementSolver.h</a></li>
<li>Project/<a class="el" href="_control_element_solver_8cpp_source.html">ControlElementSolver.cpp</a></li>
diff --git a/docs/doxygen/html/class_control_system_test-members.html b/docs/doxygen/html/class_control_system_test-members.html
index f5c4174..ae73bb9 100644
--- a/docs/doxygen/html/class_control_system_test-members.html
+++ b/docs/doxygen/html/class_control_system_test-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_system_test.html b/docs/doxygen/html/class_control_system_test.html
index 36ee7a5..cb9fecc 100644
--- a/docs/doxygen/html/class_control_system_test.html
+++ b/docs/doxygen/html/class_control_system_test.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_control_system_test.html','');})
<div class="title">ControlSystemTest Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit properties to test the control system created.
+ <a href="class_control_system_test.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_control_system_test_8h_source.html">ControlSystemTest.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ControlSystemTest:</div>
<div class="dyncontent">
@@ -232,8 +243,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:a3baa6c84c696c089a293c2a982a34471 inherit pro_attribs_class_control_system_test_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_system_test_8h_source.html#l00008">8</a> of file <a class="el" href="_control_system_test_8h_source.html">ControlSystemTest.h</a>.</p>
+<div class="textblock"><p>Form to edit properties to test the control system created. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_system_test_8h_source.html#l00032">32</a> of file <a class="el" href="_control_system_test_8h_source.html">ControlSystemTest.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_system_test_8h_source.html">ControlSystemTest.h</a></li>
<li>Project/<a class="el" href="_control_system_test_8cpp_source.html">ControlSystemTest.cpp</a></li>
diff --git a/docs/doxygen/html/class_control_system_test_base-members.html b/docs/doxygen/html/class_control_system_test_base-members.html
index 1c2be6f..785bda9 100644
--- a/docs/doxygen/html/class_control_system_test_base-members.html
+++ b/docs/doxygen/html/class_control_system_test_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_control_system_test_base.html b/docs/doxygen/html/class_control_system_test_base.html
index 227789c..fada4da 100644
--- a/docs/doxygen/html/class_control_system_test_base.html
+++ b/docs/doxygen/html/class_control_system_test_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for ControlSystemTestBase:</div>
<div class="center">
<img src="class_control_system_test_base.png" usemap="#ControlSystemTestBase_map" alt=""/>
<map id="ControlSystemTestBase_map" name="ControlSystemTestBase_map">
-<area href="class_control_system_test.html" alt="ControlSystemTest" shape="rect" coords="0,112,144,136"/>
+<area href="class_control_system_test.html" title="Form to edit properties to test the control system created. " alt="ControlSystemTest" shape="rect" coords="0,112,144,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_data_report-members.html b/docs/doxygen/html/class_data_report-members.html
index adaf79b..8df3f52 100644
--- a/docs/doxygen/html/class_data_report-members.html
+++ b/docs/doxygen/html/class_data_report-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_data_report.html b/docs/doxygen/html/class_data_report.html
index 558f3d8..886d50f 100644
--- a/docs/doxygen/html/class_data_report.html
+++ b/docs/doxygen/html/class_data_report.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,6 +94,11 @@ $(document).ready(function(){initNavTree('class_data_report.html','');});
<div class="title">DataReport Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form that shows the results of power flow and fault calculations.
+ <a href="class_data_report.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_data_report_8h_source.html">DataReport.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for DataReport:</div>
<div class="dyncontent">
@@ -318,8 +329,11 @@ wxGrid *&#160;</td><td class="memItemRight" valign="bottom"><b>m_gridFaultGenera
<tr class="separator:adac5a461ed09a4ac36202a0016707e11 inherit pro_attribs_class_data_report_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_data_report_8h_source.html#l00009">9</a> of file <a class="el" href="_data_report_8h_source.html">DataReport.h</a>.</p>
+<div class="textblock"><p>Form that shows the results of power flow and fault calculations. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_data_report_8h_source.html#l00033">33</a> of file <a class="el" href="_data_report_8h_source.html">DataReport.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_data_report_8h_source.html">DataReport.h</a></li>
<li>Project/<a class="el" href="_data_report_8cpp_source.html">DataReport.cpp</a></li>
diff --git a/docs/doxygen/html/class_data_report_base-members.html b/docs/doxygen/html/class_data_report_base-members.html
index 380546d..15ecdc2 100644
--- a/docs/doxygen/html/class_data_report_base-members.html
+++ b/docs/doxygen/html/class_data_report_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_data_report_base.html b/docs/doxygen/html/class_data_report_base.html
index a7790da..5990702 100644
--- a/docs/doxygen/html/class_data_report_base.html
+++ b/docs/doxygen/html/class_data_report_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for DataReportBase:</div>
<div class="center">
<img src="class_data_report_base.png" usemap="#DataReportBase_map" alt=""/>
<map id="DataReportBase_map" name="DataReportBase_map">
-<area href="class_data_report.html" alt="DataReport" shape="rect" coords="0,112,103,136"/>
+<area href="class_data_report.html" title="Form that shows the results of power flow and fault calculations. " alt="DataReport" shape="rect" coords="0,112,103,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_electric_calculation-members.html b/docs/doxygen/html/class_electric_calculation-members.html
index 4aa0a25..e1a7179 100644
--- a/docs/doxygen/html/class_electric_calculation-members.html
+++ b/docs/doxygen/html/class_electric_calculation-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_electric_calculation.html b/docs/doxygen/html/class_electric_calculation.html
index 938fbd5..8ec98e6 100644
--- a/docs/doxygen/html/class_electric_calculation.html
+++ b/docs/doxygen/html/class_electric_calculation.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,9 @@ $(document).ready(function(){initNavTree('class_electric_calculation.html','');}
</div><!--header-->
<div class="contents">
+<p>Base class of electric calculations, with general methods.
+ <a href="class_electric_calculation.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ElectricCalculation:</div>
@@ -94,9 +103,9 @@ Inheritance diagram for ElectricCalculation:</div>
<div class="center">
<img src="class_electric_calculation.png" usemap="#ElectricCalculation_map" alt=""/>
<map id="ElectricCalculation_map" name="ElectricCalculation_map">
-<area href="class_electromechanical.html" alt="Electromechanical" shape="rect" coords="0,56,118,80"/>
-<area href="class_fault.html" alt="Fault" shape="rect" coords="128,56,246,80"/>
-<area href="class_power_flow.html" alt="PowerFlow" shape="rect" coords="256,56,374,80"/>
+<area href="class_electromechanical.html" title="Calculates the electromechanical transient based on disturbances (e.g. system fault). " alt="Electromechanical" shape="rect" coords="0,56,118,80"/>
+<area href="class_fault.html" title="Calculate the fault of the system and update the elements data. " alt="Fault" shape="rect" coords="128,56,246,80"/>
+<area href="class_power_flow.html" title="Calculate the power flow. " alt="PowerFlow" shape="rect" coords="256,56,374,80"/>
</map>
</div></div>
<table class="memberdecls">
@@ -205,10 +214,11 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<tr class="separator:a6cca6be3c0b79741a49b1631e38fc3be"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Base class of electric calculations, with general methods. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
<dl class="section date"><dt>Date</dt><dd>09/01/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00049">49</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00066">66</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aca3381e8f6663394e4d257a54e4e2a24"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aca3381e8f6663394e4d257a54e4e2a24">&#9670;&nbsp;</a></span>GetBusList()</h2>
@@ -236,7 +246,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the buses of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of bus elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00128">128</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00145">145</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -266,7 +276,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the capacitors of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of capacitor elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00133">133</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00150">150</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -302,7 +312,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00008">8</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00025">25</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
</div>
</div>
@@ -332,7 +342,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the induction motors of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of induction motor elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00138">138</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00155">155</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -362,7 +372,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the inductors of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of inductor elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00143">143</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00160">160</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -392,7 +402,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the lines of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of line elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00148">148</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00165">165</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -422,7 +432,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the loads of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of load elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00153">153</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00170">170</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -452,7 +462,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the synchronous generators of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of synchronous generator elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00158">158</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00175">175</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -482,7 +492,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the synchronous motors of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of synchronous motor elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00163">163</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00180">180</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -512,7 +522,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the transformers of the system (use GetElementsFromList first). </p>
<dl class="section return"><dt>Returns</dt><dd>A list of transformer elements. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00168">168</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00185">185</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div>
</div>
@@ -580,7 +590,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dl>
<dl class="section return"><dt>Returns</dt><dd>Return true if was possible to build the admittance matrix. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00056">56</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00073">73</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
</div>
</div>
@@ -628,7 +638,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dl>
<dl class="section return"><dt>Returns</dt><dd>Return true if was possible to invert the matrix. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00572">572</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00589">589</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
</div>
</div>
@@ -696,7 +706,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00287">287</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8cpp_source.html#l00304">304</a> of file <a class="el" href="_electric_calculation_8cpp_source.html">ElectricCalculation.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_electromechanical-members.html b/docs/doxygen/html/class_electromechanical-members.html
index 8883087..c3ce5b6 100644
--- a/docs/doxygen/html/class_electromechanical-members.html
+++ b/docs/doxygen/html/class_electromechanical-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -89,57 +95,63 @@ $(document).ready(function(){initNavTree('class_electromechanical.html','');});
<tr bgcolor="#f0f0f0"><td class="entry"><b>CalculateIntegrationConstants</b>(SyncGenerator *syncGenerator, double id, double iq, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CalculateMachinesCurrents</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>CalculateReferenceSpeed</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CalculateSyncMachineIntVariables</b>(SyncGenerator *syncGenerator, double id, double iq, double pe, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>CalculateSyncMachineNonIntVariables</b>(SyncGenerator *syncGenerator, double &amp;id, double &amp;iq, double &amp;pe, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>ComplexMatrixTimesVector</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::complex&lt; double &gt; &gt; vector) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>DQ0toABC</b>(double dValue, double qValue, double angle, std::complex&lt; double &gt; &amp;complexValue) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation</a>()</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Electromechanical</b>(wxWindow *parent, std::vector&lt; Element *&gt; elementList, SimulationData data) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>EventTrigger</b>(double eventTime, double currentTime) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>GaussianElimination</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::complex&lt; double &gt; &gt; array) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(std::vector&lt; Element *&gt; elementList)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>GetErrorMessage</b>() const (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetLUDecomposition</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;matrixL, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;matrixU) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>GetMachineModel</b>(SyncGenerator *generator) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetPowerValue</b>(double value, ElectricalUnit unit) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CalculateSyncMachineIntVariables</b>(SyncGenerator *syncGenerator, double id, double iq, double sd, double sq, double pe, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>CalculateSyncMachineNonIntVariables</b>(SyncGenerator *syncGenerator, double &amp;id, double &amp;iq, double &amp;sd, double &amp;sq, double &amp;pe, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>CalculateSyncMachineSaturation</b>(SyncGenerator *syncMachine, double &amp;id, double &amp;iq, double &amp;sd, double &amp;sq, bool updateCurrents=true, double k=1.0) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>ComplexMatrixTimesVector</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::complex&lt; double &gt; &gt; vector) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>DQ0toABC</b>(double dValue, double qValue, double angle, std::complex&lt; double &gt; &amp;complexValue) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation</a>()</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Electromechanical</b>(wxWindow *parent, std::vector&lt; Element *&gt; elementList, SimulationData data) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>EventTrigger</b>(double eventTime, double currentTime) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GaussianElimination</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::complex&lt; double &gt; &gt; array) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24">GetBusList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd">GetCapacitorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92">GetElementsFromList</a>(std::vector&lt; Element *&gt; elementList)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetErrorMessage</b>() const (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b">GetIndMotorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed">GetInductorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#af8eff271de83898c536deda1aab22d48">GetLineList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4">GetLoadList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>GetLUDecomposition</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;matrixL, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;matrixU) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetMachineModel</b>(SyncGenerator *generator) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
<tr><td class="entry"><a class="el" href="class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840">GetSyncGeneratorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetSyncMachineAdmittance</b>(SyncGenerator *generator) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>GetTimeVector</b>() const (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>HasEvent</b>(double currentTime) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>InitializeDynamicElements</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>InsertSyncMachinesOnYBus</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>LUEvaluate</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; u, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; l, std::vector&lt; std::complex&lt; double &gt; &gt; b) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_busList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_capacitorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_ctrlTimeStepMultiplier</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_deltaErrorVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_errorMsg</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_eventOccurrenceList</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_eventTimeList</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_iBus</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_indMotorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_inductorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_lineList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_loadList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_maxIterations</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_numIt</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_numItVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_parent</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_plotTime</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_powerElementList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_powerSystemBase</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>m_refSpeed</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>GetSyncMachineModelData</b>(SyncGenerator *syncMachine) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e">GetSyncMotorList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>GetTimeVector</b>() const (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e">GetTransformerList</a>() const</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d">GetYBus</a>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;yBus, double systemPowerBase, YBusSequence sequence=POSITIVE_SEQ, bool includeSyncMachines=false, bool allLoadsAsImpedances=false)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>HasEvent</b>(double currentTime) (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>InitializeDynamicElements</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>InsertSyncMachinesOnYBus</b>() (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c">InvertMatrix</a>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; matrix, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; &amp;inverse)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>LUEvaluate</b>(std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; u, std::vector&lt; std::vector&lt; std::complex&lt; double &gt; &gt; &gt; l, std::vector&lt; std::complex&lt; double &gt; &gt; b) (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_busList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_capacitorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_ctrlTimeStepMultiplier</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_deltaErrorVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_errorMsg</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_eventOccurrenceList</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_eventTimeList</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_iBus</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_indMotorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_inductorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_lineList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_loadList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_maxIterations</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_numIt</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_numItVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_parent</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_plotTime</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_powerElementList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_powerSystemBase</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_refSpeed</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_saturationTolerance</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_sdC</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_sdCVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_simTime</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>m_sqC</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_sqCVector</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>m_syncGeneratorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_syncMotorList</b> (defined in <a class="el" href="class_electric_calculation.html">ElectricCalculation</a>)</td><td class="entry"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>m_systemFreq</b> (defined in <a class="el" href="class_electromechanical.html">Electromechanical</a>)</td><td class="entry"><a class="el" href="class_electromechanical.html">Electromechanical</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
diff --git a/docs/doxygen/html/class_electromechanical.html b/docs/doxygen/html/class_electromechanical.html
index e7e158d..27527be 100644
--- a/docs/doxygen/html/class_electromechanical.html
+++ b/docs/doxygen/html/class_electromechanical.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,13 +94,18 @@ $(document).ready(function(){initNavTree('class_electromechanical.html','');});
<div class="title">Electromechanical Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Calculates the electromechanical transient based on disturbances (e.g. system fault).
+ <a href="class_electromechanical.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Electromechanical:</div>
<div class="dyncontent">
<div class="center">
<img src="class_electromechanical.png" usemap="#Electromechanical_map" alt=""/>
<map id="Electromechanical_map" name="Electromechanical_map">
-<area href="class_electric_calculation.html" alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
+<area href="class_electric_calculation.html" title="Base class of electric calculations, with general methods. " alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -199,6 +210,12 @@ std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><
<tr class="memitem:a1e7fff4570b7a983f79a22aafed2112d"><td class="memItemLeft" align="right" valign="top"><a id="a1e7fff4570b7a983f79a22aafed2112d"></a>
std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_numItVector</b></td></tr>
<tr class="separator:a1e7fff4570b7a983f79a22aafed2112d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4c82ed8fc748149bb116ee532e6ee978"><td class="memItemLeft" align="right" valign="top"><a id="a4c82ed8fc748149bb116ee532e6ee978"></a>
+std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_sdCVector</b></td></tr>
+<tr class="separator:a4c82ed8fc748149bb116ee532e6ee978"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a237471acf9a372a9b1cd1481803571d5"><td class="memItemLeft" align="right" valign="top"><a id="a237471acf9a372a9b1cd1481803571d5"></a>
+std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_sqCVector</b></td></tr>
+<tr class="separator:a237471acf9a372a9b1cd1481803571d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected Member Functions</h2></td></tr>
@@ -214,9 +231,6 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>SetEvent</b> (double
<tr class="memitem:a9b076237d26ff011552ed624a5d9bbe2"><td class="memItemLeft" align="right" valign="top"><a id="a9b076237d26ff011552ed624a5d9bbe2"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>EventTrigger</b> (double eventTime, double currentTime)</td></tr>
<tr class="separator:a9b076237d26ff011552ed624a5d9bbe2"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:aad655c165bc53cce5d5fdd8ae9339ba2"><td class="memItemLeft" align="right" valign="top"><a id="aad655c165bc53cce5d5fdd8ae9339ba2"></a>
-double&#160;</td><td class="memItemRight" valign="bottom"><b>GetPowerValue</b> (double value, <a class="el" href="_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca">ElectricalUnit</a> unit)</td></tr>
-<tr class="separator:aad655c165bc53cce5d5fdd8ae9339ba2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a790c142f8d9db534c7e368711e84f61e"><td class="memItemLeft" align="right" valign="top"><a id="a790c142f8d9db534c7e368711e84f61e"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>InsertSyncMachinesOnYBus</b> ()</td></tr>
<tr class="separator:a790c142f8d9db534c7e368711e84f61e"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -226,9 +240,9 @@ std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom">
<tr class="memitem:a4ccf60ce21c83ff757e1a7de99a00704"><td class="memItemLeft" align="right" valign="top"><a id="a4ccf60ce21c83ff757e1a7de99a00704"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><b>InitializeDynamicElements</b> ()</td></tr>
<tr class="separator:a4ccf60ce21c83ff757e1a7de99a00704"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a4e3c1766ff06883a681f39d536a41136"><td class="memItemLeft" align="right" valign="top"><a id="a4e3c1766ff06883a681f39d536a41136"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateMachinesCurrents</b> ()</td></tr>
-<tr class="separator:a4e3c1766ff06883a681f39d536a41136"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa59f55e739c674f4ede073eadbb79ac0"><td class="memItemLeft" align="right" valign="top"><a id="aa59f55e739c674f4ede073eadbb79ac0"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateMachinesCurrents</b> ()</td></tr>
+<tr class="separator:aa59f55e739c674f4ede073eadbb79ac0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a488985a77171f915145ecc5d891db04f"><td class="memItemLeft" align="right" valign="top"><a id="a488985a77171f915145ecc5d891db04f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateIntegrationConstants</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncGenerator, double id, double iq, double k=1.0)</td></tr>
<tr class="separator:a488985a77171f915145ecc5d891db04f"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -238,15 +252,21 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>SolveSynchronousMachi
<tr class="memitem:a7cce38fb26c4e1e6a70bd605285848e8"><td class="memItemLeft" align="right" valign="top"><a id="a7cce38fb26c4e1e6a70bd605285848e8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetSyncMachinesModel</b> ()</td></tr>
<tr class="separator:a7cce38fb26c4e1e6a70bd605285848e8"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a82b5c5c2aeefd49706199d0ba140d300"><td class="memItemLeft" align="right" valign="top"><a id="a82b5c5c2aeefd49706199d0ba140d300"></a>
-double&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSyncMachineIntVariables</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncGenerator, double id, double iq, double pe, double k=1.0)</td></tr>
-<tr class="separator:a82b5c5c2aeefd49706199d0ba140d300"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a10b7ceb1a8066461c5369d210cff48d5"><td class="memItemLeft" align="right" valign="top"><a id="a10b7ceb1a8066461c5369d210cff48d5"></a>
-void&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSyncMachineNonIntVariables</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncGenerator, double &amp;id, double &amp;iq, double &amp;pe, double k=1.0)</td></tr>
-<tr class="separator:a10b7ceb1a8066461c5369d210cff48d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:aa191e34b2a6cbfd0d89c78da14f1d7f7"><td class="memItemLeft" align="right" valign="top"><a id="aa191e34b2a6cbfd0d89c78da14f1d7f7"></a>
+<a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a>&#160;</td><td class="memItemRight" valign="bottom"><b>GetSyncMachineModelData</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncMachine)</td></tr>
+<tr class="separator:aa191e34b2a6cbfd0d89c78da14f1d7f7"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac185e65f3073319fc4ac4ec11c328337"><td class="memItemLeft" align="right" valign="top"><a id="ac185e65f3073319fc4ac4ec11c328337"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSyncMachineIntVariables</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncGenerator, double id, double iq, double sd, double sq, double pe, double k=1.0)</td></tr>
+<tr class="separator:ac185e65f3073319fc4ac4ec11c328337"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8ca8ab15ead93ee615277698bf0b3867"><td class="memItemLeft" align="right" valign="top"><a id="a8ca8ab15ead93ee615277698bf0b3867"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSyncMachineNonIntVariables</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncGenerator, double &amp;id, double &amp;iq, double &amp;sd, double &amp;sq, double &amp;pe, double k=1.0)</td></tr>
+<tr class="separator:a8ca8ab15ead93ee615277698bf0b3867"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af02c1382b8a7d3085831d3a1e89526f6"><td class="memItemLeft" align="right" valign="top"><a id="af02c1382b8a7d3085831d3a1e89526f6"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateReferenceSpeed</b> ()</td></tr>
<tr class="separator:af02c1382b8a7d3085831d3a1e89526f6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a900832be747b8b3e41e901235012bf87"><td class="memItemLeft" align="right" valign="top"><a id="a900832be747b8b3e41e901235012bf87"></a>
+bool&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSyncMachineSaturation</b> (<a class="el" href="class_sync_generator.html">SyncGenerator</a> *syncMachine, double &amp;id, double &amp;iq, double &amp;sd, double &amp;sq, bool updateCurrents=true, double k=1.0)</td></tr>
+<tr class="separator:a900832be747b8b3e41e901235012bf87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae5f5162b53e8969fd933af2ef80d1b67"><td class="memItemLeft" align="right" valign="top"><a id="ae5f5162b53e8969fd933af2ef80d1b67"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SaveData</b> ()</td></tr>
<tr class="separator:ae5f5162b53e8969fd933af2ef80d1b67"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -304,6 +324,9 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>m_tolerance</b> = 1
<tr class="memitem:ad963e529cd06cf42a9eef98dbbf04edb"><td class="memItemLeft" align="right" valign="top"><a id="ad963e529cd06cf42a9eef98dbbf04edb"></a>
int&#160;</td><td class="memItemRight" valign="bottom"><b>m_maxIterations</b> = 100</td></tr>
<tr class="separator:ad963e529cd06cf42a9eef98dbbf04edb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a4029ebc888d91ec49b9bdf9f7cdf2631"><td class="memItemLeft" align="right" valign="top"><a id="a4029ebc888d91ec49b9bdf9f7cdf2631"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>m_saturationTolerance</b> = 1e-8</td></tr>
+<tr class="separator:a4029ebc888d91ec49b9bdf9f7cdf2631"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adb77fe8bf93882f3cd039c126ab79f7d"><td class="memItemLeft" align="right" valign="top"><a id="adb77fe8bf93882f3cd039c126ab79f7d"></a>
std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>m_eventTimeList</b></td></tr>
<tr class="separator:adb77fe8bf93882f3cd039c126ab79f7d"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -316,6 +339,12 @@ std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><
<tr class="memitem:a23d720e7a18a781b808cc7ca0f130ceb"><td class="memItemLeft" align="right" valign="top"><a id="a23d720e7a18a781b808cc7ca0f130ceb"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_wError</b> = 0.0</td></tr>
<tr class="separator:a23d720e7a18a781b808cc7ca0f130ceb"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a3a7d7043e936b7649a741cf9d39e01b9"><td class="memItemLeft" align="right" valign="top"><a id="a3a7d7043e936b7649a741cf9d39e01b9"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>m_sdC</b> = 1.0</td></tr>
+<tr class="separator:a3a7d7043e936b7649a741cf9d39e01b9"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac684393f47d36a6038d562e92df56ab6"><td class="memItemLeft" align="right" valign="top"><a id="ac684393f47d36a6038d562e92df56ab6"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>m_sqC</b> = 1.0</td></tr>
+<tr class="separator:ac684393f47d36a6038d562e92df56ab6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4fe6bcd83ae05c0cf6827eed9d0eb029"><td class="memItemLeft" align="right" valign="top"><a id="a4fe6bcd83ae05c0cf6827eed9d0eb029"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>m_numIt</b> = 0</td></tr>
<tr class="separator:a4fe6bcd83ae05c0cf6827eed9d0eb029"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -352,8 +381,11 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<tr class="separator:a6cca6be3c0b79741a49b1631e38fc3be inherit pro_attribs_class_electric_calculation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00010">10</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+<div class="textblock"><p>Calculates the electromechanical transient based on disturbances (e.g. system fault). </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>23/09/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00051">51</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a></li>
<li>Project/<a class="el" href="_electromechanical_8cpp_source.html">Electromechanical.cpp</a></li>
diff --git a/docs/doxygen/html/class_electromechanical.js b/docs/doxygen/html/class_electromechanical.js
index d6cd3d5..2aa1aa9 100644
--- a/docs/doxygen/html/class_electromechanical.js
+++ b/docs/doxygen/html/class_electromechanical.js
@@ -3,14 +3,15 @@ var class_electromechanical =
[ "Electromechanical", "class_electromechanical.html#a30ecddf5249f545e73b2aaaf19cbec50", null ],
[ "~Electromechanical", "class_electromechanical.html#a001abfe3809e6425f7f0bd67adaf28f4", null ],
[ "CalculateIntegrationConstants", "class_electromechanical.html#a488985a77171f915145ecc5d891db04f", null ],
- [ "CalculateMachinesCurrents", "class_electromechanical.html#a4e3c1766ff06883a681f39d536a41136", null ],
+ [ "CalculateMachinesCurrents", "class_electromechanical.html#aa59f55e739c674f4ede073eadbb79ac0", null ],
[ "CalculateReferenceSpeed", "class_electromechanical.html#af02c1382b8a7d3085831d3a1e89526f6", null ],
- [ "CalculateSyncMachineIntVariables", "class_electromechanical.html#a82b5c5c2aeefd49706199d0ba140d300", null ],
- [ "CalculateSyncMachineNonIntVariables", "class_electromechanical.html#a10b7ceb1a8066461c5369d210cff48d5", null ],
+ [ "CalculateSyncMachineIntVariables", "class_electromechanical.html#ac185e65f3073319fc4ac4ec11c328337", null ],
+ [ "CalculateSyncMachineNonIntVariables", "class_electromechanical.html#a8ca8ab15ead93ee615277698bf0b3867", null ],
+ [ "CalculateSyncMachineSaturation", "class_electromechanical.html#a900832be747b8b3e41e901235012bf87", null ],
[ "EventTrigger", "class_electromechanical.html#a9b076237d26ff011552ed624a5d9bbe2", null ],
[ "GetErrorMessage", "class_electromechanical.html#a7972213c6043ca7c890b9f15d3e4162f", null ],
- [ "GetPowerValue", "class_electromechanical.html#aad655c165bc53cce5d5fdd8ae9339ba2", null ],
[ "GetSyncMachineAdmittance", "class_electromechanical.html#a6192a9b4152353c983b623048b1da460", null ],
+ [ "GetSyncMachineModelData", "class_electromechanical.html#aa191e34b2a6cbfd0d89c78da14f1d7f7", null ],
[ "GetTimeVector", "class_electromechanical.html#ab0d7d031ccc501d5101fabc7b48eb70e", null ],
[ "HasEvent", "class_electromechanical.html#a8fc1d8f7b697f8383681e3d3e7d66c72", null ],
[ "InitializeDynamicElements", "class_electromechanical.html#a4ccf60ce21c83ff757e1a7de99a00704", null ],
@@ -34,7 +35,12 @@ var class_electromechanical =
[ "m_plotTime", "class_electromechanical.html#a6c016a1470a0d910e4522b6027f3b95c", null ],
[ "m_powerSystemBase", "class_electromechanical.html#a18e698b73396100928175811236eebf4", null ],
[ "m_refSpeed", "class_electromechanical.html#aa00d6b356a74649a12fbdd06d44b1d28", null ],
+ [ "m_saturationTolerance", "class_electromechanical.html#a4029ebc888d91ec49b9bdf9f7cdf2631", null ],
+ [ "m_sdC", "class_electromechanical.html#a3a7d7043e936b7649a741cf9d39e01b9", null ],
+ [ "m_sdCVector", "class_electromechanical.html#a4c82ed8fc748149bb116ee532e6ee978", null ],
[ "m_simTime", "class_electromechanical.html#a827e9862cf10ebdc65c50f7542b67020", null ],
+ [ "m_sqC", "class_electromechanical.html#ac684393f47d36a6038d562e92df56ab6", null ],
+ [ "m_sqCVector", "class_electromechanical.html#a237471acf9a372a9b1cd1481803571d5", null ],
[ "m_systemFreq", "class_electromechanical.html#a110cd09af0070718c95d5300adcf754f", null ],
[ "m_timeStep", "class_electromechanical.html#a1070faed7544316f653e1a09fcccf475", null ],
[ "m_timeVector", "class_electromechanical.html#a3e7a7dfe02d9277957552f5a46f96dd1", null ],
diff --git a/docs/doxygen/html/class_element-members.html b/docs/doxygen/html/class_element-members.html
index 5b82a3a..2f1fc10 100644
--- a/docs/doxygen/html/class_element-members.html
+++ b/docs/doxygen/html/class_element-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_element.html b/docs/doxygen/html/class_element.html
index 8f8a29a..2045891 100644
--- a/docs/doxygen/html/class_element.html
+++ b/docs/doxygen/html/class_element.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_element.html','');});
<div class="title">Element Class Reference<span class="mlabels"><span class="mlabel">abstract</span></span></div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Base class of all elements of the program. This class is responsible for manage graphical and his data.
+ <a href="class_element.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_element_8h_source.html">Element.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Element:</div>
<div class="dyncontent">
@@ -94,23 +105,23 @@ Inheritance diagram for Element:</div>
<img src="class_element.png" usemap="#Element_map" alt=""/>
<map id="Element_map" name="Element_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,111,80"/>
-<area href="class_graphical_element.html" alt="GraphicalElement" shape="rect" coords="242,56,353,80"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="363,56,474,80"/>
-<area href="class_connection_line.html" alt="ConnectionLine" shape="rect" coords="121,112,232,136"/>
-<area href="class_constant.html" alt="Constant" shape="rect" coords="121,168,232,192"/>
-<area href="class_exponential.html" alt="Exponential" shape="rect" coords="121,224,232,248"/>
-<area href="class_gain.html" alt="Gain" shape="rect" coords="121,280,232,304"/>
-<area href="class_i_o_control.html" alt="IOControl" shape="rect" coords="121,336,232,360"/>
-<area href="class_limiter.html" alt="Limiter" shape="rect" coords="121,392,232,416"/>
-<area href="class_multiplier.html" alt="Multiplier" shape="rect" coords="121,448,232,472"/>
-<area href="class_rate_limiter.html" alt="RateLimiter" shape="rect" coords="121,504,232,528"/>
-<area href="class_sum.html" alt="Sum" shape="rect" coords="121,560,232,584"/>
-<area href="class_transfer_function.html" alt="TransferFunction" shape="rect" coords="121,616,232,640"/>
-<area href="class_text.html" alt="Text" shape="rect" coords="242,112,353,136"/>
-<area href="class_branch.html" alt="Branch" shape="rect" coords="484,112,595,136"/>
-<area href="class_bus.html" alt="Bus" shape="rect" coords="484,168,595,192"/>
-<area href="class_machines.html" alt="Machines" shape="rect" coords="484,224,595,248"/>
-<area href="class_shunt.html" alt="Shunt" shape="rect" coords="484,280,595,304"/>
+<area href="class_graphical_element.html" title="Abstract class for graphical elements shown with power elements in workspace. " alt="GraphicalElement" shape="rect" coords="242,56,353,80"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="363,56,474,80"/>
+<area href="class_connection_line.html" title="Connection between two control elements or other connection line and an element. " alt="ConnectionLine" shape="rect" coords="121,112,232,136"/>
+<area href="class_constant.html" title="A control element that provides a constant value. " alt="Constant" shape="rect" coords="121,168,232,192"/>
+<area href="class_exponential.html" title="Generates an output following an exponential function. " alt="Exponential" shape="rect" coords="121,224,232,248"/>
+<area href="class_gain.html" title="Provide an output multiplying the input by a constant. " alt="Gain" shape="rect" coords="121,280,232,304"/>
+<area href="class_i_o_control.html" title="Provides the communication with the power element. " alt="IOControl" shape="rect" coords="121,336,232,360"/>
+<area href="class_limiter.html" title="Limits the input value by superior and inferior values. " alt="Limiter" shape="rect" coords="121,392,232,416"/>
+<area href="class_multiplier.html" title="Multiplies two inputs. " alt="Multiplier" shape="rect" coords="121,448,232,472"/>
+<area href="class_rate_limiter.html" title="Limits the rising and/or falling rate. " alt="RateLimiter" shape="rect" coords="121,504,232,528"/>
+<area href="class_sum.html" title="Sum the all inputs (can choose the input signal). " alt="Sum" shape="rect" coords="121,560,232,584"/>
+<area href="class_transfer_function.html" title="Calculates the time response by a frequency domain transfer function. " alt="TransferFunction" shape="rect" coords="121,616,232,640"/>
+<area href="class_text.html" title="Element that shows power element informations in workspace. " alt="Text" shape="rect" coords="242,112,353,136"/>
+<area href="class_branch.html" title="Abstract class for branch power elements. " alt="Branch" shape="rect" coords="484,112,595,136"/>
+<area href="class_bus.html" title="Node for power elements. All others power elements are connected through this. " alt="Bus" shape="rect" coords="484,168,595,192"/>
+<area href="class_machines.html" title="Abstract class for rotary machines power elements. " alt="Machines" shape="rect" coords="484,224,595,248"/>
+<area href="class_shunt.html" title="Abstract class for shunt power elements. " alt="Shunt" shape="rect" coords="484,280,595,304"/>
</map>
</div></div>
<table class="memberdecls">
@@ -417,8 +428,11 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<tr class="separator:ab0df145138fef6ed901ff4b1828439b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00088">88</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<div class="textblock"><p>Base class of all elements of the program. This class is responsible for manage graphical and his data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>19/09/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00113">113</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac38d6707d08cb5c057032aa94b511a62"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac38d6707d08cb5c057032aa94b511a62">&#9670;&nbsp;</a></span>AddChild()</h2>
@@ -452,7 +466,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00333">333</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00353">353</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -493,15 +507,15 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented in <a class="el" href="class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6">Transformer</a>, <a class="el" href="class_text.html#a4f273ea7008c72533327c25caff2e917">Text</a>, <a class="el" href="class_bus.html#ab046baebe4bfe0a52905148d78f44681">Bus</a>, <a class="el" href="class_line.html#a26c69f7f703dca718edc28d5093934a3">Line</a>, <a class="el" href="class_load.html#ac9f449be9b919b36924a844324bf37ee">Load</a>, <a class="el" href="class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf">Capacitor</a>, <a class="el" href="class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5">Inductor</a>, and <a class="el" href="class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">Machines</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00234">234</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00240">240</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -532,12 +546,12 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Add a parent to the element. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
</table>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00240">240</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00245">245</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -575,7 +589,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f">Line</a>, and <a class="el" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00321">321</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00318">318</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -624,7 +638,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00243">243</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00263">263</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -721,7 +735,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00272">272</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00292">292</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -831,7 +845,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00017">17</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00033">33</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -872,13 +886,13 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Draw line. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">points</td><td><a class="el" href="class_line.html">Line</a> vertices. </td></tr>
+ <tr><td class="paramname">points</td><td><a class="el" href="class_line.html" title="Power line element. ">Line</a> vertices. </td></tr>
<tr><td class="paramname">mode</td><td>OpenGl primitive. </td></tr>
</table>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00073">73</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00089">89</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -914,7 +928,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00082">82</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00098">98</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -961,7 +975,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00124">124</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00139">139</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1022,7 +1036,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00053">53</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00069">69</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1069,7 +1083,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00063">63</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00079">79</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1116,7 +1130,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00044">44</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00060">60</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1152,7 +1166,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00228">228</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00245">245</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1182,7 +1196,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get the element angle. </p>
<dl class="section return"><dt>Returns</dt><dd>Angle value. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00201">201</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00212">212</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1214,7 +1228,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_bus.html#ac43fc37f8c8a8bc120d9a4bb68da3345">Bus</a>, <a class="el" href="class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9">Line</a>, and <a class="el" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00401">401</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00389">389</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1244,7 +1258,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get the Child list. </p>
<dl class="section return"><dt>Returns</dt><dd>Child List. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00523">523</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00511">511</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1283,7 +1297,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278">SyncMotor</a>, <a class="el" href="class_transformer.html#adfe51a2198cfc10e1095af9c034681bd">Transformer</a>, <a class="el" href="class_bus.html#ae731d57078982f0bd08e92e6a24f3057">Bus</a>, <a class="el" href="class_line.html#a978de0ff06b6f57401ade84045e1a55f">Line</a>, <a class="el" href="class_load.html#a25b4a3e553f8400114ac8effa11287da">Load</a>, <a class="el" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">Branch</a>, <a class="el" href="class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d">Capacitor</a>, <a class="el" href="class_inductor.html#aa0ae00d91b40307141a8bd3aebf1a0c2">Inductor</a>, and <a class="el" href="class_ind_motor.html#a87666565ae1380993d94e7886e9a1f59">IndMotor</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00315">315</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00313">313</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1313,9 +1327,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get a the element copy. </p>
<dl class="section return"><dt>Returns</dt><dd>Copy of the element. </dd></dl>
-<p>Reimplemented in <a class="el" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor</a>, <a class="el" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer</a>, <a class="el" href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text</a>, <a class="el" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus</a>, <a class="el" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line</a>, <a class="el" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl</a>, <a class="el" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction</a>, <a class="el" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine</a>, <a class="el" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum</a>, <a class="el" href="class_gain.html#a489572e289935d7256c037af682b9351">Gain</a>, <a class="el" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load</a>, <a class="el" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter</a>, <a class="el" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter</a>, <a class="el" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant</a>, <a class="el" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential</a>, <a class="el" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor</a>, <a class="el" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier</a>, <a class="el" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor</a>, and <a class="el" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor</a>.</p>
+<p>Reimplemented in <a class="el" href="class_sync_generator.html#a9130e8714c1518683540f587aca1201f">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313">SyncMotor</a>, <a class="el" href="class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd">Transformer</a>, <a class="el" href="class_text.html#a06e740065c875633e458c0d8f860c43e">Text</a>, <a class="el" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">TransferFunction</a>, <a class="el" href="class_bus.html#a4288c4c84c8840705c3ce6ccd42e578c">Bus</a>, <a class="el" href="class_line.html#afc4916268d2a32014e4ab0f8308165a1">Line</a>, <a class="el" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">RateLimiter</a>, <a class="el" href="class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7">IOControl</a>, <a class="el" href="class_gain.html#a489572e289935d7256c037af682b9351">Gain</a>, <a class="el" href="class_connection_line.html#a131a890bd54059c5370f1dc5156c192c">ConnectionLine</a>, <a class="el" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">Exponential</a>, <a class="el" href="class_sum.html#a0da96514e0462e47d3f57b79ddc457b6">Sum</a>, <a class="el" href="class_constant.html#ac566e3a63326d3f543a55af14ae0f8fa">Constant</a>, <a class="el" href="class_limiter.html#a6071e2308baa7b42f189f09fd1878245">Limiter</a>, <a class="el" href="class_load.html#a27309c24b2c70bde37ba6afbb9679da2">Load</a>, <a class="el" href="class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77">Multiplier</a>, <a class="el" href="class_ind_motor.html#ace3ce34ba500ec33bf37b9216ad636a8">IndMotor</a>, <a class="el" href="class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580">Capacitor</a>, and <a class="el" href="class_inductor.html#a4241ebd43388ebe88ec5888a15bc22d9">Inductor</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00258">258</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00262">262</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1343,9 +1357,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</div><div class="memdoc">
<p>Get the element height. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> height. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> height. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00183">183</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00197">197</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1373,9 +1387,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</div><div class="memdoc">
<p>Get the element ID. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> ID. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> ID. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00270">270</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00272">272</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1405,7 +1419,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get the parent list. </p>
<dl class="section return"><dt>Returns</dt><dd>Parent list. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00517">517</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00506">506</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1435,7 +1449,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get the list of points that connect the element to bus. </p>
<dl class="section return"><dt>Returns</dt><dd>List of points. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00225">225</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00232">232</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1463,9 +1477,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</div><div class="memdoc">
<p>Get the element position. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> position. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> position. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00171">171</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00187">187</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1493,9 +1507,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</div><div class="memdoc">
<p>Get the element rectangle. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> rectangle. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> rectangle. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00165">165</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00182">182</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1525,7 +1539,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Get the angle of rotation. </p>
<dl class="section return"><dt>Returns</dt><dd>Rotation angle. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00207">207</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00217">217</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1557,7 +1571,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_sync_generator.html#a9454438d059269c194e1aa648e122f7e">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210">SyncMotor</a>, <a class="el" href="class_transformer.html#a169064f996341f8f8b6881c6a3909f0b">Transformer</a>, <a class="el" href="class_bus.html#a0cf17a7aec23d436ff1eeb9834eb2b70">Bus</a>, <a class="el" href="class_line.html#a51e7bff578cd280464a70200fc323efc">Line</a>, <a class="el" href="class_load.html#a00acfbf7dc907e5de79ceb4803632279">Load</a>, <a class="el" href="class_capacitor.html#a00e808708e16b87c80fc650e5710b84e">Capacitor</a>, <a class="el" href="class_inductor.html#ac16663899a076f0e84722b27193fe530">Inductor</a>, and <a class="el" href="class_ind_motor.html#ae785c4055db23b4ae1ef03f00468a532">IndMotor</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00295">295</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00296">296</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1585,9 +1599,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</div><div class="memdoc">
<p>Get the element width. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> width. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> width. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00195">195</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00207">207</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1684,7 +1698,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00286">286</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00306">306</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1714,7 +1728,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Checks if the element is being dragged. </p>
<dl class="section return"><dt>Returns</dt><dd>True if is being dragged, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00177">177</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00192">192</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1744,7 +1758,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Checks if the element is online or offline. </p>
<dl class="section return"><dt>Returns</dt><dd>True if online, false if offline. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00219">219</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00227">227</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1774,7 +1788,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Checks if the pickbox is shown. </p>
<dl class="section return"><dt>Returns</dt><dd>True if the pickbox is show, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00213">213</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00222">222</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1804,7 +1818,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Checks if the element is selected. </p>
<dl class="section return"><dt>Returns</dt><dd>True if selected, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00189">189</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00202">202</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1840,9 +1854,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p>Reimplemented in <a class="el" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer</a>, <a class="el" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement</a>, <a class="el" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line</a>, <a class="el" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain</a>, <a class="el" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines</a>, <a class="el" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine</a>, <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>, and <a class="el" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt</a>.</p>
+<p>Reimplemented in <a class="el" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement</a>, <a class="el" href="class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8">Transformer</a>, <a class="el" href="class_line.html#a3eabf6de2af4ee71f72ce4f091c69978">Line</a>, <a class="el" href="class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db">Gain</a>, <a class="el" href="class_machines.html#a2f7450283dd36f4fc0847dfd50385c44">Machines</a>, <a class="el" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine</a>, <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>, and <a class="el" href="class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00107">107</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00123">123</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -1883,7 +1897,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Move a node. <a class="el" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -1891,7 +1905,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_transformer.html#a9652232a076cca0fe3753477ec88f63a">Transformer</a>, <a class="el" href="class_line.html#ac8be7d7136d86830c262280f51b79ea4">Line</a>, <a class="el" href="class_machines.html#aeab8436c33f74a10e252b418028ec491">Machines</a>, <a class="el" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">Branch</a>, and <a class="el" href="class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00341">341</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00337">337</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1929,7 +1943,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_bus.html#ad569e2192bf95efe668d401583382a04">Bus</a>, <a class="el" href="class_line.html#afa67498961416e645e0aa5358959ef1d">Line</a>, and <a class="el" href="class_branch.html#af7879ee138170b1421f745f1c942ea05">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00395">395</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00384">384</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -1968,7 +1982,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_machines.html#a63597b82a1db17a9e4aac9f1058d7dff">Machines</a>, <a class="el" href="class_shunt.html#ae325a441a44c2a78c08289292fa00979">Shunt</a>, and <a class="el" href="class_branch.html#a3a651769f183290af8a91494f5e9047b">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00348">348</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00343">343</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2007,7 +2021,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_bus.html#a0b8f3ed6e0049dafca8c52358f96bf4b">Bus</a>, <a class="el" href="class_line.html#acac760d9d67d9c4d007e03592d0e96b4">Line</a>, and <a class="el" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00389">389</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00379">379</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2055,7 +2069,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dl>
<dl class="section return"><dt>Returns</dt><dd>The distance between the point and the line. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00365">365</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00383">383</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2091,7 +2105,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00335">335</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00354">354</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2129,7 +2143,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_machines.html#a002d852ddd0d73502a6bd819b5545026">Machines</a>, <a class="el" href="class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc">Branch</a>, <a class="el" href="class_shunt.html#a665d9a8c291d427e666567c6df34321b">Shunt</a>, and <a class="el" href="class_connection_line.html#a3f5584348b86e665161b033d4ce8d702">ConnectionLine</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00367">367</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00359">359</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2176,7 +2190,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00343">343</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00362">362</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2223,7 +2237,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00326">326</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00346">346</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2259,9 +2273,9 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p>Reimplemented in <a class="el" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer</a>, <a class="el" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text</a>, <a class="el" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus</a>, <a class="el" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load</a>, <a class="el" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl</a>, <a class="el" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines</a>, <a class="el" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction</a>, <a class="el" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor</a>, <a class="el" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor</a>, <a class="el" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant</a>, <a class="el" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain</a>, <a class="el" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum</a>, <a class="el" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential</a>, <a class="el" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter</a>, <a class="el" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier</a>, and <a class="el" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter</a>.</p>
+<p>Reimplemented in <a class="el" href="class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de">Transformer</a>, <a class="el" href="class_text.html#afe1f86a497f34cee4809cbd7fda24dc3">Text</a>, <a class="el" href="class_bus.html#ace039d00c23d36a7c14d7e4155c94791">Bus</a>, <a class="el" href="class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9">IOControl</a>, <a class="el" href="class_machines.html#acff264f0c80d97a966ff97401f2f142a">Machines</a>, <a class="el" href="class_load.html#a46e9f2e0935ecca77b3a46568404d8e3">Load</a>, <a class="el" href="class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423">TransferFunction</a>, <a class="el" href="class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a">Capacitor</a>, <a class="el" href="class_inductor.html#a801bb445c01059558902c0eca4d38cdd">Inductor</a>, <a class="el" href="class_constant.html#a867addfc3c1a755b7aa0032d119245c6">Constant</a>, <a class="el" href="class_gain.html#ae19d739112c3aad30c58bdfd98f442e7">Gain</a>, <a class="el" href="class_sum.html#a738bcb564fec2764055e4785227b5eea">Sum</a>, <a class="el" href="class_exponential.html#a0714869ee8815119a6d76431bac767ea">Exponential</a>, <a class="el" href="class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25">Limiter</a>, <a class="el" href="class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1">Multiplier</a>, and <a class="el" href="class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e">RateLimiter</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00308">308</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00307">307</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2315,7 +2329,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00091">91</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00107">107</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2376,7 +2390,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00132">132</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00147">147</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2417,7 +2431,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -2425,7 +2439,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_transformer.html#adf0b20286f3de359346b8877d65c1996">Transformer</a>, <a class="el" href="class_line.html#ab73d74778b5aa9807d21f156d15fadf7">Line</a>, <a class="el" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch</a>, <a class="el" href="class_machines.html#a914faa054440402cad74c3b70f62ad92">Machines</a>, and <a class="el" href="class_shunt.html#a7a732f1fb5f54b89e33957194fefd703">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00381">381</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00372">372</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2461,7 +2475,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00135">135</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00156">156</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2497,7 +2511,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00147">147</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00166">166</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2533,7 +2547,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00105">105</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00130">130</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2569,7 +2583,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00111">111</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00135">135</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2600,12 +2614,12 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Set the element ID. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">id</td><td><a class="el" href="class_element.html">Element</a> ID. </td></tr>
+ <tr><td class="paramname">id</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> ID. </td></tr>
</table>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00264">264</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00267">267</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2636,7 +2650,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -2644,7 +2658,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_transformer.html#a4f9137e6190fb630167f671a0da51ab6">Transformer</a>, <a class="el" href="class_line.html#a6d35082da4d30bd432b73b72dd86fadb">Line</a>, <a class="el" href="class_machines.html#aed7664d5b85585fc13f4a1ad48457901">Machines</a>, <a class="el" href="class_shunt.html#aacb9fdd05533a8322596b130c70774ef">Shunt</a>, and <a class="el" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00361">361</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00354">354</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2672,7 +2686,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00218">218</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00235">235</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2710,7 +2724,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_line.html#af9a931bdb7e0693cacae010a19b744e6">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00159">159</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00177">177</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2738,7 +2752,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00010">10</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00025">25</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2774,7 +2788,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00123">123</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00146">146</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2810,7 +2824,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00129">129</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00151">151</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2852,15 +2866,15 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
<dl class="section return"><dt>Returns</dt><dd>True if the form is shown, false otherwise. </dd></dl>
-<p>Reimplemented in <a class="el" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor</a>, <a class="el" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator</a>, <a class="el" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer</a>, <a class="el" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus</a>, <a class="el" href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line</a>, <a class="el" href="class_load.html#a792367f35c97324328816fee156e5ecf">Load</a>, <a class="el" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor</a>, <a class="el" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor</a>, <a class="el" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl</a>, <a class="el" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor</a>, <a class="el" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction</a>, <a class="el" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant</a>, <a class="el" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain</a>, <a class="el" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum</a>, <a class="el" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential</a>, <a class="el" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter</a>, <a class="el" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">Multiplier</a>, and <a class="el" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter</a>.</p>
+<p>Reimplemented in <a class="el" href="class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f">SyncMotor</a>, <a class="el" href="class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f">Transformer</a>, <a class="el" href="class_bus.html#a93dbd8f80b11123395093f561d5241d0">Bus</a>, <a class="el" href="class_line.html#a24c6a659148f063c78e080a18f4517a1">Line</a>, <a class="el" href="class_load.html#a792367f35c97324328816fee156e5ecf">Load</a>, <a class="el" href="class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6">Capacitor</a>, <a class="el" href="class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9">Inductor</a>, <a class="el" href="class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439">IOControl</a>, <a class="el" href="class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286">IndMotor</a>, <a class="el" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">TransferFunction</a>, <a class="el" href="class_constant.html#af6bded0e01717303bb71da9e45c2b061">Constant</a>, <a class="el" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">Gain</a>, <a class="el" href="class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b">Sum</a>, <a class="el" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">Exponential</a>, <a class="el" href="class_limiter.html#a31fd227e010e7d39f1435a70709b14e3">Limiter</a>, <a class="el" href="class_multiplier.html#a4fa1206b47c626930db753a70e01680d">Multiplier</a>, and <a class="el" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">RateLimiter</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00547">547</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00534">534</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2896,7 +2910,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00141">141</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00161">161</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -2934,7 +2948,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented in <a class="el" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5">Transformer</a>, <a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">ControlElement</a>, <a class="el" href="class_line.html#abb812387508a9971570bfa1d38e41041">Line</a>, <a class="el" href="class_machines.html#acbefe76cd5161b5684a27205b155e797">Machines</a>, <a class="el" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine</a>, <a class="el" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865">Shunt</a>, and <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00101">101</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00117">117</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -2981,7 +2995,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00300">300</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00320">320</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -3042,7 +3056,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00109">109</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00124">124</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -3110,7 +3124,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00115">115</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00130">130</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_element_data_object-members.html b/docs/doxygen/html/class_element_data_object-members.html
index 7bebc8c..5c95471 100644
--- a/docs/doxygen/html/class_element_data_object-members.html
+++ b/docs/doxygen/html/class_element_data_object-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_element_data_object.html b/docs/doxygen/html/class_element_data_object.html
index a9283b0..0acfd3b 100644
--- a/docs/doxygen/html/class_element_data_object.html
+++ b/docs/doxygen/html/class_element_data_object.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_element_data_object.html','');})
<div class="title">ElementDataObject Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Class to store the elements in the clipboard.
+ <a href="class_element_data_object.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ElementDataObject:</div>
<div class="dyncontent">
@@ -120,8 +131,11 @@ Protected Attributes</h2></td></tr>
<tr class="separator:a3da83a9dbd280969d26bee208e2566ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_element_data_object_8h_source.html#l00012">12</a> of file <a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a>.</p>
+<div class="textblock"><p>Class to store the elements in the clipboard. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_element_data_object_8h_source.html#l00036">36</a> of file <a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a></li>
<li>Project/<a class="el" href="_element_data_object_8cpp_source.html">ElementDataObject.cpp</a></li>
diff --git a/docs/doxygen/html/class_element_plot_data-members.html b/docs/doxygen/html/class_element_plot_data-members.html
index 7812211..ff2c7c3 100644
--- a/docs/doxygen/html/class_element_plot_data-members.html
+++ b/docs/doxygen/html/class_element_plot_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_element_plot_data.html b/docs/doxygen/html/class_element_plot_data.html
index 4436e06..cda9cc2 100644
--- a/docs/doxygen/html/class_element_plot_data.html
+++ b/docs/doxygen/html/class_element_plot_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -189,7 +195,7 @@ std::vector&lt; <a class="el" href="class_plot_data.html">PlotData</a> * &gt;&#1
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_element_plot_data_8h_source.html#l00039">39</a> of file <a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_plot_data_8h_source.html#l00064">64</a> of file <a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a></li>
<li>Project/<a class="el" href="_element_plot_data_8cpp_source.html">ElementPlotData.cpp</a></li>
diff --git a/docs/doxygen/html/class_exponential-members.html b/docs/doxygen/html/class_exponential-members.html
index 67d1db9..32393c9 100644
--- a/docs/doxygen/html/class_exponential-members.html
+++ b/docs/doxygen/html/class_exponential-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -192,7 +198,7 @@ $(document).ready(function(){initNavTree('class_exponential.html','');});
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(double width)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d">ShowForm</a>(wxWindow *parent, Element *element)</td><td class="entry"><a class="el" href="class_exponential.html">Exponential</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(bool showPickbox=true)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Solve</b>(double input, double timeStep) (defined in <a class="el" href="class_exponential.html">Exponential</a>)</td><td class="entry"><a class="el" href="class_exponential.html">Exponential</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Solve</a>(double input, double timeStep)</td><td class="entry"><a class="el" href="class_exponential.html">Exponential</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(wxPoint2DDouble position)</td><td class="entry"><a class="el" href="class_control_element.html">ControlElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(double value, int minDecimal=1)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>()</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
diff --git a/docs/doxygen/html/class_exponential.html b/docs/doxygen/html/class_exponential.html
index 833e923..f7b9b7b 100644
--- a/docs/doxygen/html/class_exponential.html
+++ b/docs/doxygen/html/class_exponential.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_exponential.html','');});
<div class="title">Exponential Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Generates an output following an exponential function.
+ <a href="class_exponential.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_exponential_8h_source.html">Exponential.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Exponential:</div>
<div class="dyncontent">
@@ -93,7 +104,7 @@ Inheritance diagram for Exponential:</div>
<img src="class_exponential.png" usemap="#Exponential_map" alt=""/>
<map id="Exponential_map" name="Exponential_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -126,8 +137,8 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>GetValues</b>
<tr class="memitem:a0ebfd386bebb9a1f9d41a3eca0daed3b"><td class="memItemLeft" align="right" valign="top"><a id="a0ebfd386bebb9a1f9d41a3eca0daed3b"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>SetValues</b> (double aValue, double bValue)</td></tr>
<tr class="separator:a0ebfd386bebb9a1f9d41a3eca0daed3b"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ae8e635b32b5d6a8226a3654aa639094f"><td class="memItemLeft" align="right" valign="top"><a id="ae8e635b32b5d6a8226a3654aa639094f"></a>
-virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>Solve</b> (double input, double timeStep)</td></tr>
+<tr class="memitem:ae8e635b32b5d6a8226a3654aa639094f"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Solve</a> (double input, double timeStep)</td></tr>
+<tr class="memdesc:ae8e635b32b5d6a8226a3654aa639094f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the exponential. <a href="#ae8e635b32b5d6a8226a3654aa639094f">More...</a><br /></td></tr>
<tr class="separator:ae8e635b32b5d6a8226a3654aa639094f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85cda0dba6549828a9045e478e24609f"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_element.html">Element</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_exponential.html#a85cda0dba6549828a9045e478e24609f">GetCopy</a> ()</td></tr>
<tr class="memdesc:a85cda0dba6549828a9045e478e24609f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a the element copy. <a href="#a85cda0dba6549828a9045e478e24609f">More...</a><br /></td></tr>
@@ -465,8 +476,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00008">8</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
+<div class="textblock"><p>Generates an output following an exponential function. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00032">32</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a79eabfca357002f160b082a6df9f6f2b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a79eabfca357002f160b082a6df9f6f2b">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -502,7 +516,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00015">15</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00039">39</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
</div>
</div>
@@ -551,7 +565,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00017">17</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00034">34</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
</div>
</div>
@@ -583,7 +597,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00121">121</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00138">138</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
</div>
</div>
@@ -621,7 +635,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00016">16</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8h_source.html#l00040">40</a> of file <a class="el" href="_exponential_8h_source.html">Exponential.h</a>.</p>
</div>
</div>
@@ -659,7 +673,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00067">67</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00084">84</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
</div>
</div>
@@ -701,7 +715,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -709,7 +723,57 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00056">56</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00073">73</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ae8e635b32b5d6a8226a3654aa639094f"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ae8e635b32b5d6a8226a3654aa639094f">&#9670;&nbsp;</a></span>Solve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Exponential::Solve </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>input</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>timeStep</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Calculates the exponential. </p>
+<center> \( output = A\cdot e^{B\cdot input} \)</center> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">input</td><td>Input value. </td></tr>
+ <tr><td class="paramname">timeStep</td><td>Time step. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Aways true. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="class_control_element.html">ControlElement</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_exponential_8cpp_source.html#l00132">132</a> of file <a class="el" href="_exponential_8cpp_source.html">Exponential.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_exponential_form-members.html b/docs/doxygen/html/class_exponential_form-members.html
index 51cd6d3..8289206 100644
--- a/docs/doxygen/html/class_exponential_form-members.html
+++ b/docs/doxygen/html/class_exponential_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_exponential_form.html b/docs/doxygen/html/class_exponential_form.html
index d080e79..a8e5e9b 100644
--- a/docs/doxygen/html/class_exponential_form.html
+++ b/docs/doxygen/html/class_exponential_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_exponential_form.html','');});
<div class="title">ExponentialForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the exponential control data.
+ <a href="class_exponential_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_exponential_form_8h_source.html">ExponentialForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ExponentialForm:</div>
<div class="dyncontent">
@@ -184,8 +195,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:a7d6e9e849659fc66e4c6ec3031570032 inherit pro_attribs_class_exponential_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_exponential_form_8h_source.html#l00007">7</a> of file <a class="el" href="_exponential_form_8h_source.html">ExponentialForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the exponential control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_exponential_form_8h_source.html#l00031">31</a> of file <a class="el" href="_exponential_form_8h_source.html">ExponentialForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_exponential_form_8h_source.html">ExponentialForm.h</a></li>
<li>Project/<a class="el" href="_exponential_form_8cpp_source.html">ExponentialForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_exponential_form_base-members.html b/docs/doxygen/html/class_exponential_form_base-members.html
index de38276..359511e 100644
--- a/docs/doxygen/html/class_exponential_form_base-members.html
+++ b/docs/doxygen/html/class_exponential_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_exponential_form_base.html b/docs/doxygen/html/class_exponential_form_base.html
index e7ffc5f..17bc4b5 100644
--- a/docs/doxygen/html/class_exponential_form_base.html
+++ b/docs/doxygen/html/class_exponential_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for ExponentialFormBase:</div>
<div class="center">
<img src="class_exponential_form_base.png" usemap="#ExponentialFormBase_map" alt=""/>
<map id="ExponentialFormBase_map" name="ExponentialFormBase_map">
-<area href="class_exponential_form.html" alt="ExponentialForm" shape="rect" coords="0,112,134,136"/>
+<area href="class_exponential_form.html" title="Form to edit the exponential control data. " alt="ExponentialForm" shape="rect" coords="0,112,134,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_fault-members.html b/docs/doxygen/html/class_fault-members.html
index 8ab2b89..843046f 100644
--- a/docs/doxygen/html/class_fault-members.html
+++ b/docs/doxygen/html/class_fault-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_fault.html b/docs/doxygen/html/class_fault.html
index 1abe6d0..e02dde7 100644
--- a/docs/doxygen/html/class_fault.html
+++ b/docs/doxygen/html/class_fault.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,9 @@ $(document).ready(function(){initNavTree('class_fault.html','');});
</div><!--header-->
<div class="contents">
+<p>Calculate the fault of the system and update the elements data.
+ <a href="class_fault.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_fault_8h_source.html">Fault.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Fault:</div>
@@ -94,7 +103,7 @@ Inheritance diagram for Fault:</div>
<div class="center">
<img src="class_fault.png" usemap="#Fault_map" alt=""/>
<map id="Fault_map" name="Fault_map">
-<area href="class_electric_calculation.html" alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
+<area href="class_electric_calculation.html" title="Base class of electric calculations, with general methods. " alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -270,10 +279,11 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<tr class="separator:a6cca6be3c0b79741a49b1631e38fc3be inherit pro_attribs_class_electric_calculation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Calculate the fault of the system and update the elements data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
<dl class="section date"><dt>Date</dt><dd>10/01/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8h_source.html#l00013">13</a> of file <a class="el" href="_fault_8h_source.html">Fault.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8h_source.html#l00030">30</a> of file <a class="el" href="_fault_8h_source.html">Fault.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a8fbe3ce9f7288c4f8261db2d9a89adbb"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8fbe3ce9f7288c4f8261db2d9a89adbb">&#9670;&nbsp;</a></span>Fault()</h2>
@@ -299,7 +309,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00007">7</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00024">24</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
</div>
</div>
@@ -330,7 +340,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<p>Get the error message generated in <a class="el" href="class_fault.html#a4120f861b073783b4fb82385171fbd0f" title="Calculate the fault of the system. Return true if was possible the calculation. ">RunFaultCalculation(double systemPowerBase)</a>. </p>
<dl class="section return"><dt>Returns</dt><dd>Error message. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8h_source.html#l00054">54</a> of file <a class="el" href="_fault_8h_source.html">Fault.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8h_source.html#l00071">71</a> of file <a class="el" href="_fault_8h_source.html">Fault.h</a>.</p>
</div>
</div>
@@ -366,7 +376,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00009">9</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00026">26</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
</div>
</div>
@@ -402,7 +412,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00382">382</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00399">399</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
</div>
</div>
@@ -438,7 +448,7 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00176">176</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_fault_8cpp_source.html#l00193">193</a> of file <a class="el" href="_fault_8cpp_source.html">Fault.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_file_handing-members.html b/docs/doxygen/html/class_file_handing-members.html
index 96b7eee..aa442aa 100644
--- a/docs/doxygen/html/class_file_handing-members.html
+++ b/docs/doxygen/html/class_file_handing-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_file_handing.html b/docs/doxygen/html/class_file_handing.html
index 9d9bb64..dc4a87b 100644
--- a/docs/doxygen/html/class_file_handing.html
+++ b/docs/doxygen/html/class_file_handing.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_file_handing.html','');});
<div class="title">FileHanding Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Save and opens the projects created on disk.
+ <a href="class_file_handing.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_file_handing_8h_source.html">FileHanding.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -176,8 +187,11 @@ Protected Attributes</h2></td></tr>
<tr class="separator:a46142226e6ce37032008523a3095bba8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_file_handing_8h_source.html#l00019">19</a> of file <a class="el" href="_file_handing_8h_source.html">FileHanding.h</a>.</p>
+<div class="textblock"><p>Save and opens the projects created on disk. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_file_handing_8h_source.html#l00043">43</a> of file <a class="el" href="_file_handing_8h_source.html">FileHanding.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_file_handing_8h_source.html">FileHanding.h</a></li>
<li>Project/<a class="el" href="_file_handing_8cpp_source.html">FileHanding.cpp</a></li>
diff --git a/docs/doxygen/html/class_gain-members.html b/docs/doxygen/html/class_gain-members.html
index 6845354..bc1a0ae 100644
--- a/docs/doxygen/html/class_gain-members.html
+++ b/docs/doxygen/html/class_gain-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -194,7 +200,7 @@ $(document).ready(function(){initNavTree('class_gain.html','');});
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(double width)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_gain.html#a6b98027cbf545302867ad75f7ab84b93">ShowForm</a>(wxWindow *parent, Element *element)</td><td class="entry"><a class="el" href="class_gain.html">Gain</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(bool showPickbox=true)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Solve</b>(double input, double timeStep) (defined in <a class="el" href="class_gain.html">Gain</a>)</td><td class="entry"><a class="el" href="class_gain.html">Gain</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Solve</a>(double input, double timeStep)</td><td class="entry"><a class="el" href="class_gain.html">Gain</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(wxPoint2DDouble position)</td><td class="entry"><a class="el" href="class_control_element.html">ControlElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(double value, int minDecimal=1)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>()</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
diff --git a/docs/doxygen/html/class_gain.html b/docs/doxygen/html/class_gain.html
index 8c502b5..65c0902 100644
--- a/docs/doxygen/html/class_gain.html
+++ b/docs/doxygen/html/class_gain.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_gain.html','');});
<div class="title">Gain Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Provide an output multiplying the input by a constant.
+ <a href="class_gain.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_gain_8h_source.html">Gain.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Gain:</div>
<div class="dyncontent">
@@ -93,7 +104,7 @@ Inheritance diagram for Gain:</div>
<img src="class_gain.png" usemap="#Gain_map" alt=""/>
<map id="Gain_map" name="Gain_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -132,8 +143,8 @@ virtual double&#160;</td><td class="memItemRight" valign="bottom"><b>GetValue</b
<tr class="memitem:a9930247d3cee160ac2ae815ad865f077"><td class="memItemLeft" align="right" valign="top"><a id="a9930247d3cee160ac2ae815ad865f077"></a>
virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePoints</b> ()</td></tr>
<tr class="separator:a9930247d3cee160ac2ae815ad865f077"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a282cab6d339aa89a35c775bbea2aa117"><td class="memItemLeft" align="right" valign="top"><a id="a282cab6d339aa89a35c775bbea2aa117"></a>
-virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>Solve</b> (double input, double timeStep)</td></tr>
+<tr class="memitem:a282cab6d339aa89a35c775bbea2aa117"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Solve</a> (double input, double timeStep)</td></tr>
+<tr class="memdesc:a282cab6d339aa89a35c775bbea2aa117"><td class="mdescLeft">&#160;</td><td class="mdescRight">Multiply the input by a constant. <a href="#a282cab6d339aa89a35c775bbea2aa117">More...</a><br /></td></tr>
<tr class="separator:a282cab6d339aa89a35c775bbea2aa117"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a489572e289935d7256c037af682b9351"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_element.html">Element</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_gain.html#a489572e289935d7256c037af682b9351">GetCopy</a> ()</td></tr>
<tr class="memdesc:a489572e289935d7256c037af682b9351"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a the element copy. <a href="#a489572e289935d7256c037af682b9351">More...</a><br /></td></tr>
@@ -471,8 +482,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00011">11</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
+<div class="textblock"><p>Provide an output multiplying the input by a constant. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00035">35</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a9d80d49f5123cf4859bf15a251e3923f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9d80d49f5123cf4859bf15a251e3923f">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -508,7 +522,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00018">18</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00042">42</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
</div>
</div>
@@ -557,7 +571,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00018">18</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00035">35</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
</div>
</div>
@@ -589,7 +603,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00177">177</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00194">194</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
</div>
</div>
@@ -627,7 +641,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00019">19</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8h_source.html#l00043">43</a> of file <a class="el" href="_gain_8h_source.html">Gain.h</a>.</p>
</div>
</div>
@@ -665,7 +679,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708">ControlElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00165">165</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00182">182</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
</div>
</div>
@@ -703,7 +717,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00082">82</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00099">99</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
</div>
</div>
@@ -745,7 +759,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -753,7 +767,57 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00071">71</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00088">88</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a282cab6d339aa89a35c775bbea2aa117"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a282cab6d339aa89a35c775bbea2aa117">&#9670;&nbsp;</a></span>Solve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool Gain::Solve </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>input</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>timeStep</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Multiply the input by a constant. </p>
+<center> \( output = K \cdot input \)</center> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">input</td><td>Input value. </td></tr>
+ <tr><td class="paramname">timeStep</td><td>Time step. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Always true. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="class_control_element.html">ControlElement</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_gain_8cpp_source.html#l00188">188</a> of file <a class="el" href="_gain_8cpp_source.html">Gain.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_gain_form-members.html b/docs/doxygen/html/class_gain_form-members.html
index cb8d49a..685ba32 100644
--- a/docs/doxygen/html/class_gain_form-members.html
+++ b/docs/doxygen/html/class_gain_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_gain_form.html b/docs/doxygen/html/class_gain_form.html
index 8cc242c..e7bad86 100644
--- a/docs/doxygen/html/class_gain_form.html
+++ b/docs/doxygen/html/class_gain_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_gain_form.html','');});
<div class="title">GainForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the gain control data.
+ <a href="class_gain_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_gain_form_8h_source.html">GainForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for GainForm:</div>
<div class="dyncontent">
@@ -166,8 +177,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:ab0c009d67c2a5b8ab7fefe9f25b390a3 inherit pro_attribs_class_gain_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_gain_form_8h_source.html#l00007">7</a> of file <a class="el" href="_gain_form_8h_source.html">GainForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the gain control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_gain_form_8h_source.html#l00031">31</a> of file <a class="el" href="_gain_form_8h_source.html">GainForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_gain_form_8h_source.html">GainForm.h</a></li>
<li>Project/<a class="el" href="_gain_form_8cpp_source.html">GainForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_gain_form_base-members.html b/docs/doxygen/html/class_gain_form_base-members.html
index cb6774a..a3ffbf9 100644
--- a/docs/doxygen/html/class_gain_form_base-members.html
+++ b/docs/doxygen/html/class_gain_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_gain_form_base.html b/docs/doxygen/html/class_gain_form_base.html
index 316e708..002a162 100644
--- a/docs/doxygen/html/class_gain_form_base.html
+++ b/docs/doxygen/html/class_gain_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for GainFormBase:</div>
<div class="center">
<img src="class_gain_form_base.png" usemap="#GainFormBase_map" alt=""/>
<map id="GainFormBase_map" name="GainFormBase_map">
-<area href="class_gain_form.html" alt="GainForm" shape="rect" coords="0,112,95,136"/>
+<area href="class_gain_form.html" title="Form to edit the gain control data. " alt="GainForm" shape="rect" coords="0,112,95,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_general_properties_form-members.html b/docs/doxygen/html/class_general_properties_form-members.html
index afcb9f1..5318c57 100644
--- a/docs/doxygen/html/class_general_properties_form-members.html
+++ b/docs/doxygen/html/class_general_properties_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_general_properties_form.html b/docs/doxygen/html/class_general_properties_form.html
index 8a54a3b..bbf1322 100644
--- a/docs/doxygen/html/class_general_properties_form.html
+++ b/docs/doxygen/html/class_general_properties_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_general_properties_form.html',''
<div class="title">GeneralPropertiesForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the software's general data.
+ <a href="class_general_properties_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_general_properties_form_8h_source.html">GeneralPropertiesForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for GeneralPropertiesForm:</div>
<div class="dyncontent">
@@ -175,8 +186,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:ad2c78dd45aa38a5dfb44ad4a5b08beed inherit pro_attribs_class_general_properties_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_general_properties_form_8h_source.html#l00011">11</a> of file <a class="el" href="_general_properties_form_8h_source.html">GeneralPropertiesForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the software's general data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_general_properties_form_8h_source.html#l00035">35</a> of file <a class="el" href="_general_properties_form_8h_source.html">GeneralPropertiesForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_general_properties_form_8h_source.html">GeneralPropertiesForm.h</a></li>
<li>Project/<a class="el" href="_general_properties_form_8cpp_source.html">GeneralPropertiesForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_general_properties_form_base-members.html b/docs/doxygen/html/class_general_properties_form_base-members.html
index dccb945..8f87bdb 100644
--- a/docs/doxygen/html/class_general_properties_form_base-members.html
+++ b/docs/doxygen/html/class_general_properties_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_general_properties_form_base.html b/docs/doxygen/html/class_general_properties_form_base.html
index 14752da..c94c938 100644
--- a/docs/doxygen/html/class_general_properties_form_base.html
+++ b/docs/doxygen/html/class_general_properties_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for GeneralPropertiesFormBase:</div>
<div class="center">
<img src="class_general_properties_form_base.png" usemap="#GeneralPropertiesFormBase_map" alt=""/>
<map id="GeneralPropertiesFormBase_map" name="GeneralPropertiesFormBase_map">
-<area href="class_general_properties_form.html" alt="GeneralPropertiesForm" shape="rect" coords="0,112,172,136"/>
+<area href="class_general_properties_form.html" title="Form to edit the software&#39;s general data. " alt="GeneralPropertiesForm" shape="rect" coords="0,112,172,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_generator_stab_form-members.html b/docs/doxygen/html/class_generator_stab_form-members.html
index b004079..f839113 100644
--- a/docs/doxygen/html/class_generator_stab_form-members.html
+++ b/docs/doxygen/html/class_generator_stab_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_generator_stab_form.html b/docs/doxygen/html/class_generator_stab_form.html
index 25fcd1a..e44bdc3 100644
--- a/docs/doxygen/html/class_generator_stab_form.html
+++ b/docs/doxygen/html/class_generator_stab_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_generator_stab_form.html','');})
<div class="title">GeneratorStabForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the synchronous generator data for electromechanical studies.
+ <a href="class_generator_stab_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_generator_stab_form_8h_source.html">GeneratorStabForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for GeneratorStabForm:</div>
<div class="dyncontent">
@@ -469,8 +480,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a72f8e66e91538326eb815371b4d6e967 inherit pro_attribs_class_generator_stab_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_generator_stab_form_8h_source.html#l00011">11</a> of file <a class="el" href="_generator_stab_form_8h_source.html">GeneratorStabForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the synchronous generator data for electromechanical studies. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_generator_stab_form_8h_source.html#l00035">35</a> of file <a class="el" href="_generator_stab_form_8h_source.html">GeneratorStabForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_generator_stab_form_8h_source.html">GeneratorStabForm.h</a></li>
<li>Project/<a class="el" href="_generator_stab_form_8cpp_source.html">GeneratorStabForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_generator_stab_form_base-members.html b/docs/doxygen/html/class_generator_stab_form_base-members.html
index a45fb99..24497f2 100644
--- a/docs/doxygen/html/class_generator_stab_form_base-members.html
+++ b/docs/doxygen/html/class_generator_stab_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_generator_stab_form_base.html b/docs/doxygen/html/class_generator_stab_form_base.html
index fc89cfc..51cbeb5 100644
--- a/docs/doxygen/html/class_generator_stab_form_base.html
+++ b/docs/doxygen/html/class_generator_stab_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for GeneratorStabFormBase:</div>
<div class="center">
<img src="class_generator_stab_form_base.png" usemap="#GeneratorStabFormBase_map" alt=""/>
<map id="GeneratorStabFormBase_map" name="GeneratorStabFormBase_map">
-<area href="class_generator_stab_form.html" alt="GeneratorStabForm" shape="rect" coords="0,112,151,136"/>
+<area href="class_generator_stab_form.html" title="Form to edit the synchronous generator data for electromechanical studies. " alt="GeneratorStabForm" shape="rect" coords="0,112,151,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_graphical_element-members.html b/docs/doxygen/html/class_graphical_element-members.html
index 9305fd8..710354b 100644
--- a/docs/doxygen/html/class_graphical_element-members.html
+++ b/docs/doxygen/html/class_graphical_element-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_graphical_element.html b/docs/doxygen/html/class_graphical_element.html
index c7ef84b..beaa2e3 100644
--- a/docs/doxygen/html/class_graphical_element.html
+++ b/docs/doxygen/html/class_graphical_element.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -84,14 +90,19 @@ $(document).ready(function(){initNavTree('class_graphical_element.html','');});
<div class="title">GraphicalElement Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Abstract class for graphical elements shown with power elements in workspace.
+ <a href="class_graphical_element.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_graphical_element_8h_source.html">GraphicalElement.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for GraphicalElement:</div>
<div class="dyncontent">
<div class="center">
<img src="class_graphical_element.png" usemap="#GraphicalElement_map" alt=""/>
<map id="GraphicalElement_map" name="GraphicalElement_map">
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,111,24"/>
-<area href="class_text.html" alt="Text" shape="rect" coords="0,112,111,136"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,111,24"/>
+<area href="class_text.html" title="Element that shows power element informations in workspace. " alt="Text" shape="rect" coords="0,112,111,136"/>
</map>
</div></div>
<table class="memberdecls">
@@ -395,8 +406,11 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<tr class="separator:ab0df145138fef6ed901ff4b1828439b0 inherit pro_attribs_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_graphical_element_8h_source.html#l00006">6</a> of file <a class="el" href="_graphical_element_8h_source.html">GraphicalElement.h</a>.</p>
+<div class="textblock"><p>Abstract class for graphical elements shown with power elements in workspace. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_graphical_element_8h_source.html#l00030">30</a> of file <a class="el" href="_graphical_element_8h_source.html">GraphicalElement.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_graphical_element_8h_source.html">GraphicalElement.h</a></li>
<li>Project/<a class="el" href="_graphical_element_8cpp_source.html">GraphicalElement.cpp</a></li>
diff --git a/docs/doxygen/html/class_i_o_control-members.html b/docs/doxygen/html/class_i_o_control-members.html
index 955ee6b..3cd401a 100644
--- a/docs/doxygen/html/class_i_o_control-members.html
+++ b/docs/doxygen/html/class_i_o_control-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_i_o_control.html b/docs/doxygen/html/class_i_o_control.html
index c8a0e9e..2d4052a 100644
--- a/docs/doxygen/html/class_i_o_control.html
+++ b/docs/doxygen/html/class_i_o_control.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_i_o_control.html','');});
<div class="title">IOControl Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Provides the communication with the power element.
+ <a href="class_i_o_control.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for IOControl:</div>
<div class="dyncontent">
@@ -94,7 +105,7 @@ Inheritance diagram for IOControl:</div>
<img src="class_i_o_control.png" usemap="#IOControl_map" alt=""/>
<map id="IOControl_map" name="IOControl_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -498,8 +509,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00011">11</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
+<div class="textblock"><p>Provides the communication with the power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00035">35</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aa064c5d70e562334e2b374f919f42ef1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa064c5d70e562334e2b374f919f42ef1">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -535,7 +549,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00027">27</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00051">51</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
</div>
</div>
@@ -584,7 +598,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00019">19</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00036">36</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
</div>
</div>
@@ -616,7 +630,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00226">226</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00243">243</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
</div>
</div>
@@ -654,7 +668,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00028">28</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8h_source.html#l00052">52</a> of file <a class="el" href="_i_o_control_8h_source.html">IOControl.h</a>.</p>
</div>
</div>
@@ -692,7 +706,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00116">116</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00133">133</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
</div>
</div>
@@ -734,7 +748,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -742,7 +756,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00105">105</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_i_o_control_8cpp_source.html#l00122">122</a> of file <a class="el" href="_i_o_control_8cpp_source.html">IOControl.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_i_o_control_form-members.html b/docs/doxygen/html/class_i_o_control_form-members.html
index 55c0c8f..74bad93 100644
--- a/docs/doxygen/html/class_i_o_control_form-members.html
+++ b/docs/doxygen/html/class_i_o_control_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_i_o_control_form.html b/docs/doxygen/html/class_i_o_control_form.html
index 70aee61..dc6a93d 100644
--- a/docs/doxygen/html/class_i_o_control_form.html
+++ b/docs/doxygen/html/class_i_o_control_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_i_o_control_form.html','');});
<div class="title">IOControlForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the input/output control data.
+ <a href="class_i_o_control_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_i_o_control_form_8h_source.html">IOControlForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for IOControlForm:</div>
<div class="dyncontent">
@@ -190,8 +201,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:acb3fd01eeeab7e543724d84b3f87322b inherit pro_attribs_class_i_o_control_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_i_o_control_form_8h_source.html#l00007">7</a> of file <a class="el" href="_i_o_control_form_8h_source.html">IOControlForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the input/output control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_i_o_control_form_8h_source.html#l00031">31</a> of file <a class="el" href="_i_o_control_form_8h_source.html">IOControlForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_i_o_control_form_8h_source.html">IOControlForm.h</a></li>
<li>Project/<a class="el" href="_i_o_control_form_8cpp_source.html">IOControlForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_i_o_control_form_base-members.html b/docs/doxygen/html/class_i_o_control_form_base-members.html
index 7573535..7e8bdad 100644
--- a/docs/doxygen/html/class_i_o_control_form_base-members.html
+++ b/docs/doxygen/html/class_i_o_control_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_i_o_control_form_base.html b/docs/doxygen/html/class_i_o_control_form_base.html
index 07be9ec..10e1934 100644
--- a/docs/doxygen/html/class_i_o_control_form_base.html
+++ b/docs/doxygen/html/class_i_o_control_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for IOControlFormBase:</div>
<div class="center">
<img src="class_i_o_control_form_base.png" usemap="#IOControlFormBase_map" alt=""/>
<map id="IOControlFormBase_map" name="IOControlFormBase_map">
-<area href="class_i_o_control_form.html" alt="IOControlForm" shape="rect" coords="0,112,123,136"/>
+<area href="class_i_o_control_form.html" title="Form to edit the input/output control data. " alt="IOControlForm" shape="rect" coords="0,112,123,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_ind_motor-members.html b/docs/doxygen/html/class_ind_motor-members.html
index 21de1cf..ed184f3 100644
--- a/docs/doxygen/html/class_ind_motor-members.html
+++ b/docs/doxygen/html/class_ind_motor-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_ind_motor.html b/docs/doxygen/html/class_ind_motor.html
index 2685a0c..65ee739 100644
--- a/docs/doxygen/html/class_ind_motor.html
+++ b/docs/doxygen/html/class_ind_motor.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_ind_motor.html','');});
<div class="title">IndMotor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Induction motor power element.
+ <a href="class_ind_motor.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for IndMotor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_ind_motor.png" usemap="#IndMotor_map" alt=""/>
<map id="IndMotor_map" name="IndMotor_map">
-<area href="class_machines.html" alt="Machines" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_machines.html" title="Abstract class for rotary machines power elements. " alt="Machines" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -536,8 +547,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<tr class="separator:a489713cc909f0d733107dad72160f434 inherit pro_methods_class_machines"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8h_source.html#l00017">17</a> of file <a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>.</p>
+<div class="textblock"><p>Induction motor power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8h_source.html#l00040">40</a> of file <a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a87666565ae1380993d94e7886e9a1f59"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a87666565ae1380993d94e7886e9a1f59">&#9670;&nbsp;</a></span>GetContextMenu()</h2>
@@ -574,7 +588,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00025">25</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00035">35</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
</div>
</div>
@@ -606,7 +620,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00083">83</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00093">93</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
</div>
</div>
@@ -638,7 +652,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00090">90</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00100">100</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
</div>
</div>
@@ -680,7 +694,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -688,7 +702,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00032">32</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8cpp_source.html#l00042">42</a> of file <a class="el" href="_ind_motor_8cpp_source.html">IndMotor.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_ind_motor_form-members.html b/docs/doxygen/html/class_ind_motor_form-members.html
index 82385d8..40230c2 100644
--- a/docs/doxygen/html/class_ind_motor_form-members.html
+++ b/docs/doxygen/html/class_ind_motor_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_ind_motor_form.html b/docs/doxygen/html/class_ind_motor_form.html
index ac6498b..24b4a09 100644
--- a/docs/doxygen/html/class_ind_motor_form.html
+++ b/docs/doxygen/html/class_ind_motor_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_ind_motor_form.html','');});
<div class="title">IndMotorForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the induction motor power data.
+ <a href="class_ind_motor_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_ind_motor_form_8h_source.html">IndMotorForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for IndMotorForm:</div>
<div class="dyncontent">
@@ -211,8 +222,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a4519b549589b293788d81c97901f9be7 inherit pro_attribs_class_ind_motor_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_ind_motor_form_8h_source.html#l00007">7</a> of file <a class="el" href="_ind_motor_form_8h_source.html">IndMotorForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the induction motor power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_ind_motor_form_8h_source.html#l00031">31</a> of file <a class="el" href="_ind_motor_form_8h_source.html">IndMotorForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_ind_motor_form_8h_source.html">IndMotorForm.h</a></li>
<li>Project/<a class="el" href="_ind_motor_form_8cpp_source.html">IndMotorForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_ind_motor_form_base-members.html b/docs/doxygen/html/class_ind_motor_form_base-members.html
index 511915d..7e5d02b 100644
--- a/docs/doxygen/html/class_ind_motor_form_base-members.html
+++ b/docs/doxygen/html/class_ind_motor_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_ind_motor_form_base.html b/docs/doxygen/html/class_ind_motor_form_base.html
index 0dab4d6..e96ebee 100644
--- a/docs/doxygen/html/class_ind_motor_form_base.html
+++ b/docs/doxygen/html/class_ind_motor_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for IndMotorFormBase:</div>
<div class="center">
<img src="class_ind_motor_form_base.png" usemap="#IndMotorFormBase_map" alt=""/>
<map id="IndMotorFormBase_map" name="IndMotorFormBase_map">
-<area href="class_ind_motor_form.html" alt="IndMotorForm" shape="rect" coords="0,112,119,136"/>
+<area href="class_ind_motor_form.html" title="Form to edit the induction motor power data. " alt="IndMotorForm" shape="rect" coords="0,112,119,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_inductor-members.html b/docs/doxygen/html/class_inductor-members.html
index 51287a9..d91e97d 100644
--- a/docs/doxygen/html/class_inductor-members.html
+++ b/docs/doxygen/html/class_inductor-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_inductor.html b/docs/doxygen/html/class_inductor.html
index 0a3fbd0..8221ac3 100644
--- a/docs/doxygen/html/class_inductor.html
+++ b/docs/doxygen/html/class_inductor.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_inductor.html','');});
<div class="title">Inductor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_inductor.html" title="Inductor shunt power element. ">Inductor</a> shunt power element.
+ <a href="class_inductor.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_inductor_8h_source.html">Inductor.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Inductor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_inductor.png" usemap="#Inductor_map" alt=""/>
<map id="Inductor_map" name="Inductor_map">
-<area href="class_shunt.html" alt="Shunt" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_shunt.html" title="Abstract class for shunt power elements. " alt="Shunt" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -525,8 +536,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<tr class="separator:a902525eebbb4bf3ecaab0e1e60b6f017 inherit pro_methods_class_shunt"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_inductor_8h_source.html#l00014">14</a> of file <a class="el" href="_inductor_8h_source.html">Inductor.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_inductor.html" title="Inductor shunt power element. ">Inductor</a> shunt power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_inductor_8h_source.html#l00038">38</a> of file <a class="el" href="_inductor_8h_source.html">Inductor.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a4e404c6e15f206fe0f5de06fc19dedf5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4e404c6e15f206fe0f5de06fc19dedf5">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -565,15 +579,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00007">7</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00024">24</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -611,7 +625,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_shunt.html#a449431a2044b838d35cbb991aa1de658">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00115">115</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00132">132</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -660,7 +674,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00038">38</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00055">55</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -699,7 +713,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00108">108</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00125">125</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -731,7 +745,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00157">157</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00174">174</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -763,7 +777,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00164">164</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00181">181</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -801,7 +815,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_shunt.html#afdbf0c51f9630589937298329bb041fe">Shunt</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00121">121</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00138">138</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -839,7 +853,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00096">96</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00113">113</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
@@ -881,7 +895,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -889,7 +903,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00122">122</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8cpp_source.html#l00139">139</a> of file <a class="el" href="_inductor_8cpp_source.html">Inductor.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_limiter-members.html b/docs/doxygen/html/class_limiter-members.html
index a535a0d..a3e392e 100644
--- a/docs/doxygen/html/class_limiter-members.html
+++ b/docs/doxygen/html/class_limiter-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_limiter.html b/docs/doxygen/html/class_limiter.html
index 024dbd6..38380a9 100644
--- a/docs/doxygen/html/class_limiter.html
+++ b/docs/doxygen/html/class_limiter.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_limiter.html','');});
<div class="title">Limiter Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Limits the input value by superior and inferior values.
+ <a href="class_limiter.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_limiter_8h_source.html">Limiter.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Limiter:</div>
<div class="dyncontent">
@@ -93,7 +104,7 @@ Inheritance diagram for Limiter:</div>
<img src="class_limiter.png" usemap="#Limiter_map" alt=""/>
<map id="Limiter_map" name="Limiter_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -471,8 +482,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00008">8</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
+<div class="textblock"><p>Limits the input value by superior and inferior values. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00032">32</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac6506d59da4ea682d9e556564ec3ad11"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac6506d59da4ea682d9e556564ec3ad11">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -508,7 +522,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00015">15</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00039">39</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
</div>
</div>
@@ -557,7 +571,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00017">17</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00034">34</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
</div>
</div>
@@ -589,7 +603,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00100">100</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00119">119</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
</div>
</div>
@@ -627,7 +641,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00016">16</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8h_source.html#l00040">40</a> of file <a class="el" href="_limiter_8h_source.html">Limiter.h</a>.</p>
</div>
</div>
@@ -665,7 +679,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00055">55</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00072">72</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
</div>
</div>
@@ -707,7 +721,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -715,7 +729,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00044">44</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_limiter_8cpp_source.html#l00061">61</a> of file <a class="el" href="_limiter_8cpp_source.html">Limiter.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_limiter_form-members.html b/docs/doxygen/html/class_limiter_form-members.html
index e84277e..01419d9 100644
--- a/docs/doxygen/html/class_limiter_form-members.html
+++ b/docs/doxygen/html/class_limiter_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_limiter_form.html b/docs/doxygen/html/class_limiter_form.html
index 89591fe..935e8de 100644
--- a/docs/doxygen/html/class_limiter_form.html
+++ b/docs/doxygen/html/class_limiter_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_limiter_form.html','');});
<div class="title">LimiterForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the limit control data.
+ <a href="class_limiter_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_limiter_form_8h_source.html">LimiterForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for LimiterForm:</div>
<div class="dyncontent">
@@ -178,8 +189,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:aaa967f3b7a80dc872ff50e002dcc7074 inherit pro_attribs_class_limiter_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_limiter_form_8h_source.html#l00007">7</a> of file <a class="el" href="_limiter_form_8h_source.html">LimiterForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the limit control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_limiter_form_8h_source.html#l00031">31</a> of file <a class="el" href="_limiter_form_8h_source.html">LimiterForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_limiter_form_8h_source.html">LimiterForm.h</a></li>
<li>Project/<a class="el" href="_limiter_form_8cpp_source.html">LimiterForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_limiter_form_base-members.html b/docs/doxygen/html/class_limiter_form_base-members.html
index 9baab18..ceb2b77 100644
--- a/docs/doxygen/html/class_limiter_form_base-members.html
+++ b/docs/doxygen/html/class_limiter_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_limiter_form_base.html b/docs/doxygen/html/class_limiter_form_base.html
index 79c6648..b835d4b 100644
--- a/docs/doxygen/html/class_limiter_form_base.html
+++ b/docs/doxygen/html/class_limiter_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for LimiterFormBase:</div>
<div class="center">
<img src="class_limiter_form_base.png" usemap="#LimiterFormBase_map" alt=""/>
<map id="LimiterFormBase_map" name="LimiterFormBase_map">
-<area href="class_limiter_form.html" alt="LimiterForm" shape="rect" coords="0,112,106,136"/>
+<area href="class_limiter_form.html" title="Form to edit the limit control data. " alt="LimiterForm" shape="rect" coords="0,112,106,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_line-members.html b/docs/doxygen/html/class_line-members.html
index 98a79a4..5258159 100644
--- a/docs/doxygen/html/class_line-members.html
+++ b/docs/doxygen/html/class_line-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_line.html b/docs/doxygen/html/class_line.html
index 75049f5..4c05074 100644
--- a/docs/doxygen/html/class_line.html
+++ b/docs/doxygen/html/class_line.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,15 +93,20 @@ $(document).ready(function(){initNavTree('class_line.html','');});
<div class="title">Line Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Power line element.
+ <a href="class_line.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_line_8h_source.html">Line.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Line:</div>
<div class="dyncontent">
<div class="center">
<img src="class_line.png" usemap="#Line_map" alt=""/>
<map id="Line_map" name="Line_map">
-<area href="class_branch.html" alt="Branch" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_branch.html" title="Abstract class for branch power elements. " alt="Branch" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -531,8 +542,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00035">35</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
+<div class="textblock"><p>Power line element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00059">59</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a26c69f7f703dca718edc28d5093934a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a26c69f7f703dca718edc28d5093934a3">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -571,15 +585,15 @@ Additional Inherited Members</h2></td></tr>
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00119">119</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00136">136</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -617,7 +631,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a8d6d80c50f849c5be2bccffd5b524e21">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00217">217</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00234">234</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -666,7 +680,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00315">315</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00335">335</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -704,7 +718,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00022">22</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00039">39</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -753,7 +767,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00030">30</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00047">47</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -785,7 +799,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a62418f767cc9bb894d6b7cc73645e43e">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00047">47</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00071">71</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
</div>
</div>
@@ -824,7 +838,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00272">272</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00289">289</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -856,7 +870,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00479">479</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00499">499</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -888,7 +902,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00486">486</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00506">506</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -926,7 +940,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00186">186</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00203">203</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -964,7 +978,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00099">99</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00116">116</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1005,7 +1019,7 @@ Additional Inherited Members</h2></td></tr>
<p>Move a node. <a class="el" href="class_line.html#abb812387508a9971570bfa1d38e41041" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -1013,7 +1027,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00230">230</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00247">247</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1051,7 +1065,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#af7879ee138170b1421f745f1c942ea05">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00193">193</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00210">210</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1090,7 +1104,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a88ab67c930d37daa723c94d7e59a5cf8">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00205">205</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00222">222</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1131,7 +1145,7 @@ Additional Inherited Members</h2></td></tr>
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -1139,7 +1153,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00458">458</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00478">478</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1170,7 +1184,7 @@ Additional Inherited Members</h2></td></tr>
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -1178,7 +1192,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00349">349</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00369">369</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1227,7 +1241,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00341">341</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00361">361</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1265,7 +1279,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a88941f383fb321b1be441838e2b8700f">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00472">472</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00492">492</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1303,7 +1317,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00429">429</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00449">449</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1345,7 +1359,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -1353,7 +1367,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00330">330</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00350">350</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
@@ -1391,7 +1405,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00224">224</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8cpp_source.html#l00241">241</a> of file <a class="el" href="_line_8cpp_source.html">Line.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_line_form-members.html b/docs/doxygen/html/class_line_form-members.html
index 108ff58..969a833 100644
--- a/docs/doxygen/html/class_line_form-members.html
+++ b/docs/doxygen/html/class_line_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_line_form.html b/docs/doxygen/html/class_line_form.html
index f0b3678..fece702 100644
--- a/docs/doxygen/html/class_line_form.html
+++ b/docs/doxygen/html/class_line_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_line_form.html','');});
<div class="title">LineForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the line power data.
+ <a href="class_line_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_line_form_8h_source.html">LineForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for LineForm:</div>
<div class="dyncontent">
@@ -328,8 +339,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:a2cf2cf9916228e7422349d082cd2b897 inherit pro_attribs_class_line_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_line_form_8h_source.html#l00008">8</a> of file <a class="el" href="_line_form_8h_source.html">LineForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the line power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_line_form_8h_source.html#l00032">32</a> of file <a class="el" href="_line_form_8h_source.html">LineForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_line_form_8h_source.html">LineForm.h</a></li>
<li>Project/<a class="el" href="_line_form_8cpp_source.html">LineForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_line_form_base-members.html b/docs/doxygen/html/class_line_form_base-members.html
index 7f242fe..7951696 100644
--- a/docs/doxygen/html/class_line_form_base-members.html
+++ b/docs/doxygen/html/class_line_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_line_form_base.html b/docs/doxygen/html/class_line_form_base.html
index af41940..d83e65f 100644
--- a/docs/doxygen/html/class_line_form_base.html
+++ b/docs/doxygen/html/class_line_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for LineFormBase:</div>
<div class="center">
<img src="class_line_form_base.png" usemap="#LineFormBase_map" alt=""/>
<map id="LineFormBase_map" name="LineFormBase_map">
-<area href="class_line_form.html" alt="LineForm" shape="rect" coords="0,112,93,136"/>
+<area href="class_line_form.html" title="Form to edit the line power data. " alt="LineForm" shape="rect" coords="0,112,93,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_load-members.html b/docs/doxygen/html/class_load-members.html
index c5738f5..9e58351 100644
--- a/docs/doxygen/html/class_load-members.html
+++ b/docs/doxygen/html/class_load-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_load.html b/docs/doxygen/html/class_load.html
index 13dcb2b..b7d6d9c 100644
--- a/docs/doxygen/html/class_load.html
+++ b/docs/doxygen/html/class_load.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_load.html','');});
<div class="title">Load Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Loas shunt power element.
+ <a href="class_load.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_load_8h_source.html">Load.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Load:</div>
<div class="dyncontent">
<div class="center">
<img src="class_load.png" usemap="#Load_map" alt=""/>
<map id="Load_map" name="Load_map">
-<area href="class_shunt.html" alt="Shunt" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_shunt.html" title="Abstract class for shunt power elements. " alt="Shunt" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -528,8 +539,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<tr class="separator:a902525eebbb4bf3ecaab0e1e60b6f017 inherit pro_methods_class_shunt"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_load_8h_source.html#l00023">23</a> of file <a class="el" href="_load_8h_source.html">Load.h</a>.</p>
+<div class="textblock"><p>Loas shunt power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_load_8h_source.html#l00042">42</a> of file <a class="el" href="_load_8h_source.html">Load.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="ac9f449be9b919b36924a844324bf37ee"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac9f449be9b919b36924a844324bf37ee">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -568,15 +582,15 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00006">6</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00023">23</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -625,7 +639,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00042">42</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00059">59</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -664,7 +678,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00117">117</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00134">134</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -696,7 +710,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00174">174</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00191">191</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -728,7 +742,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00181">181</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00198">198</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -766,7 +780,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00104">104</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00121">121</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
@@ -808,7 +822,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -816,7 +830,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>DrawGround</b> (wxPoi
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00124">124</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8cpp_source.html#l00141">141</a> of file <a class="el" href="_load_8cpp_source.html">Load.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_load_form-members.html b/docs/doxygen/html/class_load_form-members.html
index fd5055f..342ac84 100644
--- a/docs/doxygen/html/class_load_form-members.html
+++ b/docs/doxygen/html/class_load_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_load_form.html b/docs/doxygen/html/class_load_form.html
index 60fa295..536f637 100644
--- a/docs/doxygen/html/class_load_form.html
+++ b/docs/doxygen/html/class_load_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_load_form.html','');});
<div class="title">LoadForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the load power data.
+ <a href="class_load_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_load_form_8h_source.html">LoadForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for LoadForm:</div>
<div class="dyncontent">
@@ -223,8 +234,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a485886d585c53b6d833373b4800f4ec4 inherit pro_attribs_class_load_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_load_form_8h_source.html#l00008">8</a> of file <a class="el" href="_load_form_8h_source.html">LoadForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the load power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_load_form_8h_source.html#l00032">32</a> of file <a class="el" href="_load_form_8h_source.html">LoadForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_load_form_8h_source.html">LoadForm.h</a></li>
<li>Project/<a class="el" href="_load_form_8cpp_source.html">LoadForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_load_form_base-members.html b/docs/doxygen/html/class_load_form_base-members.html
index 235029c..084386b 100644
--- a/docs/doxygen/html/class_load_form_base-members.html
+++ b/docs/doxygen/html/class_load_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_load_form_base.html b/docs/doxygen/html/class_load_form_base.html
index 217e812..d83caa5 100644
--- a/docs/doxygen/html/class_load_form_base.html
+++ b/docs/doxygen/html/class_load_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for LoadFormBase:</div>
<div class="center">
<img src="class_load_form_base.png" usemap="#LoadFormBase_map" alt=""/>
<map id="LoadFormBase_map" name="LoadFormBase_map">
-<area href="class_load_form.html" alt="LoadForm" shape="rect" coords="0,112,97,136"/>
+<area href="class_load_form.html" title="Form to edit the load power data. " alt="LoadForm" shape="rect" coords="0,112,97,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_machines-members.html b/docs/doxygen/html/class_machines-members.html
index b1245be..23d779a 100644
--- a/docs/doxygen/html/class_machines-members.html
+++ b/docs/doxygen/html/class_machines-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_machines.html b/docs/doxygen/html/class_machines.html
index 90e706a..0ca2bf4 100644
--- a/docs/doxygen/html/class_machines.html
+++ b/docs/doxygen/html/class_machines.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,17 +94,22 @@ $(document).ready(function(){initNavTree('class_machines.html','');});
<div class="title">Machines Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Abstract class for rotary machines power elements.
+ <a href="class_machines.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_machines_8h_source.html">Machines.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Machines:</div>
<div class="dyncontent">
<div class="center">
<img src="class_machines.png" usemap="#Machines_map" alt=""/>
<map id="Machines_map" name="Machines_map">
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="108,56,206,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="108,0,206,24"/>
-<area href="class_ind_motor.html" alt="IndMotor" shape="rect" coords="0,168,98,192"/>
-<area href="class_sync_generator.html" alt="SyncGenerator" shape="rect" coords="108,168,206,192"/>
-<area href="class_sync_motor.html" alt="SyncMotor" shape="rect" coords="216,168,314,192"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="108,56,206,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="108,0,206,24"/>
+<area href="class_ind_motor.html" title="Induction motor power element. " alt="IndMotor" shape="rect" coords="0,168,98,192"/>
+<area href="class_sync_generator.html" title="Synchronous generator power element. " alt="SyncGenerator" shape="rect" coords="108,168,206,192"/>
+<area href="class_sync_motor.html" title="Synchronous motor (synchronous compensator) power element. " alt="SyncMotor" shape="rect" coords="216,168,314,192"/>
</map>
</div></div>
<table class="memberdecls">
@@ -527,8 +538,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00009">9</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
+<div class="textblock"><p>Abstract class for rotary machines power elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00033">33</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aaaf1b86dcbfd8f4a4c082a77d72b1fe3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaaf1b86dcbfd8f4a4c082a77d72b1fe3">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -567,15 +581,15 @@ Additional Inherited Members</h2></td></tr>
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00008">8</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00025">25</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -613,7 +627,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00018">18</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00042">42</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
</div>
</div>
@@ -662,7 +676,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00037">37</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00054">54</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -700,7 +714,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00020">20</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8h_source.html#l00044">44</a> of file <a class="el" href="_machines_8h_source.html">Machines.h</a>.</p>
</div>
</div>
@@ -738,7 +752,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#abe884d99d12d5252e18956162115b025">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00094">94</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00111">111</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -779,7 +793,7 @@ Additional Inherited Members</h2></td></tr>
<p>Move a node. <a class="el" href="class_machines.html#acbefe76cd5161b5684a27205b155e797" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -787,7 +801,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00107">107</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00124">124</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -826,7 +840,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00158">158</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00175">175</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -864,7 +878,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00148">148</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00165">165</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -902,7 +916,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00215">215</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00232">232</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -943,7 +957,7 @@ Additional Inherited Members</h2></td></tr>
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -951,7 +965,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00136">136</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00153">153</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -982,7 +996,7 @@ Additional Inherited Members</h2></td></tr>
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -990,7 +1004,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00172">172</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00189">189</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -1028,7 +1042,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00250">250</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00267">267</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
@@ -1066,7 +1080,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00129">129</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_machines_8cpp_source.html#l00146">146</a> of file <a class="el" href="_machines_8cpp_source.html">Machines.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_main_app-members.html b/docs/doxygen/html/class_main_app-members.html
index a9c986b..bf25d4a 100644
--- a/docs/doxygen/html/class_main_app-members.html
+++ b/docs/doxygen/html/class_main_app-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_main_app.html b/docs/doxygen/html/class_main_app.html
index a223ed1..935803c 100644
--- a/docs/doxygen/html/class_main_app.html
+++ b/docs/doxygen/html/class_main_app.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -108,7 +114,7 @@ virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>OnInit</b> ()
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00011">11</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="main_8cpp_source.html#l00012">12</a> of file <a class="el" href="main_8cpp_source.html">main.cpp</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>Project/<a class="el" href="main_8cpp_source.html">main.cpp</a></li>
</ul>
diff --git a/docs/doxygen/html/class_main_frame-members.html b/docs/doxygen/html/class_main_frame-members.html
index eb4863d..868b7e4 100644
--- a/docs/doxygen/html/class_main_frame-members.html
+++ b/docs/doxygen/html/class_main_frame-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -151,8 +157,8 @@ $(document).ready(function(){initNavTree('class_main_frame.html','');});
<tr bgcolor="#f0f0f0"><td class="entry"><b>m_ribbonPanelSimulations</b> (defined in <a class="el" href="class_main_frame_base.html">MainFrameBase</a>)</td><td class="entry"><a class="el" href="class_main_frame_base.html">MainFrameBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>m_statusBar</b> (defined in <a class="el" href="class_main_frame_base.html">MainFrameBase</a>)</td><td class="entry"><a class="el" href="class_main_frame_base.html">MainFrameBase</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>m_workspaceList</b> (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MainFrame</b>() (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>MainFrame</b>(wxWindow *parent, wxLocale *locale, PropertiesData *initProperties) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a>()</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8">MainFrame</a>(wxWindow *parent, wxLocale *locale, PropertiesData *initProperties, wxString openPath=&quot;&quot;)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>MainFrameBase</b>(wxWindow *parent, wxWindowID id=wxID_ANY, const wxString &amp;title=_(&quot;PSP-UFU&quot;), const wxPoint &amp;pos=wxDefaultPosition, const wxSize &amp;size=wxSize(800, 600), long style=wxCAPTION|wxRESIZE_BORDER|wxMAXIMIZE_BOX|wxMINIMIZE_BOX|wxSYSTEM_MENU|wxCLOSE_BOX) (defined in <a class="el" href="class_main_frame_base.html">MainFrameBase</a>)</td><td class="entry"><a class="el" href="class_main_frame_base.html">MainFrameBase</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>NotebookPageClosed</b>(wxAuiNotebookEvent &amp;event) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>NotebookPageClosing</b>(wxAuiNotebookEvent &amp;event) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
@@ -189,7 +195,7 @@ $(document).ready(function(){initNavTree('class_main_frame.html','');});
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnSimulationSettingsClick</b>(wxRibbonButtonBarEvent &amp;event) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>OnSnapshotClick</b>(wxRibbonButtonBarEvent &amp;event) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>OnUndoClick</b>(wxRibbonButtonBarEvent &amp;event) (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"><span class="mlabel">protected</span><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>~MainFrame</b>() (defined in <a class="el" href="class_main_frame.html">MainFrame</a>)</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">~MainFrame</a>()</td><td class="entry"><a class="el" href="class_main_frame.html">MainFrame</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>~MainFrameBase</b>() (defined in <a class="el" href="class_main_frame_base.html">MainFrameBase</a>)</td><td class="entry"><a class="el" href="class_main_frame_base.html">MainFrameBase</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
</table></div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/class_main_frame.html b/docs/doxygen/html/class_main_frame.html
index d49d4e4..2a3b364 100644
--- a/docs/doxygen/html/class_main_frame.html
+++ b/docs/doxygen/html/class_main_frame.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_main_frame.html','');});
<div class="title">MainFrame Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Main frame of the program. This class manage the ribbon menu and the notebook behavior.
+ <a href="class_main_frame.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_main_frame_8h_source.html">MainFrame.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for MainFrame:</div>
<div class="dyncontent">
@@ -99,9 +110,17 @@ Inheritance diagram for MainFrame:</div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
-<tr class="memitem:ac5d3dc03594f76ed6e5fd1ccecfc5b0b"><td class="memItemLeft" align="right" valign="top"><a id="ac5d3dc03594f76ed6e5fd1ccecfc5b0b"></a>
-&#160;</td><td class="memItemRight" valign="bottom"><b>MainFrame</b> (wxWindow *parent, wxLocale *locale, <a class="el" href="class_properties_data.html">PropertiesData</a> *initProperties)</td></tr>
-<tr class="separator:ac5d3dc03594f76ed6e5fd1ccecfc5b0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a667b44053cae174a361cfd21124ef995"><td class="memItemLeft" align="right" valign="top"><a id="a667b44053cae174a361cfd21124ef995"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a> ()</td></tr>
+<tr class="memdesc:a667b44053cae174a361cfd21124ef995"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default constructor. <br /></td></tr>
+<tr class="separator:a667b44053cae174a361cfd21124ef995"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ac3288e93c5b8682863574bc47c9e9ff8"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8">MainFrame</a> (wxWindow *parent, wxLocale *locale, <a class="el" href="class_properties_data.html">PropertiesData</a> *initProperties, wxString openPath=&quot;&quot;)</td></tr>
+<tr class="memdesc:ac3288e93c5b8682863574bc47c9e9ff8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Main frame contructor. <a href="#ac3288e93c5b8682863574bc47c9e9ff8">More...</a><br /></td></tr>
+<tr class="separator:ac3288e93c5b8682863574bc47c9e9ff8"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a0cfd88ece4836e0ea5430bd55370bf11"><td class="memItemLeft" align="right" valign="top"><a id="a0cfd88ece4836e0ea5430bd55370bf11"></a>
+&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">~MainFrame</a> ()</td></tr>
+<tr class="memdesc:a0cfd88ece4836e0ea5430bd55370bf11"><td class="mdescLeft">&#160;</td><td class="mdescRight">Default destructor. <br /></td></tr>
+<tr class="separator:a0cfd88ece4836e0ea5430bd55370bf11"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_class_main_frame_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_class_main_frame_base')"><img src="closed.png" alt="-"/>&#160;Public Member Functions inherited from <a class="el" href="class_main_frame_base.html">MainFrameBase</a></td></tr>
<tr class="memitem:ae32925edbbd4ab14b2ce775b733b7c50 inherit pub_methods_class_main_frame_base"><td class="memItemLeft" align="right" valign="top"><a id="ae32925edbbd4ab14b2ce775b733b7c50"></a>
wxRibbonBar *&#160;</td><td class="memItemRight" valign="bottom"><b>GetRibbonBar</b> ()</td></tr>
@@ -369,9 +388,65 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:ae7e11ee827b7ec42dbd94f90891d15c9 inherit pub_types_class_main_frame_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_main_frame_8h_source.html#l00033">33</a> of file <a class="el" href="_main_frame_8h_source.html">MainFrame.h</a>.</p>
-</div><hr/>The documentation for this class was generated from the following files:<ul>
+<div class="textblock"><p>Main frame of the program. This class manage the ribbon menu and the notebook behavior. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>19/09/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_main_frame_8h_source.html#l00057">57</a> of file <a class="el" href="_main_frame_8h_source.html">MainFrame.h</a>.</p>
+</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
+<a id="ac3288e93c5b8682863574bc47c9e9ff8"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ac3288e93c5b8682863574bc47c9e9ff8">&#9670;&nbsp;</a></span>MainFrame()</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">MainFrame::MainFrame </td>
+ <td>(</td>
+ <td class="paramtype">wxWindow *&#160;</td>
+ <td class="paramname"><em>parent</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">wxLocale *&#160;</td>
+ <td class="paramname"><em>locale</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype"><a class="el" href="class_properties_data.html">PropertiesData</a> *&#160;</td>
+ <td class="paramname"><em>initProperties</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">wxString&#160;</td>
+ <td class="paramname"><em>openPath</em> = <code>&quot;&quot;</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+
+<p>Main frame contructor. </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">parent</td><td>Parent window. </td></tr>
+ <tr><td class="paramname">locale</td><td>Locale settings. </td></tr>
+ <tr><td class="paramname">initProperties</td><td>Initial properties. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_main_frame_8cpp_source.html#l00039">39</a> of file <a class="el" href="_main_frame_8cpp_source.html">MainFrame.cpp</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_main_frame_8h_source.html">MainFrame.h</a></li>
<li>Project/<a class="el" href="_main_frame_8cpp_source.html">MainFrame.cpp</a></li>
</ul>
diff --git a/docs/doxygen/html/class_main_frame.js b/docs/doxygen/html/class_main_frame.js
index 39a53f6..d45f170 100644
--- a/docs/doxygen/html/class_main_frame.js
+++ b/docs/doxygen/html/class_main_frame.js
@@ -1,7 +1,7 @@
var class_main_frame =
[
[ "MainFrame", "class_main_frame.html#a667b44053cae174a361cfd21124ef995", null ],
- [ "MainFrame", "class_main_frame.html#ac5d3dc03594f76ed6e5fd1ccecfc5b0b", null ],
+ [ "MainFrame", "class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8", null ],
[ "~MainFrame", "class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11", null ],
[ "CreateAddElementsMenu", "class_main_frame.html#aade761601af16dadcbf24cd2a4e8d289", null ],
[ "EnableCurrentProjectRibbon", "class_main_frame.html#ad1475f1bb8a05169b3d3d462008c887b", null ],
diff --git a/docs/doxygen/html/class_main_frame_base-members.html b/docs/doxygen/html/class_main_frame_base-members.html
index fae7e86..6c00475 100644
--- a/docs/doxygen/html/class_main_frame_base-members.html
+++ b/docs/doxygen/html/class_main_frame_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_main_frame_base.html b/docs/doxygen/html/class_main_frame_base.html
index a838e09..f2897bb 100644
--- a/docs/doxygen/html/class_main_frame_base.html
+++ b/docs/doxygen/html/class_main_frame_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -94,7 +100,7 @@ Inheritance diagram for MainFrameBase:</div>
<div class="center">
<img src="class_main_frame_base.png" usemap="#MainFrameBase_map" alt=""/>
<map id="MainFrameBase_map" name="MainFrameBase_map">
-<area href="class_main_frame.html" alt="MainFrame" shape="rect" coords="0,112,104,136"/>
+<area href="class_main_frame.html" title="Main frame of the program. This class manage the ribbon menu and the notebook behavior. " alt="MainFrame" shape="rect" coords="0,112,104,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_multiplier-members.html b/docs/doxygen/html/class_multiplier-members.html
index 4e21455..3763cbb 100644
--- a/docs/doxygen/html/class_multiplier-members.html
+++ b/docs/doxygen/html/class_multiplier-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_multiplier.html b/docs/doxygen/html/class_multiplier.html
index a444a0c..08a681b 100644
--- a/docs/doxygen/html/class_multiplier.html
+++ b/docs/doxygen/html/class_multiplier.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,6 +91,11 @@ $(document).ready(function(){initNavTree('class_multiplier.html','');});
<div class="title">Multiplier Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Multiplies two inputs.
+ <a href="class_multiplier.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Multiplier:</div>
<div class="dyncontent">
@@ -92,7 +103,7 @@ Inheritance diagram for Multiplier:</div>
<img src="class_multiplier.png" usemap="#Multiplier_map" alt=""/>
<map id="Multiplier_map" name="Multiplier_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -449,8 +460,11 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<tr class="separator:ab0df145138fef6ed901ff4b1828439b0 inherit pro_attribs_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00008">8</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
+<div class="textblock"><p>Multiplies two inputs. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00032">32</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="acee6216a03b550f3a9cad2bef3963a18"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acee6216a03b550f3a9cad2bef3963a18">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -486,7 +500,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00015">15</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00039">39</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
</div>
</div>
@@ -535,7 +549,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00020">20</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00037">37</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
</div>
</div>
@@ -567,7 +581,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00119">119</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00136">136</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
</div>
</div>
@@ -605,7 +619,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00016">16</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00040">40</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
</div>
</div>
@@ -643,7 +657,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00047">47</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8cpp_source.html#l00064">64</a> of file <a class="el" href="_multiplier_8cpp_source.html">Multiplier.cpp</a>.</p>
</div>
</div>
@@ -685,7 +699,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -693,7 +707,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>m_online</b> = true</
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00017">17</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_multiplier_8h_source.html#l00041">41</a> of file <a class="el" href="_multiplier_8h_source.html">Multiplier.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_node-members.html b/docs/doxygen/html/class_node-members.html
index 91d338f..6b70c73 100644
--- a/docs/doxygen/html/class_node-members.html
+++ b/docs/doxygen/html/class_node-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_node.html b/docs/doxygen/html/class_node.html
index 9fab95c..c6cdda8 100644
--- a/docs/doxygen/html/class_node.html
+++ b/docs/doxygen/html/class_node.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_node.html','');});
<div class="title">Node Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> of a control element. This class manages the user interaction with the connection and control elements.
+ <a href="class_node.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_control_element_8h_source.html">ControlElement.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public Types</h2></td></tr>
@@ -189,8 +200,11 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>m_angle</b> = 0.0</
<tr class="separator:aee3f9f6739a14d034b5e26d70e3c2aa8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_control_element_8h_source.html#l00006">6</a> of file <a class="el" href="_control_element_8h_source.html">ControlElement.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> of a control element. This class manages the user interaction with the connection and control elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_control_element_8h_source.html#l00030">30</a> of file <a class="el" href="_control_element_8h_source.html">ControlElement.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_control_element_8h_source.html">ControlElement.h</a></li>
<li>Project/<a class="el" href="_control_element_8cpp_source.html">ControlElement.cpp</a></li>
diff --git a/docs/doxygen/html/class_open_g_l_colour-members.html b/docs/doxygen/html/class_open_g_l_colour-members.html
index f97d480..2f9d5db 100644
--- a/docs/doxygen/html/class_open_g_l_colour-members.html
+++ b/docs/doxygen/html/class_open_g_l_colour-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_open_g_l_colour.html b/docs/doxygen/html/class_open_g_l_colour.html
index 02cc58e..5303ea4 100644
--- a/docs/doxygen/html/class_open_g_l_colour.html
+++ b/docs/doxygen/html/class_open_g_l_colour.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,9 @@ $(document).ready(function(){initNavTree('class_open_g_l_colour.html','');});
</div><!--header-->
<div class="contents">
+<p>Class to manage color of OpenGL.
+ <a href="class_open_g_l_colour.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_element_8h_source.html">Element.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
@@ -116,10 +125,11 @@ GLdouble&#160;</td><td class="memItemRight" valign="bottom"><b>rgba</b> [4]</td>
<tr class="separator:a8a1d6bdf3bc1b26f040e7a3b45dd85e7"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Class to manage color of OpenGL. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
<dl class="section date"><dt>Date</dt><dd>18/01/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00048">48</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00067">67</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div><h2 class="groupheader">Constructor &amp; Destructor Documentation</h2>
<a id="a273751fe4b9efccc28565ec5be7d7967"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a273751fe4b9efccc28565ec5be7d7967">&#9670;&nbsp;</a></span>OpenGLColour()</h2>
@@ -170,7 +180,7 @@ GLdouble&#160;</td><td class="memItemRight" valign="bottom"><b>rgba</b> [4]</td>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00360">360</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00378">378</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
@@ -201,7 +211,7 @@ GLdouble&#160;</td><td class="memItemRight" valign="bottom"><b>rgba</b> [4]</td>
<p>Get colour in RGBA. </p>
<dl class="section return"><dt>Returns</dt><dd>RGBA colour. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00083">83</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8h_source.html#l00101">101</a> of file <a class="el" href="_element_8h_source.html">Element.h</a>.</p>
</div>
</div>
@@ -254,7 +264,7 @@ GLdouble&#160;</td><td class="memItemRight" valign="bottom"><b>rgba</b> [4]</td>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00350">350</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_8cpp_source.html#l00369">369</a> of file <a class="el" href="_element_8cpp_source.html">Element.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_plot_data-members.html b/docs/doxygen/html/class_plot_data-members.html
index ef96235..0024fa6 100644
--- a/docs/doxygen/html/class_plot_data-members.html
+++ b/docs/doxygen/html/class_plot_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_plot_data.html b/docs/doxygen/html/class_plot_data.html
index 9978ba0..90ee9bb 100644
--- a/docs/doxygen/html/class_plot_data.html
+++ b/docs/doxygen/html/class_plot_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_plot_data.html','');});
<div class="title">PlotData Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This class is responsible to manage the graphical data of electromechanical result to be plotted on chart viewer.
+ <a href="class_plot_data.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PlotData:</div>
<div class="dyncontent">
@@ -165,8 +176,11 @@ int&#160;</td><td class="memItemRight" valign="bottom"><b>m_axis</b></td></tr>
<tr class="separator:a19d3ba5b243c0b3a0ae29deb853fa468"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_element_plot_data_8h_source.html#l00010">10</a> of file <a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>.</p>
+<div class="textblock"><p>This class is responsible to manage the graphical data of electromechanical result to be plotted on chart viewer. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_element_plot_data_8h_source.html#l00035">35</a> of file <a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following file:<ul>
<li>Project/<a class="el" href="_element_plot_data_8h_source.html">ElementPlotData.h</a></li>
</ul>
diff --git a/docs/doxygen/html/class_power_element-members.html b/docs/doxygen/html/class_power_element-members.html
index 1fc7283..ca24191 100644
--- a/docs/doxygen/html/class_power_element-members.html
+++ b/docs/doxygen/html/class_power_element-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_power_element.html b/docs/doxygen/html/class_power_element.html
index 1a8d117..dc61c46 100644
--- a/docs/doxygen/html/class_power_element.html
+++ b/docs/doxygen/html/class_power_element.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,9 @@ $(document).ready(function(){initNavTree('class_power_element.html','');});
</div><!--header-->
<div class="contents">
+<p>Abstract class of power elements.
+ <a href="class_power_element.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PowerElement:</div>
@@ -94,19 +103,19 @@ Inheritance diagram for PowerElement:</div>
<div class="center">
<img src="class_power_element.png" usemap="#PowerElement_map" alt=""/>
<map id="PowerElement_map" name="PowerElement_map">
-<area href="class_element.html" alt="Element" shape="rect" coords="162,0,260,24"/>
-<area href="class_branch.html" alt="Branch" shape="rect" coords="0,112,98,136"/>
-<area href="class_bus.html" alt="Bus" shape="rect" coords="108,112,206,136"/>
-<area href="class_machines.html" alt="Machines" shape="rect" coords="216,112,314,136"/>
-<area href="class_shunt.html" alt="Shunt" shape="rect" coords="432,112,530,136"/>
-<area href="class_line.html" alt="Line" shape="rect" coords="108,168,206,192"/>
-<area href="class_transformer.html" alt="Transformer" shape="rect" coords="108,224,206,248"/>
-<area href="class_ind_motor.html" alt="IndMotor" shape="rect" coords="324,168,422,192"/>
-<area href="class_sync_generator.html" alt="SyncGenerator" shape="rect" coords="324,224,422,248"/>
-<area href="class_sync_motor.html" alt="SyncMotor" shape="rect" coords="324,280,422,304"/>
-<area href="class_capacitor.html" alt="Capacitor" shape="rect" coords="540,168,638,192"/>
-<area href="class_inductor.html" alt="Inductor" shape="rect" coords="540,224,638,248"/>
-<area href="class_load.html" alt="Load" shape="rect" coords="540,280,638,304"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="162,0,260,24"/>
+<area href="class_branch.html" title="Abstract class for branch power elements. " alt="Branch" shape="rect" coords="0,112,98,136"/>
+<area href="class_bus.html" title="Node for power elements. All others power elements are connected through this. " alt="Bus" shape="rect" coords="108,112,206,136"/>
+<area href="class_machines.html" title="Abstract class for rotary machines power elements. " alt="Machines" shape="rect" coords="216,112,314,136"/>
+<area href="class_shunt.html" title="Abstract class for shunt power elements. " alt="Shunt" shape="rect" coords="432,112,530,136"/>
+<area href="class_line.html" title="Power line element. " alt="Line" shape="rect" coords="108,168,206,192"/>
+<area href="class_transformer.html" title="Two-winding transformer power element. " alt="Transformer" shape="rect" coords="108,224,206,248"/>
+<area href="class_ind_motor.html" title="Induction motor power element. " alt="IndMotor" shape="rect" coords="324,168,422,192"/>
+<area href="class_sync_generator.html" title="Synchronous generator power element. " alt="SyncGenerator" shape="rect" coords="324,224,422,248"/>
+<area href="class_sync_motor.html" title="Synchronous motor (synchronous compensator) power element. " alt="SyncMotor" shape="rect" coords="324,280,422,304"/>
+<area href="class_capacitor.html" title="Shunt capactior power element. " alt="Capacitor" shape="rect" coords="540,168,638,192"/>
+<area href="class_inductor.html" title="Inductor shunt power element. " alt="Inductor" shape="rect" coords="540,224,638,248"/>
+<area href="class_load.html" title="Loas shunt power element. " alt="Load" shape="rect" coords="540,280,638,304"/>
</map>
</div></div>
<table class="memberdecls">
@@ -505,10 +514,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Abstract class of power elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
<dl class="section date"><dt>Date</dt><dd>18/01/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00100">100</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00117">117</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a6c656ef223d36e96b19b0a9ec2115e9e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6c656ef223d36e96b19b0a9ec2115e9e">&#9670;&nbsp;</a></span>CalculatePowerFlowPts()</h2>
@@ -542,7 +552,7 @@ Additional Inherited Members</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00093">93</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00110">110</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
</div>
</div>
@@ -581,7 +591,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab">SyncGenerator</a>, and <a class="el" href="class_bus.html#a1ccb74b15ba07f867f2d73b976577e2a">Bus</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00181">181</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00198">198</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -611,7 +621,7 @@ Additional Inherited Members</h2></td></tr>
<p>Return the direction of the power flow. </p>
<dl class="section return"><dt>Returns</dt><dd>Power flow direction. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00175">175</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00192">192</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -639,9 +649,9 @@ Additional Inherited Members</h2></td></tr>
</div><div class="memdoc">
<p>Returns the switching data of the element. </p>
-<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html">Element</a> switching data. </dd></dl>
+<dl class="section return"><dt>Returns</dt><dd><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> switching data. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00165">165</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00182">182</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -688,14 +698,14 @@ Additional Inherited Members</h2></td></tr>
<p>Get the correct switch position. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_bus.html">Bus</a> with switch. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_bus.html" title="Node for power elements. All others power elements are connected through this. ">Bus</a> with switch. </td></tr>
<tr><td class="paramname">parentPoint</td><td>Position of node on parent. </td></tr>
<tr><td class="paramname">secondPoint</td><td>Next point in element. </td></tr>
</table>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00022">22</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00039">39</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
</div>
</div>
@@ -725,7 +735,7 @@ Additional Inherited Members</h2></td></tr>
<p>Check if the power element have dynamic event. </p>
<dl class="section return"><dt>Returns</dt><dd>true if the element have dynamic an event, false otherwise. </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00186">186</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00203">203</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -761,7 +771,7 @@ Additional Inherited Members</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00191">191</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00208">208</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -810,7 +820,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8">SyncGenerator</a>, <a class="el" href="class_sync_motor.html#a038162c828595f58782fe97dea2c864d">SyncMotor</a>, <a class="el" href="class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728">Transformer</a>, and <a class="el" href="class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072">Line</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00018">18</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00035">35</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
</div>
</div>
@@ -848,7 +858,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_transformer.html#a328c419af15701734168c8db62eefa36">Transformer</a>, <a class="el" href="class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e">Line</a>, and <a class="el" href="class_machines.html#a293cb955dcacaaebca564b8a91ce57d3">Machines</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00170">170</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00187">187</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -884,7 +894,7 @@ Additional Inherited Members</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00160">160</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00177">177</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -920,7 +930,7 @@ Additional Inherited Members</h2></td></tr>
</dd>
</dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00046">46</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8cpp_source.html#l00063">63</a> of file <a class="el" href="_power_element_8cpp_source.html">PowerElement.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_power_flow-members.html b/docs/doxygen/html/class_power_flow-members.html
index 148f3a7..28fc616 100644
--- a/docs/doxygen/html/class_power_flow-members.html
+++ b/docs/doxygen/html/class_power_flow-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_power_flow.html b/docs/doxygen/html/class_power_flow.html
index f4d0fbf..ce7443d 100644
--- a/docs/doxygen/html/class_power_flow.html
+++ b/docs/doxygen/html/class_power_flow.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,13 +92,18 @@ $(document).ready(function(){initNavTree('class_power_flow.html','');});
<div class="title">PowerFlow Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Calculate the power flow.
+ <a href="class_power_flow.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_power_flow_8h_source.html">PowerFlow.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for PowerFlow:</div>
<div class="dyncontent">
<div class="center">
<img src="class_power_flow.png" usemap="#PowerFlow_map" alt=""/>
<map id="PowerFlow_map" name="PowerFlow_map">
-<area href="class_electric_calculation.html" alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
+<area href="class_electric_calculation.html" title="Base class of electric calculations, with general methods. " alt="ElectricCalculation" shape="rect" coords="0,0,118,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -218,8 +229,11 @@ std::vector&lt; <a class="el" href="class_transformer.html">Transformer</a> * &g
<tr class="separator:a6cca6be3c0b79741a49b1631e38fc3be inherit pro_attribs_class_electric_calculation"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_power_flow_8h_source.html#l00009">9</a> of file <a class="el" href="_power_flow_8h_source.html">PowerFlow.h</a>.</p>
+<div class="textblock"><p>Calculate the power flow. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_power_flow_8h_source.html#l00033">33</a> of file <a class="el" href="_power_flow_8h_source.html">PowerFlow.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_power_flow_8h_source.html">PowerFlow.h</a></li>
<li>Project/<a class="el" href="_power_flow_8cpp_source.html">PowerFlow.cpp</a></li>
diff --git a/docs/doxygen/html/class_properties_data-members.html b/docs/doxygen/html/class_properties_data-members.html
index f54f6cb..2271c0a 100644
--- a/docs/doxygen/html/class_properties_data-members.html
+++ b/docs/doxygen/html/class_properties_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_properties_data.html b/docs/doxygen/html/class_properties_data.html
index 9ee0144..23b78fe 100644
--- a/docs/doxygen/html/class_properties_data.html
+++ b/docs/doxygen/html/class_properties_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,11 @@ $(document).ready(function(){initNavTree('class_properties_data.html','');});
<div class="title">PropertiesData Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>General and simulation data manager.
+ <a href="class_properties_data.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public Member Functions</h2></td></tr>
@@ -112,8 +123,11 @@ Protected Attributes</h2></td></tr>
<tr class="separator:a9f7f7faa69ce057afa6b59f722c7ccab"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00040">40</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
+<div class="textblock"><p>General and simulation data manager. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00064">64</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a></li>
<li>Project/<a class="el" href="_properties_data_8cpp_source.html">PropertiesData.cpp</a></li>
diff --git a/docs/doxygen/html/class_rate_limiter-members.html b/docs/doxygen/html/class_rate_limiter-members.html
index 0cab65f..6297241 100644
--- a/docs/doxygen/html/class_rate_limiter-members.html
+++ b/docs/doxygen/html/class_rate_limiter-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -194,7 +200,7 @@ $(document).ready(function(){initNavTree('class_rate_limiter.html','');});
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(double width)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr><td class="entry"><a class="el" href="class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60">ShowForm</a>(wxWindow *parent, Element *element)</td><td class="entry"><a class="el" href="class_rate_limiter.html">RateLimiter</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(bool showPickbox=true)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>Solve</b>(double input, double timeStep) (defined in <a class="el" href="class_rate_limiter.html">RateLimiter</a>)</td><td class="entry"><a class="el" href="class_rate_limiter.html">RateLimiter</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">Solve</a>(double input, double timeStep)</td><td class="entry"><a class="el" href="class_rate_limiter.html">RateLimiter</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(wxPoint2DDouble position)</td><td class="entry"><a class="el" href="class_control_element.html">ControlElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(double value, int minDecimal=1)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a499c3b52be27d2bf436a13b6f5353b9c">UpdateNodes</a>()</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
diff --git a/docs/doxygen/html/class_rate_limiter.html b/docs/doxygen/html/class_rate_limiter.html
index 826d091..d308a81 100644
--- a/docs/doxygen/html/class_rate_limiter.html
+++ b/docs/doxygen/html/class_rate_limiter.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,12 @@ $(document).ready(function(){initNavTree('class_rate_limiter.html','');});
<div class="title">RateLimiter Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Limits the rising and/or falling rate.<br />
+
+ <a href="class_rate_limiter.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for RateLimiter:</div>
<div class="dyncontent">
@@ -93,7 +105,7 @@ Inheritance diagram for RateLimiter:</div>
<img src="class_rate_limiter.png" usemap="#RateLimiter_map" alt=""/>
<map id="RateLimiter_map" name="RateLimiter_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -132,8 +144,9 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>SetUpLimit</b> (doubl
<tr class="memitem:ac9e938191a9cb73f2062424bb7ef3d6a"><td class="memItemLeft" align="right" valign="top"><a id="ac9e938191a9cb73f2062424bb7ef3d6a"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>SetLowLimit</b> (double lowLimit)</td></tr>
<tr class="separator:ac9e938191a9cb73f2062424bb7ef3d6a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a2697e0f56b574739651fa2126b315e29"><td class="memItemLeft" align="right" valign="top"><a id="a2697e0f56b574739651fa2126b315e29"></a>
-virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>Solve</b> (double input, double timeStep)</td></tr>
+<tr class="memitem:a2697e0f56b574739651fa2126b315e29"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">Solve</a> (double input, double timeStep)</td></tr>
+<tr class="memdesc:a2697e0f56b574739651fa2126b315e29"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the rate and limits it if exceeds.<br />
+ <a href="#a2697e0f56b574739651fa2126b315e29">More...</a><br /></td></tr>
<tr class="separator:a2697e0f56b574739651fa2126b315e29"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4f1152238b97fcf76a0bee258e971823"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_element.html">Element</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823">GetCopy</a> ()</td></tr>
<tr class="memdesc:a4f1152238b97fcf76a0bee258e971823"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a the element copy. <a href="#a4f1152238b97fcf76a0bee258e971823">More...</a><br /></td></tr>
@@ -471,8 +484,12 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00008">8</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
+<div class="textblock"><p>Limits the rising and/or falling rate.<br />
+ </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00032">32</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="addf0eef395781b8584063a9061be59dc"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addf0eef395781b8584063a9061be59dc">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -508,7 +525,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00015">15</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00039">39</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
</div>
</div>
@@ -557,7 +574,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00017">17</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00034">34</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
</div>
</div>
@@ -589,7 +606,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00116">116</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00133">133</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
</div>
</div>
@@ -627,7 +644,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00016">16</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8h_source.html#l00040">40</a> of file <a class="el" href="_rate_limiter_8h_source.html">RateLimiter.h</a>.</p>
</div>
</div>
@@ -665,7 +682,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00060">60</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00077">77</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
</div>
</div>
@@ -707,7 +724,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -715,7 +732,63 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00049">49</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00066">66</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
+
+</div>
+</div>
+<a id="a2697e0f56b574739651fa2126b315e29"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a2697e0f56b574739651fa2126b315e29">&#9670;&nbsp;</a></span>Solve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool RateLimiter::Solve </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>input</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>timeStep</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Calculate the rate and limits it if exceeds.<br />
+ </p>
+<p>The rate is calculated by: </p><center> \( rate = \frac{x(i) - y(i-1)}{\Delta t} \)</center><p> Where, \( x(i) \) is the current input and \( y(i-1) \) is the previous output.<br />
+<br />
+ If the \(rate\) is greater than rising rate ( \( R \)), the output will be:<br />
+ </p><center> \( output = \Delta t \cdot R + y(i-1)\)</center><p> If the \(rate\) is lower than falling rate ( \( F \)), the output will be:<br />
+<br />
+ </p><center> \( output = \Delta t \cdot F + y(i-1) \)</center><p> Otherwise: </p><center> \( output = input \)</center><p>. </p><dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">input</td><td>Input value. </td></tr>
+ <tr><td class="paramname">timeStep</td><td>Time step. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>Always true. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="class_control_element.html">ControlElement</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_8cpp_source.html#l00113">113</a> of file <a class="el" href="_rate_limiter_8cpp_source.html">RateLimiter.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_rate_limiter_form-members.html b/docs/doxygen/html/class_rate_limiter_form-members.html
index 0903e20..89c2c8a 100644
--- a/docs/doxygen/html/class_rate_limiter_form-members.html
+++ b/docs/doxygen/html/class_rate_limiter_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_rate_limiter_form.html b/docs/doxygen/html/class_rate_limiter_form.html
index 73419f1..5b04bd3 100644
--- a/docs/doxygen/html/class_rate_limiter_form.html
+++ b/docs/doxygen/html/class_rate_limiter_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_rate_limiter_form.html','');});
<div class="title">RateLimiterForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the rate limit control data.
+ <a href="class_rate_limiter_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_rate_limiter_form_8h_source.html">RateLimiterForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for RateLimiterForm:</div>
<div class="dyncontent">
@@ -178,8 +189,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a55be917c732dec21f8cb29809dff2203 inherit pro_attribs_class_rate_limiter_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_rate_limiter_form_8h_source.html#l00007">7</a> of file <a class="el" href="_rate_limiter_form_8h_source.html">RateLimiterForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the rate limit control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_rate_limiter_form_8h_source.html#l00031">31</a> of file <a class="el" href="_rate_limiter_form_8h_source.html">RateLimiterForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_rate_limiter_form_8h_source.html">RateLimiterForm.h</a></li>
<li>Project/<a class="el" href="_rate_limiter_form_8cpp_source.html">RateLimiterForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_rate_limiter_form_base-members.html b/docs/doxygen/html/class_rate_limiter_form_base-members.html
index c6281fd..d8e0de4 100644
--- a/docs/doxygen/html/class_rate_limiter_form_base-members.html
+++ b/docs/doxygen/html/class_rate_limiter_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_rate_limiter_form_base.html b/docs/doxygen/html/class_rate_limiter_form_base.html
index 334ed81..12511fd 100644
--- a/docs/doxygen/html/class_rate_limiter_form_base.html
+++ b/docs/doxygen/html/class_rate_limiter_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for RateLimiterFormBase:</div>
<div class="center">
<img src="class_rate_limiter_form_base.png" usemap="#RateLimiterFormBase_map" alt=""/>
<map id="RateLimiterFormBase_map" name="RateLimiterFormBase_map">
-<area href="class_rate_limiter_form.html" alt="RateLimiterForm" shape="rect" coords="0,112,131,136"/>
+<area href="class_rate_limiter_form.html" title="Form to edit the rate limit control data. " alt="RateLimiterForm" shape="rect" coords="0,112,131,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_reactive_shunt_element_form-members.html b/docs/doxygen/html/class_reactive_shunt_element_form-members.html
index 2c1089d..2589859 100644
--- a/docs/doxygen/html/class_reactive_shunt_element_form-members.html
+++ b/docs/doxygen/html/class_reactive_shunt_element_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_reactive_shunt_element_form.html b/docs/doxygen/html/class_reactive_shunt_element_form.html
index cf83849..8dbb017 100644
--- a/docs/doxygen/html/class_reactive_shunt_element_form.html
+++ b/docs/doxygen/html/class_reactive_shunt_element_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_reactive_shunt_element_form.html
<div class="title">ReactiveShuntElementForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the reactive shunt element power data.
+ <a href="class_reactive_shunt_element_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_reactive_shunt_element_form_8h_source.html">ReactiveShuntElementForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for ReactiveShuntElementForm:</div>
<div class="dyncontent">
@@ -199,8 +210,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:aee2a26f08d25bb9989a03e8228dd1e69 inherit pro_attribs_class_reactive_shunt_element_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_reactive_shunt_element_form_8h_source.html#l00010">10</a> of file <a class="el" href="_reactive_shunt_element_form_8h_source.html">ReactiveShuntElementForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the reactive shunt element power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_reactive_shunt_element_form_8h_source.html#l00034">34</a> of file <a class="el" href="_reactive_shunt_element_form_8h_source.html">ReactiveShuntElementForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_reactive_shunt_element_form_8h_source.html">ReactiveShuntElementForm.h</a></li>
<li>Project/<a class="el" href="_reactive_shunt_element_form_8cpp_source.html">ReactiveShuntElementForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_reactive_shunt_element_form_base-members.html b/docs/doxygen/html/class_reactive_shunt_element_form_base-members.html
index 9b3a3a1..d9bc768 100644
--- a/docs/doxygen/html/class_reactive_shunt_element_form_base-members.html
+++ b/docs/doxygen/html/class_reactive_shunt_element_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_reactive_shunt_element_form_base.html b/docs/doxygen/html/class_reactive_shunt_element_form_base.html
index 6ccfdde..ae72812 100644
--- a/docs/doxygen/html/class_reactive_shunt_element_form_base.html
+++ b/docs/doxygen/html/class_reactive_shunt_element_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for ReactiveShuntElementFormBase:</div>
<div class="center">
<img src="class_reactive_shunt_element_form_base.png" usemap="#ReactiveShuntElementFormBase_map" alt=""/>
<map id="ReactiveShuntElementFormBase_map" name="ReactiveShuntElementFormBase_map">
-<area href="class_reactive_shunt_element_form.html" alt="ReactiveShuntElementForm" shape="rect" coords="0,112,194,136"/>
+<area href="class_reactive_shunt_element_form.html" title="Form to edit the reactive shunt element power data. " alt="ReactiveShuntElementForm" shape="rect" coords="0,112,194,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_shunt-members.html b/docs/doxygen/html/class_shunt-members.html
index 9da574b..fe99bd8 100644
--- a/docs/doxygen/html/class_shunt-members.html
+++ b/docs/doxygen/html/class_shunt-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_shunt.html b/docs/doxygen/html/class_shunt.html
index ff7db81..2fb1cae 100644
--- a/docs/doxygen/html/class_shunt.html
+++ b/docs/doxygen/html/class_shunt.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,17 +93,22 @@ $(document).ready(function(){initNavTree('class_shunt.html','');});
<div class="title">Shunt Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Abstract class for shunt power elements.
+ <a href="class_shunt.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_shunt_8h_source.html">Shunt.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Shunt:</div>
<div class="dyncontent">
<div class="center">
<img src="class_shunt.png" usemap="#Shunt_map" alt=""/>
<map id="Shunt_map" name="Shunt_map">
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="102,56,194,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="102,0,194,24"/>
-<area href="class_capacitor.html" alt="Capacitor" shape="rect" coords="0,168,92,192"/>
-<area href="class_inductor.html" alt="Inductor" shape="rect" coords="102,168,194,192"/>
-<area href="class_load.html" alt="Load" shape="rect" coords="204,168,296,192"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="102,56,194,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="102,0,194,24"/>
+<area href="class_capacitor.html" title="Shunt capactior power element. " alt="Capacitor" shape="rect" coords="0,168,92,192"/>
+<area href="class_inductor.html" title="Inductor shunt power element. " alt="Inductor" shape="rect" coords="102,168,194,192"/>
+<area href="class_load.html" title="Loas shunt power element. " alt="Load" shape="rect" coords="204,168,296,192"/>
</map>
</div></div>
<table class="memberdecls">
@@ -513,8 +524,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00007">7</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
+<div class="textblock"><p>Abstract class for shunt power elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00031">31</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a449431a2044b838d35cbb991aa1de658"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a449431a2044b838d35cbb991aa1de658">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -552,7 +566,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5">Capacitor</a>, and <a class="el" href="class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60">Inductor</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00013">13</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00037">37</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
</div>
</div>
@@ -592,7 +606,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented in <a class="el" href="class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a">Capacitor</a>, and <a class="el" href="class_inductor.html#a3d331d2a725275a12489401180d4c1d1">Inductor</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00014">14</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8h_source.html#l00038">38</a> of file <a class="el" href="_shunt_8h_source.html">Shunt.h</a>.</p>
</div>
</div>
@@ -630,7 +644,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#abe884d99d12d5252e18956162115b025">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00015">15</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00032">32</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -671,7 +685,7 @@ Additional Inherited Members</h2></td></tr>
<p>Move a node. <a class="el" href="class_shunt.html#a56d6136d647f64cf490dd9d7720f6865" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -679,7 +693,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00028">28</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00045">45</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -718,7 +732,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a95b4f7e9341883ec39d0201148afffb4">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00067">67</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00084">84</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -756,7 +770,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a9504437b60faf2c5a27584de8a24810c">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00057">57</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00074">74</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -797,7 +811,7 @@ Additional Inherited Members</h2></td></tr>
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -805,7 +819,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#af26c67b6dd32eb1b3e417fddf54818c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00124">124</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00141">141</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -836,7 +850,7 @@ Additional Inherited Members</h2></td></tr>
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -844,7 +858,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ac7490a91f3edfff08584567cc84d86b5">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00081">81</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00098">98</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
@@ -882,7 +896,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a846a2a51780a99363b4d4b1812ca16b4">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00050">50</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_shunt_8cpp_source.html#l00067">67</a> of file <a class="el" href="_shunt_8cpp_source.html">Shunt.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_simulations_settings_form-members.html b/docs/doxygen/html/class_simulations_settings_form-members.html
index 3a6528c..3bc9015 100644
--- a/docs/doxygen/html/class_simulations_settings_form-members.html
+++ b/docs/doxygen/html/class_simulations_settings_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_simulations_settings_form.html b/docs/doxygen/html/class_simulations_settings_form.html
index daa2942..d0ffd5f 100644
--- a/docs/doxygen/html/class_simulations_settings_form.html
+++ b/docs/doxygen/html/class_simulations_settings_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_simulations_settings_form.html',
<div class="title">SimulationsSettingsForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the simulation data.
+ <a href="class_simulations_settings_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_simulations_settings_form_8h_source.html">SimulationsSettingsForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SimulationsSettingsForm:</div>
<div class="dyncontent">
@@ -358,8 +369,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:aa21432ddb46b6c57c6e15c3866f6fda3 inherit pro_attribs_class_simulations_settings_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_simulations_settings_form_8h_source.html#l00008">8</a> of file <a class="el" href="_simulations_settings_form_8h_source.html">SimulationsSettingsForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the simulation data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_simulations_settings_form_8h_source.html#l00032">32</a> of file <a class="el" href="_simulations_settings_form_8h_source.html">SimulationsSettingsForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_simulations_settings_form_8h_source.html">SimulationsSettingsForm.h</a></li>
<li>Project/<a class="el" href="_simulations_settings_form_8cpp_source.html">SimulationsSettingsForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_simulations_settings_form_base-members.html b/docs/doxygen/html/class_simulations_settings_form_base-members.html
index 4d9145d..389d830 100644
--- a/docs/doxygen/html/class_simulations_settings_form_base-members.html
+++ b/docs/doxygen/html/class_simulations_settings_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_simulations_settings_form_base.html b/docs/doxygen/html/class_simulations_settings_form_base.html
index 7df6a32..ec3da0c 100644
--- a/docs/doxygen/html/class_simulations_settings_form_base.html
+++ b/docs/doxygen/html/class_simulations_settings_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for SimulationsSettingsFormBase:</div>
<div class="center">
<img src="class_simulations_settings_form_base.png" usemap="#SimulationsSettingsFormBase_map" alt=""/>
<map id="SimulationsSettingsFormBase_map" name="SimulationsSettingsFormBase_map">
-<area href="class_simulations_settings_form.html" alt="SimulationsSettingsForm" shape="rect" coords="0,112,176,136"/>
+<area href="class_simulations_settings_form.html" title="Form to edit the simulation data. " alt="SimulationsSettingsForm" shape="rect" coords="0,112,176,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_sum-members.html b/docs/doxygen/html/class_sum-members.html
index 9c0ef15..539be17 100644
--- a/docs/doxygen/html/class_sum-members.html
+++ b/docs/doxygen/html/class_sum-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sum.html b/docs/doxygen/html/class_sum.html
index c34b36e..ba2fa91 100644
--- a/docs/doxygen/html/class_sum.html
+++ b/docs/doxygen/html/class_sum.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_sum.html','');});
<div class="title">Sum Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_sum.html" title="Sum the all inputs (can choose the input signal). ">Sum</a> the all inputs (can choose the input signal).
+ <a href="class_sum.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_sum_8h_source.html">Sum.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Sum:</div>
<div class="dyncontent">
@@ -94,7 +105,7 @@ Inheritance diagram for Sum:</div>
<img src="class_sum.png" usemap="#Sum_map" alt=""/>
<map id="Sum_map" name="Sum_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,97,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,97,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,97,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -476,8 +487,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00009">9</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_sum.html" title="Sum the all inputs (can choose the input signal). ">Sum</a> the all inputs (can choose the input signal). </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00033">33</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a1d1b52ca1b9a81d53c0a9cf140546987"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a1d1b52ca1b9a81d53c0a9cf140546987">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -513,7 +527,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00017">17</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00041">41</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
</div>
</div>
@@ -562,7 +576,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00026">26</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00043">43</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
</div>
</div>
@@ -594,7 +608,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00221">221</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00238">238</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
</div>
</div>
@@ -632,7 +646,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00018">18</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8h_source.html#l00042">42</a> of file <a class="el" href="_sum_8h_source.html">Sum.h</a>.</p>
</div>
</div>
@@ -670,7 +684,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00166">166</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00183">183</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
</div>
</div>
@@ -712,7 +726,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -720,7 +734,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00095">95</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sum_8cpp_source.html#l00112">112</a> of file <a class="el" href="_sum_8cpp_source.html">Sum.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_sum_form-members.html b/docs/doxygen/html/class_sum_form-members.html
index 755a486..d5ba395 100644
--- a/docs/doxygen/html/class_sum_form-members.html
+++ b/docs/doxygen/html/class_sum_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sum_form.html b/docs/doxygen/html/class_sum_form.html
index 8a07abd..69fac3e 100644
--- a/docs/doxygen/html/class_sum_form.html
+++ b/docs/doxygen/html/class_sum_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_sum_form.html','');});
<div class="title">SumForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the sum control data.
+ <a href="class_sum_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_sum_form_8h_source.html">SumForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SumForm:</div>
<div class="dyncontent">
@@ -166,8 +177,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a76390a7b2ed8f6b48ecacc44e169e3d0 inherit pro_attribs_class_sum_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sum_form_8h_source.html#l00008">8</a> of file <a class="el" href="_sum_form_8h_source.html">SumForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the sum control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_sum_form_8h_source.html#l00032">32</a> of file <a class="el" href="_sum_form_8h_source.html">SumForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_sum_form_8h_source.html">SumForm.h</a></li>
<li>Project/<a class="el" href="_sum_form_8cpp_source.html">SumForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_sum_form_base-members.html b/docs/doxygen/html/class_sum_form_base-members.html
index 1d44fc8..cda5c99 100644
--- a/docs/doxygen/html/class_sum_form_base-members.html
+++ b/docs/doxygen/html/class_sum_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sum_form_base.html b/docs/doxygen/html/class_sum_form_base.html
index f267892..3eccbbb 100644
--- a/docs/doxygen/html/class_sum_form_base.html
+++ b/docs/doxygen/html/class_sum_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for SumFormBase:</div>
<div class="center">
<img src="class_sum_form_base.png" usemap="#SumFormBase_map" alt=""/>
<map id="SumFormBase_map" name="SumFormBase_map">
-<area href="class_sum_form.html" alt="SumForm" shape="rect" coords="0,112,93,136"/>
+<area href="class_sum_form.html" title="Form to edit the sum control data. " alt="SumForm" shape="rect" coords="0,112,93,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_switching_form-members.html b/docs/doxygen/html/class_switching_form-members.html
index b815b4d..c07ef20 100644
--- a/docs/doxygen/html/class_switching_form-members.html
+++ b/docs/doxygen/html/class_switching_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_switching_form.html b/docs/doxygen/html/class_switching_form.html
index 37f2646..1b08f06 100644
--- a/docs/doxygen/html/class_switching_form.html
+++ b/docs/doxygen/html/class_switching_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_switching_form.html','');});
<div class="title">SwitchingForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the switching data of power elements for electromechanical transient studies.
+ <a href="class_switching_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_switching_form_8h_source.html">SwitchingForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SwitchingForm:</div>
<div class="dyncontent">
@@ -211,8 +222,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:ab8d540ac6bae77e44f30b8ffce030e07 inherit pro_attribs_class_switching_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_switching_form_8h_source.html#l00008">8</a> of file <a class="el" href="_switching_form_8h_source.html">SwitchingForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the switching data of power elements for electromechanical transient studies. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_switching_form_8h_source.html#l00032">32</a> of file <a class="el" href="_switching_form_8h_source.html">SwitchingForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_switching_form_8h_source.html">SwitchingForm.h</a></li>
<li>Project/<a class="el" href="_switching_form_8cpp_source.html">SwitchingForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_switching_form_base-members.html b/docs/doxygen/html/class_switching_form_base-members.html
index e904d1f..d96c7f2 100644
--- a/docs/doxygen/html/class_switching_form_base-members.html
+++ b/docs/doxygen/html/class_switching_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_switching_form_base.html b/docs/doxygen/html/class_switching_form_base.html
index d0cd430..0beffb9 100644
--- a/docs/doxygen/html/class_switching_form_base.html
+++ b/docs/doxygen/html/class_switching_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for SwitchingFormBase:</div>
<div class="center">
<img src="class_switching_form_base.png" usemap="#SwitchingFormBase_map" alt=""/>
<map id="SwitchingFormBase_map" name="SwitchingFormBase_map">
-<area href="class_switching_form.html" alt="SwitchingForm" shape="rect" coords="0,112,123,136"/>
+<area href="class_switching_form.html" title="Form to edit the switching data of power elements for electromechanical transient studies..." alt="SwitchingForm" shape="rect" coords="0,112,123,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_sync_generator-members.html b/docs/doxygen/html/class_sync_generator-members.html
index d919f41..06c70dd 100644
--- a/docs/doxygen/html/class_sync_generator-members.html
+++ b/docs/doxygen/html/class_sync_generator-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sync_generator.html b/docs/doxygen/html/class_sync_generator.html
index b177bfd..807669b 100644
--- a/docs/doxygen/html/class_sync_generator.html
+++ b/docs/doxygen/html/class_sync_generator.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_sync_generator.html','');});
<div class="title">SyncGenerator Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Synchronous generator power element.
+ <a href="class_sync_generator.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SyncGenerator:</div>
<div class="dyncontent">
<div class="center">
<img src="class_sync_generator.png" usemap="#SyncGenerator_map" alt=""/>
<map id="SyncGenerator_map" name="SyncGenerator_map">
-<area href="class_machines.html" alt="Machines" shape="rect" coords="0,112,98,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,98,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,98,24"/>
+<area href="class_machines.html" title="Abstract class for rotary machines power elements. " alt="Machines" shape="rect" coords="0,112,98,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,98,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,98,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -542,8 +553,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<tr class="separator:a489713cc909f0d733107dad72160f434 inherit pro_methods_class_machines"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00110">110</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
+<div class="textblock"><p>Synchronous generator power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00140">140</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a24b9894fa42473dfb8bcf82221401a97"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a24b9894fa42473dfb8bcf82221401a97">&#9670;&nbsp;</a></span>GetContextMenu()</h2>
@@ -580,7 +594,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00039">39</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00056">56</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
@@ -612,7 +626,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00139">139</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00156">156</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
@@ -651,7 +665,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_power_element.html#acadf6712b430f9fadfbd7015903eaeaf">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00213">213</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00230">230</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
@@ -683,7 +697,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00167">167</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00184">184</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
@@ -732,7 +746,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00130">130</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00147">147</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
@@ -774,7 +788,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -782,7 +796,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00046">46</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8cpp_source.html#l00063">63</a> of file <a class="el" href="_sync_generator_8cpp_source.html">SyncGenerator.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_sync_machine_form-members.html b/docs/doxygen/html/class_sync_machine_form-members.html
index b7c901c..2e21c61 100644
--- a/docs/doxygen/html/class_sync_machine_form-members.html
+++ b/docs/doxygen/html/class_sync_machine_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sync_machine_form.html b/docs/doxygen/html/class_sync_machine_form.html
index d06b6f8..c28af84 100644
--- a/docs/doxygen/html/class_sync_machine_form.html
+++ b/docs/doxygen/html/class_sync_machine_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_sync_machine_form.html','');});
<div class="title">SyncMachineForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the synchronous machine power data.
+ <a href="class_sync_machine_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_sync_machine_form_8h_source.html">SyncMachineForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SyncMachineForm:</div>
<div class="dyncontent">
@@ -394,8 +405,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:a97509be24b2add48e9d23d5b7020b076 inherit pro_attribs_class_sync_machine_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sync_machine_form_8h_source.html#l00010">10</a> of file <a class="el" href="_sync_machine_form_8h_source.html">SyncMachineForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the synchronous machine power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_sync_machine_form_8h_source.html#l00034">34</a> of file <a class="el" href="_sync_machine_form_8h_source.html">SyncMachineForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_sync_machine_form_8h_source.html">SyncMachineForm.h</a></li>
<li>Project/<a class="el" href="_sync_machine_form_8cpp_source.html">SyncMachineForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_sync_machine_form_base-members.html b/docs/doxygen/html/class_sync_machine_form_base-members.html
index 7edaded..13f837f 100644
--- a/docs/doxygen/html/class_sync_machine_form_base-members.html
+++ b/docs/doxygen/html/class_sync_machine_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sync_machine_form_base.html b/docs/doxygen/html/class_sync_machine_form_base.html
index 68797e8..9e4d640 100644
--- a/docs/doxygen/html/class_sync_machine_form_base.html
+++ b/docs/doxygen/html/class_sync_machine_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for SyncMachineFormBase:</div>
<div class="center">
<img src="class_sync_machine_form_base.png" usemap="#SyncMachineFormBase_map" alt=""/>
<map id="SyncMachineFormBase_map" name="SyncMachineFormBase_map">
-<area href="class_sync_machine_form.html" alt="SyncMachineForm" shape="rect" coords="0,112,147,136"/>
+<area href="class_sync_machine_form.html" title="Form to edit the synchronous machine power data. " alt="SyncMachineForm" shape="rect" coords="0,112,147,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_sync_motor-members.html b/docs/doxygen/html/class_sync_motor-members.html
index 7c3220f..b3bab3a 100644
--- a/docs/doxygen/html/class_sync_motor-members.html
+++ b/docs/doxygen/html/class_sync_motor-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_sync_motor.html b/docs/doxygen/html/class_sync_motor.html
index 04cf51c..6f6d5c4 100644
--- a/docs/doxygen/html/class_sync_motor.html
+++ b/docs/doxygen/html/class_sync_motor.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,15 +92,20 @@ $(document).ready(function(){initNavTree('class_sync_motor.html','');});
<div class="title">SyncMotor Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Synchronous motor (synchronous compensator) power element.
+ <a href="class_sync_motor.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for SyncMotor:</div>
<div class="dyncontent">
<div class="center">
<img src="class_sync_motor.png" usemap="#SyncMotor_map" alt=""/>
<map id="SyncMotor_map" name="SyncMotor_map">
-<area href="class_machines.html" alt="Machines" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_machines.html" title="Abstract class for rotary machines power elements. " alt="Machines" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -536,8 +547,11 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<tr class="separator:a489713cc909f0d733107dad72160f434 inherit pro_methods_class_machines"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00110">110</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
+<div class="textblock"><p>Synchronous motor (synchronous compensator) power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00134">134</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a7b3102220ea5f7e19690af045a6c8278"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7b3102220ea5f7e19690af045a6c8278">&#9670;&nbsp;</a></span>GetContextMenu()</h2>
@@ -574,7 +588,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#a2a436b0497017a1c3d03dba5e59f037e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00008">8</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00025">25</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
</div>
</div>
@@ -606,7 +620,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00108">108</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00125">125</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
</div>
</div>
@@ -638,7 +652,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00115">115</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00132">132</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
</div>
</div>
@@ -687,7 +701,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00100">100</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00117">117</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
</div>
</div>
@@ -729,7 +743,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -737,7 +751,7 @@ void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdatePowerFlowArrows
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00016">16</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8cpp_source.html#l00033">33</a> of file <a class="el" href="_sync_motor_8cpp_source.html">SyncMotor.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_text-members.html b/docs/doxygen/html/class_text-members.html
index ad59b62..8fd37cd 100644
--- a/docs/doxygen/html/class_text-members.html
+++ b/docs/doxygen/html/class_text-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text.html b/docs/doxygen/html/class_text.html
index 0489e35..b2ad59b 100644
--- a/docs/doxygen/html/class_text.html
+++ b/docs/doxygen/html/class_text.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,14 +92,19 @@ $(document).ready(function(){initNavTree('class_text.html','');});
<div class="title">Text Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that shows power element informations in workspace.
+ <a href="class_text.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_text_8h_source.html">Text.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Text:</div>
<div class="dyncontent">
<div class="center">
<img src="class_text.png" usemap="#Text_map" alt=""/>
<map id="Text_map" name="Text_map">
-<area href="class_graphical_element.html" alt="GraphicalElement" shape="rect" coords="0,56,111,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,111,24"/>
+<area href="class_graphical_element.html" title="Abstract class for graphical elements shown with power elements in workspace. " alt="GraphicalElement" shape="rect" coords="0,56,111,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,111,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -508,8 +519,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_text_8h_source.html#l00048">48</a> of file <a class="el" href="_text_8h_source.html">Text.h</a>.</p>
+<div class="textblock"><p><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that shows power element informations in workspace. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_text_8h_source.html#l00072">72</a> of file <a class="el" href="_text_8h_source.html">Text.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="a4f273ea7008c72533327c25caff2e917"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a4f273ea7008c72533327c25caff2e917">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -548,15 +562,15 @@ Additional Inherited Members</h2></td></tr>
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_text_8h_source.html#l00056">56</a> of file <a class="el" href="_text_8h_source.html">Text.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_text_8h_source.html#l00080">80</a> of file <a class="el" href="_text_8h_source.html">Text.h</a>.</p>
</div>
</div>
@@ -594,7 +608,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00030">30</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00047">47</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
</div>
</div>
@@ -626,7 +640,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00950">950</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00967">967</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
</div>
</div>
@@ -664,7 +678,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00075">75</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00092">92</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
</div>
</div>
@@ -702,7 +716,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00145">145</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_text_8cpp_source.html#l00162">162</a> of file <a class="el" href="_text_8cpp_source.html">Text.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_text_form-members.html b/docs/doxygen/html/class_text_form-members.html
index ad47a5d..aac7f47 100644
--- a/docs/doxygen/html/class_text_form-members.html
+++ b/docs/doxygen/html/class_text_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text_form.html b/docs/doxygen/html/class_text_form.html
index 5db0495..9a8c3ea 100644
--- a/docs/doxygen/html/class_text_form.html
+++ b/docs/doxygen/html/class_text_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_text_form.html','');});
<div class="title">TextForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the text graphical data.
+ <a href="class_text_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_text_form_8h_source.html">TextForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TextForm:</div>
<div class="dyncontent">
@@ -298,8 +309,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:ab4220dcb19935bebb8aefb2c486378ef inherit pro_attribs_class_text_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_text_form_8h_source.html#l00008">8</a> of file <a class="el" href="_text_form_8h_source.html">TextForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the text graphical data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_text_form_8h_source.html#l00032">32</a> of file <a class="el" href="_text_form_8h_source.html">TextForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_text_form_8h_source.html">TextForm.h</a></li>
<li>Project/<a class="el" href="_text_form_8cpp_source.html">TextForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_text_form_base-members.html b/docs/doxygen/html/class_text_form_base-members.html
index dce7917..4187755 100644
--- a/docs/doxygen/html/class_text_form_base-members.html
+++ b/docs/doxygen/html/class_text_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text_form_base.html b/docs/doxygen/html/class_text_form_base.html
index 251d438..9a7a2e2 100644
--- a/docs/doxygen/html/class_text_form_base.html
+++ b/docs/doxygen/html/class_text_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for TextFormBase:</div>
<div class="center">
<img src="class_text_form_base.png" usemap="#TextFormBase_map" alt=""/>
<map id="TextFormBase_map" name="TextFormBase_map">
-<area href="class_text_form.html" alt="TextForm" shape="rect" coords="0,112,92,136"/>
+<area href="class_text_form.html" title="Form to edit the text graphical data. " alt="TextForm" shape="rect" coords="0,112,92,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_text_g_l_drawable-members.html b/docs/doxygen/html/class_text_g_l_drawable-members.html
index 159733e..028c01c 100644
--- a/docs/doxygen/html/class_text_g_l_drawable-members.html
+++ b/docs/doxygen/html/class_text_g_l_drawable-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text_g_l_drawable.html b/docs/doxygen/html/class_text_g_l_drawable.html
index 3a0d3da..6874f12 100644
--- a/docs/doxygen/html/class_text_g_l_drawable.html
+++ b/docs/doxygen/html/class_text_g_l_drawable.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text_texture-members.html b/docs/doxygen/html/class_text_texture-members.html
index 5e1a556..57c6314 100644
--- a/docs/doxygen/html/class_text_texture-members.html
+++ b/docs/doxygen/html/class_text_texture-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_text_texture.html b/docs/doxygen/html/class_text_texture.html
index 6ce4a53..f7458eb 100644
--- a/docs/doxygen/html/class_text_texture.html
+++ b/docs/doxygen/html/class_text_texture.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transfer_function-members.html b/docs/doxygen/html/class_transfer_function-members.html
index 0bb91a6..6ae4bfd 100644
--- a/docs/doxygen/html/class_transfer_function-members.html
+++ b/docs/doxygen/html/class_transfer_function-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -90,7 +96,7 @@ $(document).ready(function(){initNavTree('class_transfer_function.html','');});
<tr class="even"><td class="entry"><a class="el" href="class_element.html#ad1f153a87797633ab310d07e1d06eba9">AddParent</a>(Element *parent)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_element.html#aa40c60c03d6a76639d8c6f6bab86720e">AddPoint</a>(wxPoint2DDouble point)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#a57f5771fd003020fef3866a1d1dc7487">CalculateBoundaries</a>(wxPoint2DDouble &amp;leftUp, wxPoint2DDouble &amp;rightBottom) const</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>CalculateSpaceState</b>(int maxIteration=100, double error=1e-3) (defined in <a class="el" href="class_transfer_function.html">TransferFunction</a>)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr><td class="entry"><a class="el" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">CalculateSpaceState</a>(int maxIteration=100, double error=1e-3)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187">Contains</a>(wxPoint2DDouble position) const</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">inline</span><span class="mlabel">virtual</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>ControlElement</b>(int id) (defined in <a class="el" href="class_control_element.html">ControlElement</a>)</td><td class="entry"><a class="el" href="class_control_element.html">ControlElement</a></td><td class="entry"></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a">DoubleFromString</a>(wxWindow *parent, wxString strValue, double &amp;value, wxString errorMsg)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
@@ -207,7 +213,7 @@ $(document).ready(function(){initNavTree('class_transfer_function.html','');});
<tr><td class="entry"><a class="el" href="class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b">SetWidth</a>(double width)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_transfer_function.html#afe15de93ab4f93032560a6139091ef10">ShowForm</a>(wxWindow *parent, Element *element)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">ShowPickbox</a>(bool showPickbox=true)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">inline</span></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>Solve</b>(double input, double timeStep) (defined in <a class="el" href="class_transfer_function.html">TransferFunction</a>)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">Solve</a>(double input, double timeStep)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr><td class="entry"><a class="el" href="class_control_element.html#a61440a392d438de163bfe9ffb8e9efec">StartMove</a>(wxPoint2DDouble position)</td><td class="entry"><a class="el" href="class_control_element.html">ControlElement</a></td><td class="entry"><span class="mlabel">virtual</span></td></tr>
<tr class="even"><td class="entry"><a class="el" href="class_element.html#abb2e253ec1e86353cd7160209c96553c">StringFromDouble</a>(double value, int minDecimal=1)</td><td class="entry"><a class="el" href="class_element.html">Element</a></td><td class="entry"><span class="mlabel">static</span></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>TransferFunction</b>(int id) (defined in <a class="el" href="class_transfer_function.html">TransferFunction</a>)</td><td class="entry"><a class="el" href="class_transfer_function.html">TransferFunction</a></td><td class="entry"></td></tr>
diff --git a/docs/doxygen/html/class_transfer_function.html b/docs/doxygen/html/class_transfer_function.html
index 724432e..6161ba0 100644
--- a/docs/doxygen/html/class_transfer_function.html
+++ b/docs/doxygen/html/class_transfer_function.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,6 +94,11 @@ $(document).ready(function(){initNavTree('class_transfer_function.html','');});
<div class="title">TransferFunction Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Calculates the time response by a frequency domain transfer function.
+ <a href="class_transfer_function.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TransferFunction:</div>
<div class="dyncontent">
@@ -95,7 +106,7 @@ Inheritance diagram for TransferFunction:</div>
<img src="class_transfer_function.png" usemap="#TransferFunction_map" alt=""/>
<map id="TransferFunction_map" name="TransferFunction_map">
<area href="class_control_element.html" alt="ControlElement" shape="rect" coords="0,56,109,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,109,24"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,109,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -145,11 +156,11 @@ virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>UpdateText</b
<tr class="memitem:aee6c1440c4f527b7a839e07474a381f0"><td class="memItemLeft" align="right" valign="top"><a id="aee6c1440c4f527b7a839e07474a381f0"></a>
virtual <a class="el" href="struct_transfer_function_1_1_space_state.html">SpaceState</a>&#160;</td><td class="memItemRight" valign="bottom"><b>GetSpaceState</b> ()</td></tr>
<tr class="separator:aee6c1440c4f527b7a839e07474a381f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:a5f09dd8e5c016a90c69a8e38ef302c8a"><td class="memItemLeft" align="right" valign="top"><a id="a5f09dd8e5c016a90c69a8e38ef302c8a"></a>
-virtual void&#160;</td><td class="memItemRight" valign="bottom"><b>CalculateSpaceState</b> (int maxIteration=100, double error=1e-3)</td></tr>
+<tr class="memitem:a5f09dd8e5c016a90c69a8e38ef302c8a"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">CalculateSpaceState</a> (int maxIteration=100, double error=1e-3)</td></tr>
+<tr class="memdesc:a5f09dd8e5c016a90c69a8e38ef302c8a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Convert the transfer function to space state on controllable canonical form (CCF). <a href="#a5f09dd8e5c016a90c69a8e38ef302c8a">More...</a><br /></td></tr>
<tr class="separator:a5f09dd8e5c016a90c69a8e38ef302c8a"><td class="memSeparator" colspan="2">&#160;</td></tr>
-<tr class="memitem:ab23ed101f7d4e953e4df0d4d480d9798"><td class="memItemLeft" align="right" valign="top"><a id="ab23ed101f7d4e953e4df0d4d480d9798"></a>
-virtual bool&#160;</td><td class="memItemRight" valign="bottom"><b>Solve</b> (double input, double timeStep)</td></tr>
+<tr class="memitem:ab23ed101f7d4e953e4df0d4d480d9798"><td class="memItemLeft" align="right" valign="top">virtual bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">Solve</a> (double input, double timeStep)</td></tr>
+<tr class="memdesc:ab23ed101f7d4e953e4df0d4d480d9798"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculates the time response by the space state form of transfer function. <a href="#ab23ed101f7d4e953e4df0d4d480d9798">More...</a><br /></td></tr>
<tr class="separator:ab23ed101f7d4e953e4df0d4d480d9798"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3312f7e9499aa99742093d3b60547862"><td class="memItemLeft" align="right" valign="top">virtual <a class="el" href="class_element.html">Element</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="class_transfer_function.html#a3312f7e9499aa99742093d3b60547862">GetCopy</a> ()</td></tr>
<tr class="memdesc:a3312f7e9499aa99742093d3b60547862"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a the element copy. <a href="#a3312f7e9499aa99742093d3b60547862">More...</a><br /></td></tr>
@@ -523,9 +534,59 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00011">11</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
+<div class="textblock"><p>Calculates the time response by a frequency domain transfer function. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00035">35</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
+<a id="a5f09dd8e5c016a90c69a8e38ef302c8a"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a5f09dd8e5c016a90c69a8e38ef302c8a">&#9670;&nbsp;</a></span>CalculateSpaceState()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">void TransferFunction::CalculateSpaceState </td>
+ <td>(</td>
+ <td class="paramtype">int&#160;</td>
+ <td class="paramname"><em>maxIteration</em> = <code>100</code>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>error</em> = <code>1e-3</code>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Convert the transfer function to space state on controllable canonical form (CCF). </p>
+<dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">maxIteration</td><td>Max number of solution iteration. </td></tr>
+ <tr><td class="paramname">error</td><td>Tolerance for calculation. </td></tr>
+ </table>
+ </dd>
+</dl>
+
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00268">268</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+
+</div>
+</div>
<a id="a6a4415d2cf0af290494ea30d586cc187"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6a4415d2cf0af290494ea30d586cc187">&#9670;&nbsp;</a></span>Contains()</h2>
@@ -560,7 +621,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#abf6c4949733debca55b2f56d8e9b7372">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00025">25</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00049">49</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
</div>
</div>
@@ -609,7 +670,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#a551ed1eeab446b5366d56c2ee9dec187">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00035">35</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00052">52</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
</div>
</div>
@@ -641,7 +702,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00359">359</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00377">377</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
</div>
</div>
@@ -679,7 +740,7 @@ Additional Inherited Members</h2></td></tr>
<p>Implements <a class="el" href="class_element.html#a038dfd8452fe48ab04bc4e47820c148e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00026">26</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00050">50</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
</div>
</div>
@@ -717,7 +778,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00220">220</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00237">237</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
</div>
</div>
@@ -759,7 +820,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -767,7 +828,57 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00209">209</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00226">226</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
+
+</div>
+</div>
+<a id="ab23ed101f7d4e953e4df0d4d480d9798"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ab23ed101f7d4e953e4df0d4d480d9798">&#9670;&nbsp;</a></span>Solve()</h2>
+
+<div class="memitem">
+<div class="memproto">
+<table class="mlabels">
+ <tr>
+ <td class="mlabels-left">
+ <table class="memname">
+ <tr>
+ <td class="memname">bool TransferFunction::Solve </td>
+ <td>(</td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>input</em>, </td>
+ </tr>
+ <tr>
+ <td class="paramkey"></td>
+ <td></td>
+ <td class="paramtype">double&#160;</td>
+ <td class="paramname"><em>timeStep</em>&#160;</td>
+ </tr>
+ <tr>
+ <td></td>
+ <td>)</td>
+ <td></td><td></td>
+ </tr>
+ </table>
+ </td>
+ <td class="mlabels-right">
+<span class="mlabels"><span class="mlabel">virtual</span></span> </td>
+ </tr>
+</table>
+</div><div class="memdoc">
+
+<p>Calculates the time response by the space state form of transfer function. </p>
+<p>Uses the implicit trapezoidal rule to solve: </p><center> \( y_{n+1}=y_n+\frac{1}{2}h(y&#39;_n+y&#39;_{n+1}) \)</center> <dl class="params"><dt>Parameters</dt><dd>
+ <table class="params">
+ <tr><td class="paramname">input</td><td>Input value. </td></tr>
+ <tr><td class="paramname">timeStep</td><td>Time step. </td></tr>
+ </table>
+ </dd>
+</dl>
+<dl class="section return"><dt>Returns</dt><dd>true if the calculation converges, false otherwise. </dd></dl>
+
+<p>Reimplemented from <a class="el" href="class_control_element.html">ControlElement</a>.</p>
+
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8cpp_source.html#l00320">320</a> of file <a class="el" href="_transfer_function_8cpp_source.html">TransferFunction.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_transfer_function_form-members.html b/docs/doxygen/html/class_transfer_function_form-members.html
index 7d6d0f0..8523d5d 100644
--- a/docs/doxygen/html/class_transfer_function_form-members.html
+++ b/docs/doxygen/html/class_transfer_function_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transfer_function_form.html b/docs/doxygen/html/class_transfer_function_form.html
index c7ab425..c0aa57c 100644
--- a/docs/doxygen/html/class_transfer_function_form.html
+++ b/docs/doxygen/html/class_transfer_function_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_transfer_function_form.html','')
<div class="title">TransferFunctionForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the transfer function control data.
+ <a href="class_transfer_function_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_transfer_function_form_8h_source.html">TransferFunctionForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TransferFunctionForm:</div>
<div class="dyncontent">
@@ -181,8 +192,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_ButtonCancel<
<tr class="separator:ae1a557b170a2966b73a87d6ffd6eaf0e inherit pro_attribs_class_transfer_function_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transfer_function_form_8h_source.html#l00008">8</a> of file <a class="el" href="_transfer_function_form_8h_source.html">TransferFunctionForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the transfer function control data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_transfer_function_form_8h_source.html#l00032">32</a> of file <a class="el" href="_transfer_function_form_8h_source.html">TransferFunctionForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_transfer_function_form_8h_source.html">TransferFunctionForm.h</a></li>
<li>Project/<a class="el" href="_transfer_function_form_8cpp_source.html">TransferFunctionForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_transfer_function_form_base-members.html b/docs/doxygen/html/class_transfer_function_form_base-members.html
index bf724ff..dba1754 100644
--- a/docs/doxygen/html/class_transfer_function_form_base-members.html
+++ b/docs/doxygen/html/class_transfer_function_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transfer_function_form_base.html b/docs/doxygen/html/class_transfer_function_form_base.html
index 508ebcf..6b87cb7 100644
--- a/docs/doxygen/html/class_transfer_function_form_base.html
+++ b/docs/doxygen/html/class_transfer_function_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for TransferFunctionFormBase:</div>
<div class="center">
<img src="class_transfer_function_form_base.png" usemap="#TransferFunctionFormBase_map" alt=""/>
<map id="TransferFunctionFormBase_map" name="TransferFunctionFormBase_map">
-<area href="class_transfer_function_form.html" alt="TransferFunctionForm" shape="rect" coords="0,112,166,136"/>
+<area href="class_transfer_function_form.html" title="Form to edit the transfer function control data. " alt="TransferFunctionForm" shape="rect" coords="0,112,166,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_transformer-members.html b/docs/doxygen/html/class_transformer-members.html
index 7f9e223..13b5787 100644
--- a/docs/doxygen/html/class_transformer-members.html
+++ b/docs/doxygen/html/class_transformer-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transformer.html b/docs/doxygen/html/class_transformer.html
index 3ebe873..87e4dc8 100644
--- a/docs/doxygen/html/class_transformer.html
+++ b/docs/doxygen/html/class_transformer.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,15 +93,20 @@ $(document).ready(function(){initNavTree('class_transformer.html','');});
<div class="title">Transformer Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Two-winding transformer power element.
+ <a href="class_transformer.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_transformer_8h_source.html">Transformer.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Transformer:</div>
<div class="dyncontent">
<div class="center">
<img src="class_transformer.png" usemap="#Transformer_map" alt=""/>
<map id="Transformer_map" name="Transformer_map">
-<area href="class_branch.html" alt="Branch" shape="rect" coords="0,112,92,136"/>
-<area href="class_power_element.html" alt="PowerElement" shape="rect" coords="0,56,92,80"/>
-<area href="class_element.html" alt="Element" shape="rect" coords="0,0,92,24"/>
+<area href="class_branch.html" title="Abstract class for branch power elements. " alt="Branch" shape="rect" coords="0,112,92,136"/>
+<area href="class_power_element.html" title="Abstract class of power elements. " alt="PowerElement" shape="rect" coords="0,56,92,80"/>
+<area href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat..." alt="Element" shape="rect" coords="0,0,92,24"/>
</map>
</div></div>
<table class="memberdecls">
@@ -525,8 +536,11 @@ Additional Inherited Members</h2></td></tr>
<tr class="separator:abb2e253ec1e86353cd7160209c96553c inherit pub_static_methods_class_element"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transformer_8h_source.html#l00054">54</a> of file <a class="el" href="_transformer_8h_source.html">Transformer.h</a>.</p>
+<div class="textblock"><p>Two-winding transformer power element. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>06/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_transformer_8h_source.html#l00078">78</a> of file <a class="el" href="_transformer_8h_source.html">Transformer.h</a>.</p>
</div><h2 class="groupheader">Member Function Documentation</h2>
<a id="aea52a4562ec5b4a79bf82b8ede32ecc6"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aea52a4562ec5b4a79bf82b8ede32ecc6">&#9670;&nbsp;</a></span>AddParent()</h2>
@@ -565,15 +579,15 @@ Additional Inherited Members</h2></td></tr>
<p>Add a parent to the element. This method must be used on power elements that connect to a bus, so the parent must be a bus. The element basic points are calculated in this method, so apply this when the element is being inserted. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html">Element</a> parent. </td></tr>
- <tr><td class="paramname">position</td><td><a class="el" href="class_node.html">Node</a> position in the parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> parent. </td></tr>
+ <tr><td class="paramname">position</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> position in the parent. </td></tr>
</table>
</dd>
</dl>
<p>Reimplemented from <a class="el" href="class_element.html#a569178e9138490a981511a644536c0f9">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00022">22</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00039">39</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -611,7 +625,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a691f94c3cd2abe1274e870d2882634d8">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00088">88</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00105">105</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -660,7 +674,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a7037f496f9b9c9e64c74eb638debe278">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00094">94</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00111">111</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -699,7 +713,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a6ddd901403c46f5d9aa179644467b088">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00256">256</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00273">273</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -731,7 +745,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aeabe64a5907e917c8b61afd605ea52c3">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00394">394</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00411">411</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -763,7 +777,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#aa79db7f54ba9754e953b5059a1d79486">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00401">401</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00418">418</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -801,7 +815,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aa23b1014c947e46996f1c0c4caa187e1">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00173">173</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00190">190</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -839,7 +853,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00195">195</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00212">212</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -880,7 +894,7 @@ Additional Inherited Members</h2></td></tr>
<p>Move a node. <a class="el" href="class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5" title="Update the element attributes related to the movement. ">StartMove(wxPoint2DDouble position)</a> before start moving. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">position</td><td>New node position. </td></tr>
</table>
</dd>
@@ -888,7 +902,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00215">215</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00232">232</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -926,7 +940,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#afab568cea0a7074bb9984e94bd2ba52e">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00179">179</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00196">196</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -967,7 +981,7 @@ Additional Inherited Members</h2></td></tr>
<p>Rotate a node. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a>'s parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a>'s parent. </td></tr>
<tr><td class="paramname">clockwise</td><td>True to rotate clockwise, false to rotate counter-clockwise. </td></tr>
</table>
</dd>
@@ -975,7 +989,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a190d3da81276751c5b9ab23c5d3f37df">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00310">310</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00327">327</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -1006,7 +1020,7 @@ Additional Inherited Members</h2></td></tr>
<p>Set a perent to the node. If all conditions are met, a new parent are added to the element and the points related to the nodes will be calculated. </p>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
- <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html">Node</a> parent. </td></tr>
+ <tr><td class="paramname">parent</td><td><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> parent. </td></tr>
</table>
</dd>
</dl>
@@ -1014,7 +1028,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#aaf64ea58631438e3a16b1b2ede793875">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00324">324</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00341">341</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -1063,7 +1077,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#a0730506d0417089d69f7ce64b05daed4">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00274">274</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00291">291</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -1101,7 +1115,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_power_element.html#a2ee71f9eb90beadf5439ce9f70469b49">PowerElement</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00388">388</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00405">405</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -1143,7 +1157,7 @@ Additional Inherited Members</h2></td></tr>
<dl class="params"><dt>Parameters</dt><dd>
<table class="params">
<tr><td class="paramname">parent</td><td>Form parent </td></tr>
- <tr><td class="paramname">element</td><td><a class="el" href="class_element.html">Element</a> that will be edited. </td></tr>
+ <tr><td class="paramname">element</td><td><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that will be edited. </td></tr>
</table>
</dd>
</dl>
@@ -1151,7 +1165,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_element.html#ae1652eded3ccbd241a783691117418b2">Element</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00263">263</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00280">280</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
@@ -1189,7 +1203,7 @@ Additional Inherited Members</h2></td></tr>
<p>Reimplemented from <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch</a>.</p>
-<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00249">249</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8cpp_source.html#l00266">266</a> of file <a class="el" href="_transformer_8cpp_source.html">Transformer.cpp</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/class_transformer_form-members.html b/docs/doxygen/html/class_transformer_form-members.html
index e9d669e..a0d1a0a 100644
--- a/docs/doxygen/html/class_transformer_form-members.html
+++ b/docs/doxygen/html/class_transformer_form-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transformer_form.html b/docs/doxygen/html/class_transformer_form.html
index a72534e..5520bad 100644
--- a/docs/doxygen/html/class_transformer_form.html
+++ b/docs/doxygen/html/class_transformer_form.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -87,6 +93,11 @@ $(document).ready(function(){initNavTree('class_transformer_form.html','');});
<div class="title">TransformerForm Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>Form to edit the transformer power data.
+ <a href="class_transformer_form.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_transformer_form_8h_source.html">TransformerForm.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for TransformerForm:</div>
<div class="dyncontent">
@@ -385,8 +396,11 @@ wxButton *&#160;</td><td class="memItemRight" valign="bottom"><b>m_buttonCancel<
<tr class="separator:af65e4801b524b44b075a6218777777f0 inherit pro_attribs_class_transformer_form_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transformer_form_8h_source.html#l00009">9</a> of file <a class="el" href="_transformer_form_8h_source.html">TransformerForm.h</a>.</p>
+<div class="textblock"><p>Form to edit the transformer power data. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>05/10/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_transformer_form_8h_source.html#l00033">33</a> of file <a class="el" href="_transformer_form_8h_source.html">TransformerForm.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_transformer_form_8h_source.html">TransformerForm.h</a></li>
<li>Project/<a class="el" href="_transformer_form_8cpp_source.html">TransformerForm.cpp</a></li>
diff --git a/docs/doxygen/html/class_transformer_form_base-members.html b/docs/doxygen/html/class_transformer_form_base-members.html
index d24d8ea..a7adb41 100644
--- a/docs/doxygen/html/class_transformer_form_base-members.html
+++ b/docs/doxygen/html/class_transformer_form_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_transformer_form_base.html b/docs/doxygen/html/class_transformer_form_base.html
index 9c3ff46..e0799a3 100644
--- a/docs/doxygen/html/class_transformer_form_base.html
+++ b/docs/doxygen/html/class_transformer_form_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for TransformerFormBase:</div>
<div class="center">
<img src="class_transformer_form_base.png" usemap="#TransformerFormBase_map" alt=""/>
<map id="TransformerFormBase_map" name="TransformerFormBase_map">
-<area href="class_transformer_form.html" alt="TransformerForm" shape="rect" coords="0,112,138,136"/>
+<area href="class_transformer_form.html" title="Form to edit the transformer power data. " alt="TransformerForm" shape="rect" coords="0,112,138,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/class_workspace-members.html b/docs/doxygen/html/class_workspace-members.html
index e133fec..59efc3c 100644
--- a/docs/doxygen/html/class_workspace-members.html
+++ b/docs/doxygen/html/class_workspace-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_workspace.html b/docs/doxygen/html/class_workspace.html
index 0e6eea2..cd9d6e0 100644
--- a/docs/doxygen/html/class_workspace.html
+++ b/docs/doxygen/html/class_workspace.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,6 +94,11 @@ $(document).ready(function(){initNavTree('class_workspace.html','');});
<div class="title">Workspace Class Reference</div> </div>
</div><!--header-->
<div class="contents">
+
+<p>This class manages the graphical and power elements. It is responsible for handling the user's interaction with the elements.
+ <a href="class_workspace.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_workspace_8h_source.html">Workspace.h</a>&gt;</code></p>
<div class="dynheader">
Inheritance diagram for Workspace:</div>
<div class="dyncontent">
@@ -359,8 +370,11 @@ wxTimer *&#160;</td><td class="memItemRight" valign="bottom"><b>m_timer</b></td>
<tr class="separator:a70d926c1f83f7510f487f9f1f474083f inherit pro_attribs_class_workspace_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_workspace_8h_source.html#l00056">56</a> of file <a class="el" href="_workspace_8h_source.html">Workspace.h</a>.</p>
+<div class="textblock"><p>This class manages the graphical and power elements. It is responsible for handling the user's interaction with the elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a> </dd></dl>
+<dl class="section date"><dt>Date</dt><dd>19/09/2017 </dd></dl>
+
+<p class="definition">Definition at line <a class="el" href="_workspace_8h_source.html#l00081">81</a> of file <a class="el" href="_workspace_8h_source.html">Workspace.h</a>.</p>
</div><hr/>The documentation for this class was generated from the following files:<ul>
<li>Project/<a class="el" href="_workspace_8h_source.html">Workspace.h</a></li>
<li>Project/<a class="el" href="_workspace_8cpp_source.html">Workspace.cpp</a></li>
diff --git a/docs/doxygen/html/class_workspace_base-members.html b/docs/doxygen/html/class_workspace_base-members.html
index 0ec8e27..7dfb42f 100644
--- a/docs/doxygen/html/class_workspace_base-members.html
+++ b/docs/doxygen/html/class_workspace_base-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/class_workspace_base.html b/docs/doxygen/html/class_workspace_base.html
index d6c6ae4..4a309f6 100644
--- a/docs/doxygen/html/class_workspace_base.html
+++ b/docs/doxygen/html/class_workspace_base.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -93,7 +99,7 @@ Inheritance diagram for WorkspaceBase:</div>
<div class="center">
<img src="class_workspace_base.png" usemap="#WorkspaceBase_map" alt=""/>
<map id="WorkspaceBase_map" name="WorkspaceBase_map">
-<area href="class_workspace.html" alt="Workspace" shape="rect" coords="0,112,103,136"/>
+<area href="class_workspace.html" title="This class manages the graphical and power elements. It is responsible for handling the user&#39;s intera..." alt="Workspace" shape="rect" coords="0,112,103,136"/>
</map>
</div></div>
<table class="memberdecls">
diff --git a/docs/doxygen/html/classes.html b/docs/doxygen/html/classes.html
index 6abb09f..918de89 100644
--- a/docs/doxygen/html/classes.html
+++ b/docs/doxygen/html/classes.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -91,42 +97,42 @@ $(document).ready(function(){initNavTree('classes.html','');});
</td><td valign="top"><a class="el" href="class_ind_motor_form_base.html">IndMotorFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sync_machine_form.html">SyncMachineForm</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_about_form.html">AboutForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_inductor.html">Inductor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_open_g_l_colour.html">OpenGLColour</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sync_machine_form_base.html">SyncMachineFormBase</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_about_form_base.html">AboutFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_electric_calculation.html">ElectricCalculation</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_inductor_electrical_data.html">InductorElectricalData</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_p"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;p&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_sync_motor.html">SyncMotor</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_b"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;b&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_electromechanical.html">Electromechanical</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_integration_constant.html">IntegrationConstant</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_element.html">Element</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control.html">IOControl</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_plot_data.html">PlotData</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="class_electromechanical.html">Electromechanical</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_integration_constant.html">IntegrationConstant</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sync_motor.html">SyncMotor</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_element.html">Element</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control.html">IOControl</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_plot_data.html">PlotData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_sync_motor_electrical_data.html">SyncMotorElectricalData</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_branch.html">Branch</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_element_data_object.html">ElementDataObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control_form.html">IOControlForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_power_element.html">PowerElement</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_t"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;t&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_branch.html">Branch</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_element_data_object.html">ElementDataObject</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control_form.html">IOControlForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_power_element.html">PowerElement</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_bus.html">Bus</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_element_plot_data.html">ElementPlotData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control_form_base.html">IOControlFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_power_flow.html">PowerFlow</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text.html">Text</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_bus.html">Bus</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_element_plot_data.html">ElementPlotData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_i_o_control_form_base.html">IOControlFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_power_flow.html">PowerFlow</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="struct_bus_electrical_data.html">BusElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_elements_lists.html">ElementsLists</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_l"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;l&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_properties_data.html">PropertiesData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_form.html">TextForm</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_properties_data.html">PropertiesData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text.html">Text</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_bus_form.html">BusForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_exponential.html">Exponential</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_r"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;r&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_text_form_base.html">TextFormBase</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_bus_form_base.html">BusFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_exponential_form.html">ExponentialForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_limiter.html">Limiter</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_g_l_drawable.html">TextGLDrawable</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_text_form.html">TextForm</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_bus_form_base.html">BusFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_exponential_form.html">ExponentialForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_limiter.html">Limiter</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_form_base.html">TextFormBase</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_c"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;c&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_exponential_form_base.html">ExponentialFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_limiter_form.html">LimiterForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter.html">RateLimiter</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_texture.html">TextTexture</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_exponential_form_base.html">ExponentialFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_limiter_form.html">LimiterForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter.html">RateLimiter</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_g_l_drawable.html">TextGLDrawable</a>&#160;&#160;&#160;</td></tr>
<tr><td rowspan="2" valign="bottom"><a name="letter_f"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;f&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_limiter_form_base.html">LimiterFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter_form.html">RateLimiterForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function.html">TransferFunction</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_camera.html">Camera</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_line.html">Line</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function_form.html">TransferFunctionForm</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_capacitor.html">Capacitor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_fault.html">Fault</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_line_electrical_data.html">LineElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_reactive_limits.html">ReactiveLimits</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_file_handing.html">FileHanding</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_line_form.html">LineForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transformer.html">Transformer</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_limiter_form_base.html">LimiterFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter_form.html">RateLimiterForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_text_texture.html">TextTexture</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_camera.html">Camera</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_line.html">Line</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_rate_limiter_form_base.html">RateLimiterFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function.html">TransferFunction</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_capacitor.html">Capacitor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_fault.html">Fault</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_line_electrical_data.html">LineElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_reactive_limits.html">ReactiveLimits</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function_form.html">TransferFunctionForm</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="struct_capacitor_electrical_data.html">CapacitorElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_file_handing.html">FileHanding</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_line_form.html">LineForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_reactive_shunt_element_form.html">ReactiveShuntElementForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transfer_function_form_base.html">TransferFunctionFormBase</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_chart_view.html">ChartView</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_g"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;g&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_line_form_base.html">LineFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_transformer_electrical_data.html">TransformerElectricalData</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_line_form_base.html">LineFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_reactive_shunt_element_form_base.html">ReactiveShuntElementFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transformer.html">Transformer</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_chart_view_base.html">ChartViewBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_load.html">Load</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_s"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;s&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_transformer_form.html">TransformerForm</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_connection_line.html">ConnectionLine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain.html">Gain</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_load_electrical_data.html">LoadElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transformer_form_base.html">TransformerFormBase</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_constant.html">Constant</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain_form.html">GainForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_load_form.html">LoadForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_shunt.html">Shunt</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
+</td><td valign="top"><a class="el" href="struct_transformer_electrical_data.html">TransformerElectricalData</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_connection_line.html">ConnectionLine</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain.html">Gain</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_load_electrical_data.html">LoadElectricalData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transformer_form.html">TransformerForm</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_constant.html">Constant</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain_form.html">GainForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_load_form.html">LoadForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_shunt.html">Shunt</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_transformer_form_base.html">TransformerFormBase</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_constant_form.html">ConstantForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain_form_base.html">GainFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_load_form_base.html">LoadFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_simulation_data.html">SimulationData</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_w"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;w&#160;&#160;</div></td></tr></table>
</td></tr>
-<tr><td valign="top"><a class="el" href="class_constant_form.html">ConstantForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_gain_form_base.html">GainFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_load_form_base.html">LoadFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_simulation_data.html">SimulationData</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_constant_form_base.html">ConstantFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_general_data.html">GeneralData</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_m"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;m&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_workspace.html">Workspace</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_control_editor.html">ControlEditor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_general_properties_form.html">GeneralPropertiesForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_workspace_base.html">WorkspaceBase</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_control_editor_base.html">ControlEditorBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_machines.html">Machines</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_number_renderer.html">wxGLNumberRenderer</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_control_element.html">ControlElement</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_generator_stab_form.html">GeneratorStabForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_app.html">MainApp</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum.html">Sum</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_string.html">wxGLString</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_control_element_button.html">ControlElementButton</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_frame.html">MainFrame</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum_form.html">SumForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_string_array.html">wxGLStringArray</a>&#160;&#160;&#160;</td></tr>
-<tr><td valign="top"><a class="el" href="class_control_element_container.html">ControlElementContainer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_graphical_element.html">GraphicalElement</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_frame_base.html">MainFrameBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum_form_base.html">SumFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>&#160;&#160;&#160;</td></tr>
+</td><td valign="top"><a class="el" href="class_simulations_settings_form.html">SimulationsSettingsForm</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_control_editor.html">ControlEditor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_general_properties_form.html">GeneralPropertiesForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_simulations_settings_form_base.html">SimulationsSettingsFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_workspace.html">Workspace</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_control_editor_base.html">ControlEditorBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_general_properties_form_base.html">GeneralPropertiesFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_machines.html">Machines</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_transfer_function_1_1_space_state.html">TransferFunction::SpaceState</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_workspace_base.html">WorkspaceBase</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_control_element.html">ControlElement</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_generator_stab_form.html">GeneratorStabForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_app.html">MainApp</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum.html">Sum</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_number_renderer.html">wxGLNumberRenderer</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_control_element_button.html">ControlElementButton</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_generator_stab_form_base.html">GeneratorStabFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_frame.html">MainFrame</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum_form.html">SumForm</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_string.html">wxGLString</a>&#160;&#160;&#160;</td></tr>
+<tr><td valign="top"><a class="el" href="class_control_element_container.html">ControlElementContainer</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_graphical_element.html">GraphicalElement</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_main_frame_base.html">MainFrameBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_sum_form_base.html">SumFormBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_g_l_string_array.html">wxGLStringArray</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_control_element_solver.html">ControlElementSolver</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_i"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;i&#160;&#160;</div></td></tr></table>
-</td><td valign="top"><a class="el" href="class_multiplier.html">Multiplier</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_switching_data.html">SwitchingData</a>&#160;&#160;&#160;</td><td></td></tr>
+</td><td valign="top"><a class="el" href="class_multiplier.html">Multiplier</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="struct_switching_data.html">SwitchingData</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="classwx_ribbon_metro_art_provider.html">wxRibbonMetroArtProvider</a>&#160;&#160;&#160;</td></tr>
<tr><td valign="top"><a class="el" href="class_control_system_test.html">ControlSystemTest</a>&#160;&#160;&#160;</td><td rowspan="2" valign="bottom"><a name="letter_n"></a><table border="0" cellspacing="0" cellpadding="0"><tr><td><div class="ah">&#160;&#160;n&#160;&#160;</div></td></tr></table>
</td><td valign="top"><a class="el" href="class_switching_form.html">SwitchingForm</a>&#160;&#160;&#160;</td><td></td></tr>
<tr><td valign="top"><a class="el" href="class_control_system_test_base.html">ControlSystemTestBase</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_ind_motor.html">IndMotor</a>&#160;&#160;&#160;</td><td valign="top"><a class="el" href="class_switching_form_base.html">SwitchingFormBase</a>&#160;&#160;&#160;</td><td></td></tr>
diff --git a/docs/doxygen/html/classwx_g_l_number_renderer-members.html b/docs/doxygen/html/classwx_g_l_number_renderer-members.html
index 35f716a..83ee202 100644
--- a/docs/doxygen/html/classwx_g_l_number_renderer-members.html
+++ b/docs/doxygen/html/classwx_g_l_number_renderer-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_g_l_number_renderer.html b/docs/doxygen/html/classwx_g_l_number_renderer.html
index 2aecb95..bb3b8d8 100644
--- a/docs/doxygen/html/classwx_g_l_number_renderer.html
+++ b/docs/doxygen/html/classwx_g_l_number_renderer.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_g_l_string-members.html b/docs/doxygen/html/classwx_g_l_string-members.html
index 29b4296..8460eea 100644
--- a/docs/doxygen/html/classwx_g_l_string-members.html
+++ b/docs/doxygen/html/classwx_g_l_string-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_g_l_string.html b/docs/doxygen/html/classwx_g_l_string.html
index 50f103e..3b01817 100644
--- a/docs/doxygen/html/classwx_g_l_string.html
+++ b/docs/doxygen/html/classwx_g_l_string.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_g_l_string_array-members.html b/docs/doxygen/html/classwx_g_l_string_array-members.html
index 2471063..6c2b122 100644
--- a/docs/doxygen/html/classwx_g_l_string_array-members.html
+++ b/docs/doxygen/html/classwx_g_l_string_array-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_g_l_string_array.html b/docs/doxygen/html/classwx_g_l_string_array.html
index 58ba530..15335b3 100644
--- a/docs/doxygen/html/classwx_g_l_string_array.html
+++ b/docs/doxygen/html/classwx_g_l_string_array.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_ribbon_metro_art_provider-members.html b/docs/doxygen/html/classwx_ribbon_metro_art_provider-members.html
index 1d4cd26..a874837 100644
--- a/docs/doxygen/html/classwx_ribbon_metro_art_provider-members.html
+++ b/docs/doxygen/html/classwx_ribbon_metro_art_provider-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/classwx_ribbon_metro_art_provider.html b/docs/doxygen/html/classwx_ribbon_metro_art_provider.html
index 2fbf462..8019df1 100644
--- a/docs/doxygen/html/classwx_ribbon_metro_art_provider.html
+++ b/docs/doxygen/html/classwx_ribbon_metro_art_provider.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.html b/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.html
index a19b9a9..6d29206 100644
--- a/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.html
+++ b/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,17 +91,136 @@ $(document).ready(function(){initNavTree('dir_ffd1f789ec7bd0a45fc6ad92579c5070.h
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="files"></a>
Files</h2></td></tr>
+<tr class="memitem:_about_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_about_form_8h.html">AboutForm.h</a> <a href="_about_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_branch_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_branch_8h.html">Branch.h</a> <a href="_branch_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_bus_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_bus_8h.html">Bus.h</a> <a href="_bus_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_bus_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_bus_form_8h.html">BusForm.h</a> <a href="_bus_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_camera_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_camera_8h.html">Camera.h</a> <a href="_camera_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_capacitor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_capacitor_8h.html">Capacitor.h</a> <a href="_capacitor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_chart_view_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_chart_view_8h.html">ChartView.h</a> <a href="_chart_view_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_connection_line_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_connection_line_8h.html">ConnectionLine.h</a> <a href="_connection_line_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_constant_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_constant_8h.html">Constant.h</a> <a href="_constant_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_constant_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_constant_form_8h.html">ConstantForm.h</a> <a href="_constant_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_control_editor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_control_editor_8h.html">ControlEditor.h</a> <a href="_control_editor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_control_element_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_control_element_8h.html">ControlElement.h</a> <a href="_control_element_8h_source.html">[code]</a></td></tr>
+<tr class="memdesc:_control_element_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of a control element. Provide general methods to other control classes. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_control_element_container_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_control_element_container_8h.html">ControlElementContainer.h</a> <a href="_control_element_container_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_control_element_solver_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_control_element_solver_8h.html">ControlElementSolver.h</a> <a href="_control_element_solver_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_control_system_test_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_control_system_test_8h.html">ControlSystemTest.h</a> <a href="_control_system_test_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_data_report_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_data_report_8h.html">DataReport.h</a> <a href="_data_report_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_electric_calculation_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_electric_calculation_8h.html">ElectricCalculation.h</a> <a href="_electric_calculation_8h_source.html">[code]</a></td></tr>
-<tr class="memdesc:_electric_calculation_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Base class of electric calculations, with general methods. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_electromechanical_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_electromechanical_8h.html">Electromechanical.h</a> <a href="_electromechanical_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_element_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_element_8h.html">Element.h</a> <a href="_element_8h_source.html">[code]</a></td></tr>
-<tr class="memdesc:_element_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Class to manage color of OpenGL. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_element_data_object_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_element_data_object_8h.html">ElementDataObject.h</a> <a href="_element_data_object_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_element_plot_data_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_element_plot_data_8h.html">ElementPlotData.h</a> <a href="_element_plot_data_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_exponential_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_exponential_8h.html">Exponential.h</a> <a href="_exponential_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_exponential_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_exponential_form_8h.html">ExponentialForm.h</a> <a href="_exponential_form_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_fault_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_fault_8h.html">Fault.h</a> <a href="_fault_8h_source.html">[code]</a></td></tr>
-<tr class="memdesc:_fault_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Calculate the fault of the system and update the elements data. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_file_handing_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_file_handing_8h.html">FileHanding.h</a> <a href="_file_handing_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_gain_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gain_8h.html">Gain.h</a> <a href="_gain_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_gain_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_gain_form_8h.html">GainForm.h</a> <a href="_gain_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_general_properties_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_general_properties_form_8h.html">GeneralPropertiesForm.h</a> <a href="_general_properties_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_generator_stab_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_generator_stab_form_8h.html">GeneratorStabForm.h</a> <a href="_generator_stab_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_graphical_element_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_graphical_element_8h.html">GraphicalElement.h</a> <a href="_graphical_element_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_ind_motor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_ind_motor_8h.html">IndMotor.h</a> <a href="_ind_motor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_ind_motor_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_ind_motor_form_8h.html">IndMotorForm.h</a> <a href="_ind_motor_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_inductor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_inductor_8h.html">Inductor.h</a> <a href="_inductor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_i_o_control_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_i_o_control_8h.html">IOControl.h</a> <a href="_i_o_control_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_i_o_control_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_i_o_control_form_8h.html">IOControlForm.h</a> <a href="_i_o_control_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_limiter_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_limiter_8h.html">Limiter.h</a> <a href="_limiter_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_limiter_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_limiter_form_8h.html">LimiterForm.h</a> <a href="_limiter_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_line_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_line_8h.html">Line.h</a> <a href="_line_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_line_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_line_form_8h.html">LineForm.h</a> <a href="_line_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_load_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_load_8h.html">Load.h</a> <a href="_load_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_load_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_load_form_8h.html">LoadForm.h</a> <a href="_load_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_machines_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_machines_8h.html">Machines.h</a> <a href="_machines_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_main_frame_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_main_frame_8h.html">MainFrame.h</a> <a href="_main_frame_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_multiplier_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_multiplier_8h.html">Multiplier.h</a> <a href="_multiplier_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:_power_element_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_power_element_8h.html">PowerElement.h</a> <a href="_power_element_8h_source.html">[code]</a></td></tr>
-<tr class="memdesc:_power_element_8h"><td class="mdescLeft">&#160;</td><td class="mdescRight">Switching data of power elements. <br /></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_power_flow_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_power_flow_8h.html">PowerFlow.h</a> <a href="_power_flow_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_properties_data_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_properties_data_8h.html">PropertiesData.h</a> <a href="_properties_data_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_rate_limiter_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_rate_limiter_8h.html">RateLimiter.h</a> <a href="_rate_limiter_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_rate_limiter_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_rate_limiter_form_8h.html">RateLimiterForm.h</a> <a href="_rate_limiter_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_reactive_shunt_element_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_reactive_shunt_element_form_8h.html">ReactiveShuntElementForm.h</a> <a href="_reactive_shunt_element_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_shunt_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_shunt_8h.html">Shunt.h</a> <a href="_shunt_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_simulations_settings_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_simulations_settings_form_8h.html">SimulationsSettingsForm.h</a> <a href="_simulations_settings_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_sum_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sum_8h.html">Sum.h</a> <a href="_sum_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_sum_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sum_form_8h.html">SumForm.h</a> <a href="_sum_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_switching_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_switching_form_8h.html">SwitchingForm.h</a> <a href="_switching_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_sync_generator_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sync_generator_8h.html">SyncGenerator.h</a> <a href="_sync_generator_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_sync_machine_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sync_machine_form_8h.html">SyncMachineForm.h</a> <a href="_sync_machine_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_sync_motor_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_sync_motor_8h.html">SyncMotor.h</a> <a href="_sync_motor_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_text_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_text_8h.html">Text.h</a> <a href="_text_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_text_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_text_form_8h.html">TextForm.h</a> <a href="_text_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_transfer_function_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_transfer_function_8h.html">TransferFunction.h</a> <a href="_transfer_function_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_transfer_function_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_transfer_function_form_8h.html">TransferFunctionForm.h</a> <a href="_transfer_function_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_transformer_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_transformer_8h.html">Transformer.h</a> <a href="_transformer_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_transformer_form_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_transformer_form_8h.html">TransformerForm.h</a> <a href="_transformer_form_8h_source.html">[code]</a></td></tr>
+<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:_workspace_8h"><td class="memItemLeft" align="right" valign="top">file &#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="_workspace_8h.html">Workspace.h</a> <a href="_workspace_8h_source.html">[code]</a></td></tr>
<tr class="separator:"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
</div><!-- contents -->
diff --git a/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.js b/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.js
index 89bbc0b..cf34412 100644
--- a/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.js
+++ b/docs/doxygen/html/dir_ffd1f789ec7bd0a45fc6ad92579c5070.js
@@ -1,46 +1,79 @@
var dir_ffd1f789ec7bd0a45fc6ad92579c5070 =
[
[ "AboutForm.cpp", "_about_form_8cpp_source.html", null ],
- [ "AboutForm.h", "_about_form_8h_source.html", null ],
+ [ "AboutForm.h", "_about_form_8h.html", [
+ [ "AboutForm", "class_about_form.html", "class_about_form" ]
+ ] ],
[ "ArtMetro.cpp", "_art_metro_8cpp_source.html", null ],
[ "ArtMetro.h", "_art_metro_8h_source.html", null ],
[ "Branch.cpp", "_branch_8cpp_source.html", null ],
- [ "Branch.h", "_branch_8h_source.html", null ],
+ [ "Branch.h", "_branch_8h.html", [
+ [ "Branch", "class_branch.html", "class_branch" ]
+ ] ],
[ "Bus.cpp", "_bus_8cpp_source.html", null ],
- [ "Bus.h", "_bus_8h_source.html", null ],
+ [ "Bus.h", "_bus_8h.html", [
+ [ "BusElectricalData", "struct_bus_electrical_data.html", "struct_bus_electrical_data" ],
+ [ "Bus", "class_bus.html", "class_bus" ]
+ ] ],
[ "BusForm.cpp", "_bus_form_8cpp_source.html", null ],
- [ "BusForm.h", "_bus_form_8h_source.html", null ],
+ [ "BusForm.h", "_bus_form_8h.html", [
+ [ "BusForm", "class_bus_form.html", "class_bus_form" ]
+ ] ],
[ "BusFormBitmaps.cpp", "_bus_form_bitmaps_8cpp_source.html", null ],
[ "Camera.cpp", "_camera_8cpp_source.html", null ],
- [ "Camera.h", "_camera_8h_source.html", null ],
+ [ "Camera.h", "_camera_8h.html", [
+ [ "Camera", "class_camera.html", "class_camera" ]
+ ] ],
[ "Capacitor.cpp", "_capacitor_8cpp_source.html", null ],
- [ "Capacitor.h", "_capacitor_8h_source.html", null ],
+ [ "Capacitor.h", "_capacitor_8h.html", [
+ [ "CapacitorElectricalData", "struct_capacitor_electrical_data.html", "struct_capacitor_electrical_data" ],
+ [ "Capacitor", "class_capacitor.html", "class_capacitor" ]
+ ] ],
[ "ChartView.cpp", "_chart_view_8cpp_source.html", null ],
- [ "ChartView.h", "_chart_view_8h_source.html", null ],
+ [ "ChartView.h", "_chart_view_8h.html", [
+ [ "ChartView", "class_chart_view.html", "class_chart_view" ]
+ ] ],
[ "ChartViewBase.cpp", "_chart_view_base_8cpp_source.html", null ],
[ "ChartViewBase.h", "_chart_view_base_8h_source.html", null ],
[ "ChartViewBitmaps.cpp", "_chart_view_bitmaps_8cpp_source.html", null ],
[ "ConnectionLine.cpp", "_connection_line_8cpp_source.html", null ],
- [ "ConnectionLine.h", "_connection_line_8h_source.html", null ],
+ [ "ConnectionLine.h", "_connection_line_8h.html", [
+ [ "ConnectionLine", "class_connection_line.html", "class_connection_line" ]
+ ] ],
[ "Constant.cpp", "_constant_8cpp_source.html", null ],
- [ "Constant.h", "_constant_8h_source.html", null ],
+ [ "Constant.h", "_constant_8h.html", [
+ [ "Constant", "class_constant.html", "class_constant" ]
+ ] ],
[ "ConstantForm.cpp", "_constant_form_8cpp_source.html", null ],
- [ "ConstantForm.h", "_constant_form_8h_source.html", null ],
+ [ "ConstantForm.h", "_constant_form_8h.html", [
+ [ "ConstantForm", "class_constant_form.html", "class_constant_form" ]
+ ] ],
[ "ControlEditor.cpp", "_control_editor_8cpp_source.html", null ],
- [ "ControlEditor.h", "_control_editor_8h_source.html", null ],
+ [ "ControlEditor.h", "_control_editor_8h.html", "_control_editor_8h" ],
[ "ControlEditorBase.cpp", "_control_editor_base_8cpp_source.html", null ],
[ "ControlEditorBase.h", "_control_editor_base_8h_source.html", null ],
[ "ControlEditorBitmaps.cpp", "_control_editor_bitmaps_8cpp_source.html", null ],
[ "ControlElement.cpp", "_control_element_8cpp_source.html", null ],
- [ "ControlElement.h", "_control_element_8h_source.html", null ],
+ [ "ControlElement.h", "_control_element_8h.html", [
+ [ "Node", "class_node.html", "class_node" ],
+ [ "ControlElement", "class_control_element.html", "class_control_element" ]
+ ] ],
[ "ControlElementContainer.cpp", "_control_element_container_8cpp_source.html", null ],
- [ "ControlElementContainer.h", "_control_element_container_8h_source.html", null ],
+ [ "ControlElementContainer.h", "_control_element_container_8h.html", [
+ [ "ControlElementContainer", "class_control_element_container.html", "class_control_element_container" ]
+ ] ],
[ "ControlElementSolver.cpp", "_control_element_solver_8cpp_source.html", null ],
- [ "ControlElementSolver.h", "_control_element_solver_8h_source.html", null ],
+ [ "ControlElementSolver.h", "_control_element_solver_8h.html", [
+ [ "ControlElementSolver", "class_control_element_solver.html", "class_control_element_solver" ]
+ ] ],
[ "ControlSystemTest.cpp", "_control_system_test_8cpp_source.html", null ],
- [ "ControlSystemTest.h", "_control_system_test_8h_source.html", null ],
+ [ "ControlSystemTest.h", "_control_system_test_8h.html", [
+ [ "ControlSystemTest", "class_control_system_test.html", "class_control_system_test" ]
+ ] ],
[ "DataReport.cpp", "_data_report_8cpp_source.html", null ],
- [ "DataReport.h", "_data_report_8h_source.html", null ],
+ [ "DataReport.h", "_data_report_8h.html", [
+ [ "DataReport", "class_data_report.html", "class_data_report" ]
+ ] ],
[ "DataReportBase.cpp", "_data_report_base_8cpp_source.html", null ],
[ "DataReportBase.h", "_data_report_base_8h_source.html", null ],
[ "DataReportBitmaps.cpp", "_data_report_bitmaps_8cpp_source.html", null ],
@@ -48,113 +81,200 @@ var dir_ffd1f789ec7bd0a45fc6ad92579c5070 =
[ "ElectricCalculation.cpp", "_electric_calculation_8cpp_source.html", null ],
[ "ElectricCalculation.h", "_electric_calculation_8h.html", "_electric_calculation_8h" ],
[ "Electromechanical.cpp", "_electromechanical_8cpp_source.html", null ],
- [ "Electromechanical.h", "_electromechanical_8h_source.html", null ],
+ [ "Electromechanical.h", "_electromechanical_8h.html", [
+ [ "SyncMachineModelData", "struct_sync_machine_model_data.html", "struct_sync_machine_model_data" ],
+ [ "Electromechanical", "class_electromechanical.html", "class_electromechanical" ]
+ ] ],
[ "Element.cpp", "_element_8cpp_source.html", null ],
[ "Element.h", "_element_8h.html", "_element_8h" ],
[ "ElementDataObject.cpp", "_element_data_object_8cpp_source.html", null ],
- [ "ElementDataObject.h", "_element_data_object_8h_source.html", null ],
+ [ "ElementDataObject.h", "_element_data_object_8h.html", [
+ [ "ElementsLists", "struct_elements_lists.html", "struct_elements_lists" ],
+ [ "ElementDataObject", "class_element_data_object.html", "class_element_data_object" ]
+ ] ],
[ "ElementForm.cpp", "_element_form_8cpp_source.html", null ],
[ "ElementForm.h", "_element_form_8h_source.html", null ],
[ "ElementFormBitmaps.cpp", "_element_form_bitmaps_8cpp_source.html", null ],
[ "ElementPlotData.cpp", "_element_plot_data_8cpp_source.html", null ],
- [ "ElementPlotData.h", "_element_plot_data_8h_source.html", null ],
+ [ "ElementPlotData.h", "_element_plot_data_8h.html", [
+ [ "PlotData", "class_plot_data.html", "class_plot_data" ],
+ [ "ElementPlotData", "class_element_plot_data.html", "class_element_plot_data" ]
+ ] ],
[ "Exponential.cpp", "_exponential_8cpp_source.html", null ],
- [ "Exponential.h", "_exponential_8h_source.html", null ],
+ [ "Exponential.h", "_exponential_8h.html", [
+ [ "Exponential", "class_exponential.html", "class_exponential" ]
+ ] ],
[ "ExponentialForm.cpp", "_exponential_form_8cpp_source.html", null ],
- [ "ExponentialForm.h", "_exponential_form_8h_source.html", null ],
+ [ "ExponentialForm.h", "_exponential_form_8h.html", [
+ [ "ExponentialForm", "class_exponential_form.html", "class_exponential_form" ]
+ ] ],
[ "Fault.cpp", "_fault_8cpp_source.html", null ],
[ "Fault.h", "_fault_8h.html", [
[ "Fault", "class_fault.html", "class_fault" ]
] ],
[ "FileHanding.cpp", "_file_handing_8cpp_source.html", null ],
- [ "FileHanding.h", "_file_handing_8h_source.html", null ],
+ [ "FileHanding.h", "_file_handing_8h.html", [
+ [ "FileHanding", "class_file_handing.html", "class_file_handing" ]
+ ] ],
[ "Gain.cpp", "_gain_8cpp_source.html", null ],
- [ "Gain.h", "_gain_8h_source.html", null ],
+ [ "Gain.h", "_gain_8h.html", [
+ [ "Gain", "class_gain.html", "class_gain" ]
+ ] ],
[ "GainForm.cpp", "_gain_form_8cpp_source.html", null ],
- [ "GainForm.h", "_gain_form_8h_source.html", null ],
+ [ "GainForm.h", "_gain_form_8h.html", [
+ [ "GainForm", "class_gain_form.html", "class_gain_form" ]
+ ] ],
[ "GeneralPropertiesForm.cpp", "_general_properties_form_8cpp_source.html", null ],
- [ "GeneralPropertiesForm.h", "_general_properties_form_8h_source.html", null ],
+ [ "GeneralPropertiesForm.h", "_general_properties_form_8h.html", [
+ [ "GeneralPropertiesForm", "class_general_properties_form.html", "class_general_properties_form" ]
+ ] ],
[ "GeneratorStabForm.cpp", "_generator_stab_form_8cpp_source.html", null ],
- [ "GeneratorStabForm.h", "_generator_stab_form_8h_source.html", null ],
+ [ "GeneratorStabForm.h", "_generator_stab_form_8h.html", [
+ [ "GeneratorStabForm", "class_generator_stab_form.html", "class_generator_stab_form" ]
+ ] ],
[ "GraphicalElement.cpp", "_graphical_element_8cpp_source.html", null ],
- [ "GraphicalElement.h", "_graphical_element_8h_source.html", null ],
+ [ "GraphicalElement.h", "_graphical_element_8h.html", [
+ [ "GraphicalElement", "class_graphical_element.html", "class_graphical_element" ]
+ ] ],
[ "IndMotor.cpp", "_ind_motor_8cpp_source.html", null ],
- [ "IndMotor.h", "_ind_motor_8h_source.html", null ],
+ [ "IndMotor.h", "_ind_motor_8h.html", [
+ [ "IndMotorElectricalData", "struct_ind_motor_electrical_data.html", "struct_ind_motor_electrical_data" ],
+ [ "IndMotor", "class_ind_motor.html", "class_ind_motor" ]
+ ] ],
[ "IndMotorForm.cpp", "_ind_motor_form_8cpp_source.html", null ],
- [ "IndMotorForm.h", "_ind_motor_form_8h_source.html", null ],
+ [ "IndMotorForm.h", "_ind_motor_form_8h.html", [
+ [ "IndMotorForm", "class_ind_motor_form.html", "class_ind_motor_form" ]
+ ] ],
[ "Inductor.cpp", "_inductor_8cpp_source.html", null ],
- [ "Inductor.h", "_inductor_8h_source.html", null ],
+ [ "Inductor.h", "_inductor_8h.html", [
+ [ "InductorElectricalData", "struct_inductor_electrical_data.html", "struct_inductor_electrical_data" ],
+ [ "Inductor", "class_inductor.html", "class_inductor" ]
+ ] ],
[ "IOControl.cpp", "_i_o_control_8cpp_source.html", null ],
- [ "IOControl.h", "_i_o_control_8h_source.html", null ],
+ [ "IOControl.h", "_i_o_control_8h.html", [
+ [ "IOControl", "class_i_o_control.html", "class_i_o_control" ]
+ ] ],
[ "IOControlForm.cpp", "_i_o_control_form_8cpp_source.html", null ],
- [ "IOControlForm.h", "_i_o_control_form_8h_source.html", null ],
+ [ "IOControlForm.h", "_i_o_control_form_8h.html", [
+ [ "IOControlForm", "class_i_o_control_form.html", "class_i_o_control_form" ]
+ ] ],
[ "Limiter.cpp", "_limiter_8cpp_source.html", null ],
- [ "Limiter.h", "_limiter_8h_source.html", null ],
+ [ "Limiter.h", "_limiter_8h.html", [
+ [ "Limiter", "class_limiter.html", "class_limiter" ]
+ ] ],
[ "LimiterForm.cpp", "_limiter_form_8cpp_source.html", null ],
- [ "LimiterForm.h", "_limiter_form_8h_source.html", null ],
+ [ "LimiterForm.h", "_limiter_form_8h.html", [
+ [ "LimiterForm", "class_limiter_form.html", "class_limiter_form" ]
+ ] ],
[ "Line.cpp", "_line_8cpp_source.html", null ],
- [ "Line.h", "_line_8h_source.html", null ],
+ [ "Line.h", "_line_8h.html", [
+ [ "LineElectricalData", "struct_line_electrical_data.html", "struct_line_electrical_data" ],
+ [ "Line", "class_line.html", "class_line" ]
+ ] ],
[ "LineForm.cpp", "_line_form_8cpp_source.html", null ],
- [ "LineForm.h", "_line_form_8h_source.html", null ],
+ [ "LineForm.h", "_line_form_8h.html", [
+ [ "LineForm", "class_line_form.html", "class_line_form" ]
+ ] ],
[ "Load.cpp", "_load_8cpp_source.html", null ],
- [ "Load.h", "_load_8h_source.html", null ],
+ [ "Load.h", "_load_8h.html", "_load_8h" ],
[ "LoadForm.cpp", "_load_form_8cpp_source.html", null ],
- [ "LoadForm.h", "_load_form_8h_source.html", null ],
+ [ "LoadForm.h", "_load_form_8h.html", [
+ [ "LoadForm", "class_load_form.html", "class_load_form" ]
+ ] ],
[ "Machines.cpp", "_machines_8cpp_source.html", null ],
- [ "Machines.h", "_machines_8h_source.html", null ],
+ [ "Machines.h", "_machines_8h.html", [
+ [ "Machines", "class_machines.html", "class_machines" ]
+ ] ],
[ "main.cpp", "main_8cpp_source.html", null ],
[ "MainFrame.cpp", "_main_frame_8cpp_source.html", null ],
- [ "MainFrame.h", "_main_frame_8h_source.html", null ],
+ [ "MainFrame.h", "_main_frame_8h.html", "_main_frame_8h" ],
[ "MainFrameBase.cpp", "_main_frame_base_8cpp_source.html", null ],
[ "MainFrameBase.h", "_main_frame_base_8h_source.html", null ],
[ "MainFrameBitmaps.cpp", "_main_frame_bitmaps_8cpp_source.html", null ],
[ "Multiplier.cpp", "_multiplier_8cpp_source.html", null ],
- [ "Multiplier.h", "_multiplier_8h_source.html", null ],
+ [ "Multiplier.h", "_multiplier_8h.html", [
+ [ "Multiplier", "class_multiplier.html", "class_multiplier" ]
+ ] ],
[ "PowerElement.cpp", "_power_element_8cpp_source.html", null ],
[ "PowerElement.h", "_power_element_8h.html", "_power_element_8h" ],
[ "PowerFlow.cpp", "_power_flow_8cpp_source.html", null ],
- [ "PowerFlow.h", "_power_flow_8h_source.html", null ],
+ [ "PowerFlow.h", "_power_flow_8h.html", [
+ [ "PowerFlow", "class_power_flow.html", "class_power_flow" ]
+ ] ],
[ "PropertiesData.cpp", "_properties_data_8cpp_source.html", null ],
- [ "PropertiesData.h", "_properties_data_8h_source.html", null ],
+ [ "PropertiesData.h", "_properties_data_8h.html", "_properties_data_8h" ],
[ "PropertiesForm.cpp", "_properties_form_8cpp_source.html", null ],
[ "PropertiesForm.h", "_properties_form_8h_source.html", null ],
[ "PropertiesFormBitmaps.cpp", "_properties_form_bitmaps_8cpp_source.html", null ],
[ "RateLimiter.cpp", "_rate_limiter_8cpp_source.html", null ],
- [ "RateLimiter.h", "_rate_limiter_8h_source.html", null ],
+ [ "RateLimiter.h", "_rate_limiter_8h.html", [
+ [ "RateLimiter", "class_rate_limiter.html", "class_rate_limiter" ]
+ ] ],
[ "RateLimiterForm.cpp", "_rate_limiter_form_8cpp_source.html", null ],
- [ "RateLimiterForm.h", "_rate_limiter_form_8h_source.html", null ],
+ [ "RateLimiterForm.h", "_rate_limiter_form_8h.html", [
+ [ "RateLimiterForm", "class_rate_limiter_form.html", "class_rate_limiter_form" ]
+ ] ],
[ "ReactiveShuntElementForm.cpp", "_reactive_shunt_element_form_8cpp_source.html", null ],
- [ "ReactiveShuntElementForm.h", "_reactive_shunt_element_form_8h_source.html", null ],
+ [ "ReactiveShuntElementForm.h", "_reactive_shunt_element_form_8h.html", [
+ [ "ReactiveShuntElementForm", "class_reactive_shunt_element_form.html", "class_reactive_shunt_element_form" ]
+ ] ],
[ "Shunt.cpp", "_shunt_8cpp_source.html", null ],
- [ "Shunt.h", "_shunt_8h_source.html", null ],
+ [ "Shunt.h", "_shunt_8h.html", [
+ [ "Shunt", "class_shunt.html", "class_shunt" ]
+ ] ],
[ "SimulationsSettingsForm.cpp", "_simulations_settings_form_8cpp_source.html", null ],
- [ "SimulationsSettingsForm.h", "_simulations_settings_form_8h_source.html", null ],
+ [ "SimulationsSettingsForm.h", "_simulations_settings_form_8h.html", [
+ [ "SimulationsSettingsForm", "class_simulations_settings_form.html", "class_simulations_settings_form" ]
+ ] ],
[ "Sum.cpp", "_sum_8cpp_source.html", null ],
- [ "Sum.h", "_sum_8h_source.html", null ],
+ [ "Sum.h", "_sum_8h.html", [
+ [ "Sum", "class_sum.html", "class_sum" ]
+ ] ],
[ "SumForm.cpp", "_sum_form_8cpp_source.html", null ],
- [ "SumForm.h", "_sum_form_8h_source.html", null ],
+ [ "SumForm.h", "_sum_form_8h.html", [
+ [ "SumForm", "class_sum_form.html", "class_sum_form" ]
+ ] ],
[ "SwitchingForm.cpp", "_switching_form_8cpp_source.html", null ],
- [ "SwitchingForm.h", "_switching_form_8h_source.html", null ],
+ [ "SwitchingForm.h", "_switching_form_8h.html", [
+ [ "SwitchingForm", "class_switching_form.html", "class_switching_form" ]
+ ] ],
[ "SyncGenerator.cpp", "_sync_generator_8cpp_source.html", null ],
- [ "SyncGenerator.h", "_sync_generator_8h_source.html", null ],
+ [ "SyncGenerator.h", "_sync_generator_8h.html", [
+ [ "SyncGeneratorElectricalData", "struct_sync_generator_electrical_data.html", "struct_sync_generator_electrical_data" ],
+ [ "SyncGenerator", "class_sync_generator.html", "class_sync_generator" ]
+ ] ],
[ "SyncMachineForm.cpp", "_sync_machine_form_8cpp_source.html", null ],
- [ "SyncMachineForm.h", "_sync_machine_form_8h_source.html", null ],
+ [ "SyncMachineForm.h", "_sync_machine_form_8h.html", [
+ [ "SyncMachineForm", "class_sync_machine_form.html", "class_sync_machine_form" ]
+ ] ],
[ "SyncMotor.cpp", "_sync_motor_8cpp_source.html", null ],
- [ "SyncMotor.h", "_sync_motor_8h_source.html", null ],
+ [ "SyncMotor.h", "_sync_motor_8h.html", [
+ [ "SyncMotorElectricalData", "struct_sync_motor_electrical_data.html", "struct_sync_motor_electrical_data" ],
+ [ "SyncMotor", "class_sync_motor.html", "class_sync_motor" ]
+ ] ],
[ "Text.cpp", "_text_8cpp_source.html", null ],
- [ "Text.h", "_text_8h_source.html", null ],
+ [ "Text.h", "_text_8h.html", "_text_8h" ],
[ "TextForm.cpp", "_text_form_8cpp_source.html", null ],
- [ "TextForm.h", "_text_form_8h_source.html", null ],
+ [ "TextForm.h", "_text_form_8h.html", [
+ [ "TextForm", "class_text_form.html", "class_text_form" ]
+ ] ],
[ "TransferFunction.cpp", "_transfer_function_8cpp_source.html", null ],
- [ "TransferFunction.h", "_transfer_function_8h_source.html", null ],
+ [ "TransferFunction.h", "_transfer_function_8h.html", [
+ [ "TransferFunction", "class_transfer_function.html", "class_transfer_function" ],
+ [ "SpaceState", "struct_transfer_function_1_1_space_state.html", "struct_transfer_function_1_1_space_state" ]
+ ] ],
[ "TransferFunctionForm.cpp", "_transfer_function_form_8cpp_source.html", null ],
- [ "TransferFunctionForm.h", "_transfer_function_form_8h_source.html", null ],
+ [ "TransferFunctionForm.h", "_transfer_function_form_8h.html", [
+ [ "TransferFunctionForm", "class_transfer_function_form.html", "class_transfer_function_form" ]
+ ] ],
[ "Transformer.cpp", "_transformer_8cpp_source.html", null ],
- [ "Transformer.h", "_transformer_8h_source.html", null ],
+ [ "Transformer.h", "_transformer_8h.html", "_transformer_8h" ],
[ "TransformerForm.cpp", "_transformer_form_8cpp_source.html", null ],
- [ "TransformerForm.h", "_transformer_form_8h_source.html", null ],
+ [ "TransformerForm.h", "_transformer_form_8h.html", [
+ [ "TransformerForm", "class_transformer_form.html", "class_transformer_form" ]
+ ] ],
[ "Workspace.cpp", "_workspace_8cpp_source.html", null ],
- [ "Workspace.h", "_workspace_8h_source.html", null ],
+ [ "Workspace.h", "_workspace_8h.html", "_workspace_8h" ],
[ "WorkspaceBase.cpp", "_workspace_base_8cpp_source.html", null ],
[ "WorkspaceBase.h", "_workspace_base_8h_source.html", null ],
[ "WorkspaceBitmaps.cpp", "_workspace_bitmaps_8cpp_source.html", null ],
diff --git a/docs/doxygen/html/files.html b/docs/doxygen/html/files.html
index d9a8eb6..a7be6fa 100644
--- a/docs/doxygen/html/files.html
+++ b/docs/doxygen/html/files.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,158 +92,158 @@ $(document).ready(function(){initNavTree('files.html','');});
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_0_" class="arrow" onclick="toggleFolder('0_')">&#9658;</span><span id="img_0_" class="iconfclosed" onclick="toggleFolder('0_')">&#160;</span><a class="el" href="dir_ffd1f789ec7bd0a45fc6ad92579c5070.html" target="_self">Project</a></td><td class="desc"></td></tr>
<tr id="row_0_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_about_form_8cpp_source.html"><span class="icondoc"></span></a><b>AboutForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_about_form_8h_source.html"><span class="icondoc"></span></a><b>AboutForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_1_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_about_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_about_form_8h.html" target="_self">AboutForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_art_metro_8cpp_source.html"><span class="icondoc"></span></a><b>ArtMetro.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_art_metro_8h_source.html"><span class="icondoc"></span></a><b>ArtMetro.h</b></td><td class="desc"></td></tr>
<tr id="row_0_4_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_branch_8cpp_source.html"><span class="icondoc"></span></a><b>Branch.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_branch_8h_source.html"><span class="icondoc"></span></a><b>Branch.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_5_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_branch_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_branch_8h.html" target="_self">Branch.h</a></td><td class="desc"></td></tr>
<tr id="row_0_6_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_8cpp_source.html"><span class="icondoc"></span></a><b>Bus.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_8h_source.html"><span class="icondoc"></span></a><b>Bus.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_7_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_bus_8h.html" target="_self">Bus.h</a></td><td class="desc"></td></tr>
<tr id="row_0_8_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_form_8cpp_source.html"><span class="icondoc"></span></a><b>BusForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_form_8h_source.html"><span class="icondoc"></span></a><b>BusForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_9_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_bus_form_8h.html" target="_self">BusForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_10_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_bus_form_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>BusFormBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_11_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_camera_8cpp_source.html"><span class="icondoc"></span></a><b>Camera.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_camera_8h_source.html"><span class="icondoc"></span></a><b>Camera.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_12_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_camera_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_camera_8h.html" target="_self">Camera.h</a></td><td class="desc"></td></tr>
<tr id="row_0_13_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_capacitor_8cpp_source.html"><span class="icondoc"></span></a><b>Capacitor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_capacitor_8h_source.html"><span class="icondoc"></span></a><b>Capacitor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_14_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_capacitor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_capacitor_8h.html" target="_self">Capacitor.h</a></td><td class="desc"></td></tr>
<tr id="row_0_15_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_8cpp_source.html"><span class="icondoc"></span></a><b>ChartView.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_8h_source.html"><span class="icondoc"></span></a><b>ChartView.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_16_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_chart_view_8h.html" target="_self">ChartView.h</a></td><td class="desc"></td></tr>
<tr id="row_0_17_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_base_8cpp_source.html"><span class="icondoc"></span></a><b>ChartViewBase.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_18_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_base_8h_source.html"><span class="icondoc"></span></a><b>ChartViewBase.h</b></td><td class="desc"></td></tr>
<tr id="row_0_19_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_chart_view_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>ChartViewBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_20_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_connection_line_8cpp_source.html"><span class="icondoc"></span></a><b>ConnectionLine.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_connection_line_8h_source.html"><span class="icondoc"></span></a><b>ConnectionLine.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_21_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_connection_line_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_connection_line_8h.html" target="_self">ConnectionLine.h</a></td><td class="desc"></td></tr>
<tr id="row_0_22_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_8cpp_source.html"><span class="icondoc"></span></a><b>Constant.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_8h_source.html"><span class="icondoc"></span></a><b>Constant.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_23_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_constant_8h.html" target="_self">Constant.h</a></td><td class="desc"></td></tr>
<tr id="row_0_24_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_form_8cpp_source.html"><span class="icondoc"></span></a><b>ConstantForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_form_8h_source.html"><span class="icondoc"></span></a><b>ConstantForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_25_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_constant_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_constant_form_8h.html" target="_self">ConstantForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_26_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_8cpp_source.html"><span class="icondoc"></span></a><b>ControlEditor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_8h_source.html"><span class="icondoc"></span></a><b>ControlEditor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_27_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_control_editor_8h.html" target="_self">ControlEditor.h</a></td><td class="desc"></td></tr>
<tr id="row_0_28_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_base_8cpp_source.html"><span class="icondoc"></span></a><b>ControlEditorBase.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_29_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_base_8h_source.html"><span class="icondoc"></span></a><b>ControlEditorBase.h</b></td><td class="desc"></td></tr>
<tr id="row_0_30_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_editor_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>ControlEditorBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_31_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_8cpp_source.html"><span class="icondoc"></span></a><b>ControlElement.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_8h_source.html"><span class="icondoc"></span></a><b>ControlElement.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_32_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_control_element_8h.html" target="_self">ControlElement.h</a></td><td class="desc">Base class of a control element. Provide general methods to other control classes </td></tr>
<tr id="row_0_33_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_container_8cpp_source.html"><span class="icondoc"></span></a><b>ControlElementContainer.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_container_8h_source.html"><span class="icondoc"></span></a><b>ControlElementContainer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_34_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_container_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_control_element_container_8h.html" target="_self">ControlElementContainer.h</a></td><td class="desc"></td></tr>
<tr id="row_0_35_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_solver_8cpp_source.html"><span class="icondoc"></span></a><b>ControlElementSolver.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_solver_8h_source.html"><span class="icondoc"></span></a><b>ControlElementSolver.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_36_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_element_solver_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_control_element_solver_8h.html" target="_self">ControlElementSolver.h</a></td><td class="desc"></td></tr>
<tr id="row_0_37_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_system_test_8cpp_source.html"><span class="icondoc"></span></a><b>ControlSystemTest.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_system_test_8h_source.html"><span class="icondoc"></span></a><b>ControlSystemTest.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_38_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_control_system_test_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_control_system_test_8h.html" target="_self">ControlSystemTest.h</a></td><td class="desc"></td></tr>
<tr id="row_0_39_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_8cpp_source.html"><span class="icondoc"></span></a><b>DataReport.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_8h_source.html"><span class="icondoc"></span></a><b>DataReport.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_40_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_data_report_8h.html" target="_self">DataReport.h</a></td><td class="desc"></td></tr>
<tr id="row_0_41_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_base_8cpp_source.html"><span class="icondoc"></span></a><b>DataReportBase.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_42_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_base_8h_source.html"><span class="icondoc"></span></a><b>DataReportBase.h</b></td><td class="desc"></td></tr>
<tr id="row_0_43_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_data_report_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>DataReportBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_44_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_degrees_and_radians_8h_source.html"><span class="icondoc"></span></a><b>DegreesAndRadians.h</b></td><td class="desc"></td></tr>
<tr id="row_0_45_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electric_calculation_8cpp_source.html"><span class="icondoc"></span></a><b>ElectricCalculation.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electric_calculation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_electric_calculation_8h.html" target="_self">ElectricCalculation.h</a></td><td class="desc">Base class of electric calculations, with general methods </td></tr>
+<tr id="row_0_46_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electric_calculation_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_electric_calculation_8h.html" target="_self">ElectricCalculation.h</a></td><td class="desc"></td></tr>
<tr id="row_0_47_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electromechanical_8cpp_source.html"><span class="icondoc"></span></a><b>Electromechanical.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electromechanical_8h_source.html"><span class="icondoc"></span></a><b>Electromechanical.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_48_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_electromechanical_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_electromechanical_8h.html" target="_self">Electromechanical.h</a></td><td class="desc"></td></tr>
<tr id="row_0_49_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_8cpp_source.html"><span class="icondoc"></span></a><b>Element.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_element_8h.html" target="_self">Element.h</a></td><td class="desc">Class to manage color of OpenGL </td></tr>
+<tr id="row_0_50_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_element_8h.html" target="_self">Element.h</a></td><td class="desc"></td></tr>
<tr id="row_0_51_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_data_object_8cpp_source.html"><span class="icondoc"></span></a><b>ElementDataObject.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_data_object_8h_source.html"><span class="icondoc"></span></a><b>ElementDataObject.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_52_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_data_object_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_element_data_object_8h.html" target="_self">ElementDataObject.h</a></td><td class="desc"></td></tr>
<tr id="row_0_53_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_form_8cpp_source.html"><span class="icondoc"></span></a><b>ElementForm.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_54_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_form_8h_source.html"><span class="icondoc"></span></a><b>ElementForm.h</b></td><td class="desc"></td></tr>
<tr id="row_0_55_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_form_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>ElementFormBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_56_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_plot_data_8cpp_source.html"><span class="icondoc"></span></a><b>ElementPlotData.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_plot_data_8h_source.html"><span class="icondoc"></span></a><b>ElementPlotData.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_57_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_element_plot_data_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_element_plot_data_8h.html" target="_self">ElementPlotData.h</a></td><td class="desc"></td></tr>
<tr id="row_0_58_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_8cpp_source.html"><span class="icondoc"></span></a><b>Exponential.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_8h_source.html"><span class="icondoc"></span></a><b>Exponential.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_59_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_exponential_8h.html" target="_self">Exponential.h</a></td><td class="desc"></td></tr>
<tr id="row_0_60_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_form_8cpp_source.html"><span class="icondoc"></span></a><b>ExponentialForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_form_8h_source.html"><span class="icondoc"></span></a><b>ExponentialForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_61_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_exponential_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_exponential_form_8h.html" target="_self">ExponentialForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_62_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_fault_8cpp_source.html"><span class="icondoc"></span></a><b>Fault.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_fault_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_fault_8h.html" target="_self">Fault.h</a></td><td class="desc">Calculate the fault of the system and update the elements data </td></tr>
+<tr id="row_0_63_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_fault_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_fault_8h.html" target="_self">Fault.h</a></td><td class="desc"></td></tr>
<tr id="row_0_64_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_file_handing_8cpp_source.html"><span class="icondoc"></span></a><b>FileHanding.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_file_handing_8h_source.html"><span class="icondoc"></span></a><b>FileHanding.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_65_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_file_handing_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_file_handing_8h.html" target="_self">FileHanding.h</a></td><td class="desc"></td></tr>
<tr id="row_0_66_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_8cpp_source.html"><span class="icondoc"></span></a><b>Gain.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_8h_source.html"><span class="icondoc"></span></a><b>Gain.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_67_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_gain_8h.html" target="_self">Gain.h</a></td><td class="desc"></td></tr>
<tr id="row_0_68_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_form_8cpp_source.html"><span class="icondoc"></span></a><b>GainForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_form_8h_source.html"><span class="icondoc"></span></a><b>GainForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_69_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_gain_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_gain_form_8h.html" target="_self">GainForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_70_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_general_properties_form_8cpp_source.html"><span class="icondoc"></span></a><b>GeneralPropertiesForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_general_properties_form_8h_source.html"><span class="icondoc"></span></a><b>GeneralPropertiesForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_71_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_general_properties_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_general_properties_form_8h.html" target="_self">GeneralPropertiesForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_72_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_generator_stab_form_8cpp_source.html"><span class="icondoc"></span></a><b>GeneratorStabForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_generator_stab_form_8h_source.html"><span class="icondoc"></span></a><b>GeneratorStabForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_73_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_generator_stab_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_generator_stab_form_8h.html" target="_self">GeneratorStabForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_74_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_graphical_element_8cpp_source.html"><span class="icondoc"></span></a><b>GraphicalElement.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_graphical_element_8h_source.html"><span class="icondoc"></span></a><b>GraphicalElement.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_75_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_graphical_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_graphical_element_8h.html" target="_self">GraphicalElement.h</a></td><td class="desc"></td></tr>
<tr id="row_0_76_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_8cpp_source.html"><span class="icondoc"></span></a><b>IndMotor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_8h_source.html"><span class="icondoc"></span></a><b>IndMotor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_77_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_ind_motor_8h.html" target="_self">IndMotor.h</a></td><td class="desc"></td></tr>
<tr id="row_0_78_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_form_8cpp_source.html"><span class="icondoc"></span></a><b>IndMotorForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_form_8h_source.html"><span class="icondoc"></span></a><b>IndMotorForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_79_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_ind_motor_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_ind_motor_form_8h.html" target="_self">IndMotorForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_80_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_inductor_8cpp_source.html"><span class="icondoc"></span></a><b>Inductor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_inductor_8h_source.html"><span class="icondoc"></span></a><b>Inductor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_81_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_inductor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_inductor_8h.html" target="_self">Inductor.h</a></td><td class="desc"></td></tr>
<tr id="row_0_82_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_8cpp_source.html"><span class="icondoc"></span></a><b>IOControl.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_8h_source.html"><span class="icondoc"></span></a><b>IOControl.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_83_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_i_o_control_8h.html" target="_self">IOControl.h</a></td><td class="desc"></td></tr>
<tr id="row_0_84_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_form_8cpp_source.html"><span class="icondoc"></span></a><b>IOControlForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_form_8h_source.html"><span class="icondoc"></span></a><b>IOControlForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_85_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_i_o_control_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_i_o_control_form_8h.html" target="_self">IOControlForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_86_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_8cpp_source.html"><span class="icondoc"></span></a><b>Limiter.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_8h_source.html"><span class="icondoc"></span></a><b>Limiter.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_87_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_limiter_8h.html" target="_self">Limiter.h</a></td><td class="desc"></td></tr>
<tr id="row_0_88_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_form_8cpp_source.html"><span class="icondoc"></span></a><b>LimiterForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_form_8h_source.html"><span class="icondoc"></span></a><b>LimiterForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_89_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_limiter_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_limiter_form_8h.html" target="_self">LimiterForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_90_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_8cpp_source.html"><span class="icondoc"></span></a><b>Line.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_8h_source.html"><span class="icondoc"></span></a><b>Line.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_91_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_line_8h.html" target="_self">Line.h</a></td><td class="desc"></td></tr>
<tr id="row_0_92_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_form_8cpp_source.html"><span class="icondoc"></span></a><b>LineForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_form_8h_source.html"><span class="icondoc"></span></a><b>LineForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_93_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_line_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_line_form_8h.html" target="_self">LineForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_94_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_8cpp_source.html"><span class="icondoc"></span></a><b>Load.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_8h_source.html"><span class="icondoc"></span></a><b>Load.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_95_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_load_8h.html" target="_self">Load.h</a></td><td class="desc"></td></tr>
<tr id="row_0_96_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_form_8cpp_source.html"><span class="icondoc"></span></a><b>LoadForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_form_8h_source.html"><span class="icondoc"></span></a><b>LoadForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_97_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_load_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_load_form_8h.html" target="_self">LoadForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_98_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_machines_8cpp_source.html"><span class="icondoc"></span></a><b>Machines.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_machines_8h_source.html"><span class="icondoc"></span></a><b>Machines.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_99_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_machines_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_machines_8h.html" target="_self">Machines.h</a></td><td class="desc"></td></tr>
<tr id="row_0_100_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="main_8cpp_source.html"><span class="icondoc"></span></a><b>main.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_101_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_8cpp_source.html"><span class="icondoc"></span></a><b>MainFrame.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_8h_source.html"><span class="icondoc"></span></a><b>MainFrame.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_102_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_main_frame_8h.html" target="_self">MainFrame.h</a></td><td class="desc"></td></tr>
<tr id="row_0_103_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_base_8cpp_source.html"><span class="icondoc"></span></a><b>MainFrameBase.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_104_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_base_8h_source.html"><span class="icondoc"></span></a><b>MainFrameBase.h</b></td><td class="desc"></td></tr>
<tr id="row_0_105_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_main_frame_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>MainFrameBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_106_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_multiplier_8cpp_source.html"><span class="icondoc"></span></a><b>Multiplier.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_multiplier_8h_source.html"><span class="icondoc"></span></a><b>Multiplier.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_107_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_multiplier_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_multiplier_8h.html" target="_self">Multiplier.h</a></td><td class="desc"></td></tr>
<tr id="row_0_108_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_element_8cpp_source.html"><span class="icondoc"></span></a><b>PowerElement.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_power_element_8h.html" target="_self">PowerElement.h</a></td><td class="desc">Switching data of power elements </td></tr>
+<tr id="row_0_109_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_element_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_power_element_8h.html" target="_self">PowerElement.h</a></td><td class="desc"></td></tr>
<tr id="row_0_110_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_flow_8cpp_source.html"><span class="icondoc"></span></a><b>PowerFlow.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_flow_8h_source.html"><span class="icondoc"></span></a><b>PowerFlow.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_111_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_power_flow_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_power_flow_8h.html" target="_self">PowerFlow.h</a></td><td class="desc"></td></tr>
<tr id="row_0_112_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_data_8cpp_source.html"><span class="icondoc"></span></a><b>PropertiesData.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_data_8h_source.html"><span class="icondoc"></span></a><b>PropertiesData.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_113_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_data_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_properties_data_8h.html" target="_self">PropertiesData.h</a></td><td class="desc"></td></tr>
<tr id="row_0_114_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_form_8cpp_source.html"><span class="icondoc"></span></a><b>PropertiesForm.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_115_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_form_8h_source.html"><span class="icondoc"></span></a><b>PropertiesForm.h</b></td><td class="desc"></td></tr>
<tr id="row_0_116_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_properties_form_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>PropertiesFormBitmaps.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_117_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_8cpp_source.html"><span class="icondoc"></span></a><b>RateLimiter.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_118_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_8h_source.html"><span class="icondoc"></span></a><b>RateLimiter.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_118_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_rate_limiter_8h.html" target="_self">RateLimiter.h</a></td><td class="desc"></td></tr>
<tr id="row_0_119_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_form_8cpp_source.html"><span class="icondoc"></span></a><b>RateLimiterForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_120_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_form_8h_source.html"><span class="icondoc"></span></a><b>RateLimiterForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_120_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_rate_limiter_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_rate_limiter_form_8h.html" target="_self">RateLimiterForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_121_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_reactive_shunt_element_form_8cpp_source.html"><span class="icondoc"></span></a><b>ReactiveShuntElementForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_122_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_reactive_shunt_element_form_8h_source.html"><span class="icondoc"></span></a><b>ReactiveShuntElementForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_122_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_reactive_shunt_element_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_reactive_shunt_element_form_8h.html" target="_self">ReactiveShuntElementForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_123_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_shunt_8cpp_source.html"><span class="icondoc"></span></a><b>Shunt.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_124_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_shunt_8h_source.html"><span class="icondoc"></span></a><b>Shunt.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_124_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_shunt_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_shunt_8h.html" target="_self">Shunt.h</a></td><td class="desc"></td></tr>
<tr id="row_0_125_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_simulations_settings_form_8cpp_source.html"><span class="icondoc"></span></a><b>SimulationsSettingsForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_simulations_settings_form_8h_source.html"><span class="icondoc"></span></a><b>SimulationsSettingsForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_126_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_simulations_settings_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_simulations_settings_form_8h.html" target="_self">SimulationsSettingsForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_127_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_8cpp_source.html"><span class="icondoc"></span></a><b>Sum.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_8h_source.html"><span class="icondoc"></span></a><b>Sum.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_128_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sum_8h.html" target="_self">Sum.h</a></td><td class="desc"></td></tr>
<tr id="row_0_129_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_form_8cpp_source.html"><span class="icondoc"></span></a><b>SumForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_form_8h_source.html"><span class="icondoc"></span></a><b>SumForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_130_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sum_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sum_form_8h.html" target="_self">SumForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_131_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_switching_form_8cpp_source.html"><span class="icondoc"></span></a><b>SwitchingForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_switching_form_8h_source.html"><span class="icondoc"></span></a><b>SwitchingForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_132_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_switching_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_switching_form_8h.html" target="_self">SwitchingForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_133_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_generator_8cpp_source.html"><span class="icondoc"></span></a><b>SyncGenerator.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_134_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_generator_8h_source.html"><span class="icondoc"></span></a><b>SyncGenerator.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_134_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_generator_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sync_generator_8h.html" target="_self">SyncGenerator.h</a></td><td class="desc"></td></tr>
<tr id="row_0_135_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_machine_form_8cpp_source.html"><span class="icondoc"></span></a><b>SyncMachineForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_136_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_machine_form_8h_source.html"><span class="icondoc"></span></a><b>SyncMachineForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_136_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_machine_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sync_machine_form_8h.html" target="_self">SyncMachineForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_137_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_motor_8cpp_source.html"><span class="icondoc"></span></a><b>SyncMotor.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_138_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_motor_8h_source.html"><span class="icondoc"></span></a><b>SyncMotor.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_138_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_sync_motor_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_sync_motor_8h.html" target="_self">SyncMotor.h</a></td><td class="desc"></td></tr>
<tr id="row_0_139_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_8cpp_source.html"><span class="icondoc"></span></a><b>Text.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_140_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_8h_source.html"><span class="icondoc"></span></a><b>Text.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_140_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_text_8h.html" target="_self">Text.h</a></td><td class="desc"></td></tr>
<tr id="row_0_141_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_form_8cpp_source.html"><span class="icondoc"></span></a><b>TextForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_142_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_form_8h_source.html"><span class="icondoc"></span></a><b>TextForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_142_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_text_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_text_form_8h.html" target="_self">TextForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_143_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_8cpp_source.html"><span class="icondoc"></span></a><b>TransferFunction.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_144_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_8h_source.html"><span class="icondoc"></span></a><b>TransferFunction.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_144_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_transfer_function_8h.html" target="_self">TransferFunction.h</a></td><td class="desc"></td></tr>
<tr id="row_0_145_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_form_8cpp_source.html"><span class="icondoc"></span></a><b>TransferFunctionForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_146_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_form_8h_source.html"><span class="icondoc"></span></a><b>TransferFunctionForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_146_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transfer_function_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_transfer_function_form_8h.html" target="_self">TransferFunctionForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_147_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_8cpp_source.html"><span class="icondoc"></span></a><b>Transformer.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_148_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_8h_source.html"><span class="icondoc"></span></a><b>Transformer.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_148_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_transformer_8h.html" target="_self">Transformer.h</a></td><td class="desc"></td></tr>
<tr id="row_0_149_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_form_8cpp_source.html"><span class="icondoc"></span></a><b>TransformerForm.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_150_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_form_8h_source.html"><span class="icondoc"></span></a><b>TransformerForm.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_150_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_transformer_form_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_transformer_form_8h.html" target="_self">TransformerForm.h</a></td><td class="desc"></td></tr>
<tr id="row_0_151_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_8cpp_source.html"><span class="icondoc"></span></a><b>Workspace.cpp</b></td><td class="desc"></td></tr>
-<tr id="row_0_152_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_8h_source.html"><span class="icondoc"></span></a><b>Workspace.h</b></td><td class="desc"></td></tr>
+<tr id="row_0_152_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_8h_source.html"><span class="icondoc"></span></a><a class="el" href="_workspace_8h.html" target="_self">Workspace.h</a></td><td class="desc"></td></tr>
<tr id="row_0_153_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_base_8cpp_source.html"><span class="icondoc"></span></a><b>WorkspaceBase.cpp</b></td><td class="desc"></td></tr>
<tr id="row_0_154_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_base_8h_source.html"><span class="icondoc"></span></a><b>WorkspaceBase.h</b></td><td class="desc"></td></tr>
<tr id="row_0_155_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><a href="_workspace_bitmaps_8cpp_source.html"><span class="icondoc"></span></a><b>WorkspaceBitmaps.cpp</b></td><td class="desc"></td></tr>
diff --git a/docs/doxygen/html/functions.html b/docs/doxygen/html/functions.html
index 87942d3..d88ea1f 100644
--- a/docs/doxygen/html/functions.html
+++ b/docs/doxygen/html/functions.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_0x7e.html b/docs/doxygen/html/functions_0x7e.html
index 3b57d24..039d464 100644
--- a/docs/doxygen/html/functions_0x7e.html
+++ b/docs/doxygen/html/functions_0x7e.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -90,6 +96,9 @@ $(document).ready(function(){initNavTree('functions_0x7e.html','');});
<li>~Fault()
: <a class="el" href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault</a>
</li>
+<li>~MainFrame()
+: <a class="el" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">MainFrame</a>
+</li>
<li>~OpenGLColour()
: <a class="el" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">OpenGLColour</a>
</li>
diff --git a/docs/doxygen/html/functions_b.html b/docs/doxygen/html/functions_b.html
index 5a50ef8..37a86ac 100644
--- a/docs/doxygen/html/functions_b.html
+++ b/docs/doxygen/html/functions_b.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_c.html b/docs/doxygen/html/functions_c.html
index ac040a0..9d54d8a 100644
--- a/docs/doxygen/html/functions_c.html
+++ b/docs/doxygen/html/functions_c.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -91,6 +97,9 @@ $(document).ready(function(){initNavTree('functions_c.html','');});
<li>CalculatePowerFlowPts()
: <a class="el" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement</a>
</li>
+<li>CalculateSpaceState()
+: <a class="el" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction</a>
+</li>
<li>consolidate()
: <a class="el" href="classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4">wxGLNumberRenderer</a>
, <a class="el" href="classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55">wxGLString</a>
diff --git a/docs/doxygen/html/functions_d.html b/docs/doxygen/html/functions_d.html
index c5d1285..22efd8e 100644
--- a/docs/doxygen/html/functions_d.html
+++ b/docs/doxygen/html/functions_d.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_dup.js b/docs/doxygen/html/functions_dup.js
index fbb7b94..0478871 100644
--- a/docs/doxygen/html/functions_dup.js
+++ b/docs/doxygen/html/functions_dup.js
@@ -17,5 +17,6 @@ var functions_dup =
[ "s", "functions_s.html", null ],
[ "u", "functions_u.html", null ],
[ "w", "functions_w.html", null ],
+ [ "x", "functions_x.html", null ],
[ "~", "functions_0x7e.html", null ]
]; \ No newline at end of file
diff --git a/docs/doxygen/html/functions_e.html b/docs/doxygen/html/functions_e.html
index 2190b7b..2f9eccf 100644
--- a/docs/doxygen/html/functions_e.html
+++ b/docs/doxygen/html/functions_e.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -81,12 +87,18 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
<h3><a id="index_e"></a>- e -</h3><ul>
+<li>ed
+: <a class="el" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">SyncMachineModelData</a>
+</li>
<li>ElectricCalculation()
: <a class="el" href="class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70">ElectricCalculation</a>
</li>
<li>Element()
: <a class="el" href="class_element.html#ab0d0e20be9a36ae676202db753faeec9">Element</a>
</li>
+<li>eq
+: <a class="el" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">SyncMachineModelData</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/functions_f.html b/docs/doxygen/html/functions_f.html
index e02fa0a..abaf0b0 100644
--- a/docs/doxygen/html/functions_f.html
+++ b/docs/doxygen/html/functions_f.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func.html b/docs/doxygen/html/functions_func.html
index 43ec58f..47ba1b5 100644
--- a/docs/doxygen/html/functions_func.html
+++ b/docs/doxygen/html/functions_func.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_0x7e.html b/docs/doxygen/html/functions_func_0x7e.html
index ec04ab7..32db6a2 100644
--- a/docs/doxygen/html/functions_func_0x7e.html
+++ b/docs/doxygen/html/functions_func_0x7e.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -90,6 +96,9 @@ $(document).ready(function(){initNavTree('functions_func_0x7e.html','');});
<li>~Fault()
: <a class="el" href="class_fault.html#a42019654142cd8187b314e43d70262eb">Fault</a>
</li>
+<li>~MainFrame()
+: <a class="el" href="class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11">MainFrame</a>
+</li>
<li>~OpenGLColour()
: <a class="el" href="class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0">OpenGLColour</a>
</li>
diff --git a/docs/doxygen/html/functions_func_b.html b/docs/doxygen/html/functions_func_b.html
index eac5c8a..c756e0d 100644
--- a/docs/doxygen/html/functions_func_b.html
+++ b/docs/doxygen/html/functions_func_b.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_c.html b/docs/doxygen/html/functions_func_c.html
index 5e24983..706a777 100644
--- a/docs/doxygen/html/functions_func_c.html
+++ b/docs/doxygen/html/functions_func_c.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -88,6 +94,9 @@ $(document).ready(function(){initNavTree('functions_func_c.html','');});
<li>CalculatePowerFlowPts()
: <a class="el" href="class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e">PowerElement</a>
</li>
+<li>CalculateSpaceState()
+: <a class="el" href="class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a">TransferFunction</a>
+</li>
<li>consolidate()
: <a class="el" href="classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4">wxGLNumberRenderer</a>
, <a class="el" href="classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55">wxGLString</a>
diff --git a/docs/doxygen/html/functions_func_d.html b/docs/doxygen/html/functions_func_d.html
index 55cf683..0c8d85f 100644
--- a/docs/doxygen/html/functions_func_d.html
+++ b/docs/doxygen/html/functions_func_d.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_e.html b/docs/doxygen/html/functions_func_e.html
index 354dfde..9629404 100644
--- a/docs/doxygen/html/functions_func_e.html
+++ b/docs/doxygen/html/functions_func_e.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_f.html b/docs/doxygen/html/functions_func_f.html
index 200f223..9e5d825 100644
--- a/docs/doxygen/html/functions_func_f.html
+++ b/docs/doxygen/html/functions_func_f.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_g.html b/docs/doxygen/html/functions_func_g.html
index 3c6571b..9990e70 100644
--- a/docs/doxygen/html/functions_func_g.html
+++ b/docs/doxygen/html/functions_func_g.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_h.html b/docs/doxygen/html/functions_func_h.html
index 97d8a98..fb6ab85 100644
--- a/docs/doxygen/html/functions_func_h.html
+++ b/docs/doxygen/html/functions_func_h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_i.html b/docs/doxygen/html/functions_func_i.html
index e65ea25..994ffa1 100644
--- a/docs/doxygen/html/functions_func_i.html
+++ b/docs/doxygen/html/functions_func_i.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_m.html b/docs/doxygen/html/functions_func_m.html
index 7f25004..059247f 100644
--- a/docs/doxygen/html/functions_func_m.html
+++ b/docs/doxygen/html/functions_func_m.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -81,6 +87,9 @@ $(document).ready(function(){initNavTree('functions_func_m.html','');});
&#160;
<h3><a id="index_m"></a>- m -</h3><ul>
+<li>MainFrame()
+: <a class="el" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a>
+</li>
<li>Move()
: <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>
, <a class="el" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine</a>
diff --git a/docs/doxygen/html/functions_func_n.html b/docs/doxygen/html/functions_func_n.html
index 68647c1..0092d43 100644
--- a/docs/doxygen/html/functions_func_n.html
+++ b/docs/doxygen/html/functions_func_n.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_o.html b/docs/doxygen/html/functions_func_o.html
index 6562f3f..cbc1792 100644
--- a/docs/doxygen/html/functions_func_o.html
+++ b/docs/doxygen/html/functions_func_o.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_p.html b/docs/doxygen/html/functions_func_p.html
index ea93c75..1fc08c0 100644
--- a/docs/doxygen/html/functions_func_p.html
+++ b/docs/doxygen/html/functions_func_p.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_r.html b/docs/doxygen/html/functions_func_r.html
index 63a3e70..5e4cecb 100644
--- a/docs/doxygen/html/functions_func_r.html
+++ b/docs/doxygen/html/functions_func_r.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_s.html b/docs/doxygen/html/functions_func_s.html
index 5d1cb9f..79aa81a 100644
--- a/docs/doxygen/html/functions_func_s.html
+++ b/docs/doxygen/html/functions_func_s.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -176,6 +182,12 @@ $(document).ready(function(){initNavTree('functions_func_s.html','');});
<li>ShowPickbox()
: <a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element</a>
</li>
+<li>Solve()
+: <a class="el" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Exponential</a>
+, <a class="el" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Gain</a>
+, <a class="el" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">RateLimiter</a>
+, <a class="el" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">TransferFunction</a>
+</li>
<li>StartMove()
: <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch</a>
, <a class="el" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine</a>
diff --git a/docs/doxygen/html/functions_func_u.html b/docs/doxygen/html/functions_func_u.html
index 00adefe..78e4a3f 100644
--- a/docs/doxygen/html/functions_func_u.html
+++ b/docs/doxygen/html/functions_func_u.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_func_w.html b/docs/doxygen/html/functions_func_w.html
index 3f86c30..b9ae11f 100644
--- a/docs/doxygen/html/functions_func_w.html
+++ b/docs/doxygen/html/functions_func_w.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_g.html b/docs/doxygen/html/functions_g.html
index 196387f..5ea6bb4 100644
--- a/docs/doxygen/html/functions_g.html
+++ b/docs/doxygen/html/functions_g.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_h.html b/docs/doxygen/html/functions_h.html
index 578f5d1..a89a4ae 100644
--- a/docs/doxygen/html/functions_h.html
+++ b/docs/doxygen/html/functions_h.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_i.html b/docs/doxygen/html/functions_i.html
index 275eca4..62654ab 100644
--- a/docs/doxygen/html/functions_i.html
+++ b/docs/doxygen/html/functions_i.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_m.html b/docs/doxygen/html/functions_m.html
index 22b0427..2287903 100644
--- a/docs/doxygen/html/functions_m.html
+++ b/docs/doxygen/html/functions_m.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -84,6 +90,9 @@ $(document).ready(function(){initNavTree('functions_m.html','');});
<li>m
: <a class="el" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">IntegrationConstant</a>
</li>
+<li>MainFrame()
+: <a class="el" href="class_main_frame.html#a667b44053cae174a361cfd21124ef995">MainFrame</a>
+</li>
<li>Move()
: <a class="el" href="class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70">Branch</a>
, <a class="el" href="class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7">ConnectionLine</a>
diff --git a/docs/doxygen/html/functions_n.html b/docs/doxygen/html/functions_n.html
index 4ef753d..d184509 100644
--- a/docs/doxygen/html/functions_n.html
+++ b/docs/doxygen/html/functions_n.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_o.html b/docs/doxygen/html/functions_o.html
index 8d61f81..00eb930 100644
--- a/docs/doxygen/html/functions_o.html
+++ b/docs/doxygen/html/functions_o.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_p.html b/docs/doxygen/html/functions_p.html
index 336cb9d..7344a84 100644
--- a/docs/doxygen/html/functions_p.html
+++ b/docs/doxygen/html/functions_p.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_r.html b/docs/doxygen/html/functions_r.html
index bb33999..83e1ddf 100644
--- a/docs/doxygen/html/functions_r.html
+++ b/docs/doxygen/html/functions_r.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_s.html b/docs/doxygen/html/functions_s.html
index 4ff8fc5..b03c704 100644
--- a/docs/doxygen/html/functions_s.html
+++ b/docs/doxygen/html/functions_s.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -176,6 +182,12 @@ $(document).ready(function(){initNavTree('functions_s.html','');});
<li>ShowPickbox()
: <a class="el" href="class_element.html#ab8bf35b4a205fa58772402cea7fad89c">Element</a>
</li>
+<li>Solve()
+: <a class="el" href="class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f">Exponential</a>
+, <a class="el" href="class_gain.html#a282cab6d339aa89a35c775bbea2aa117">Gain</a>
+, <a class="el" href="class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29">RateLimiter</a>
+, <a class="el" href="class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798">TransferFunction</a>
+</li>
<li>StartMove()
: <a class="el" href="class_branch.html#a947cec45fcdc78d01eaabe19d23daf64">Branch</a>
, <a class="el" href="class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36">ConnectionLine</a>
diff --git a/docs/doxygen/html/functions_u.html b/docs/doxygen/html/functions_u.html
index e94d380..1cbccf5 100644
--- a/docs/doxygen/html/functions_u.html
+++ b/docs/doxygen/html/functions_u.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_vars.html b/docs/doxygen/html/functions_vars.html
index 9192693..dad8f11 100644
--- a/docs/doxygen/html/functions_vars.html
+++ b/docs/doxygen/html/functions_vars.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,6 +88,12 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>c
: <a class="el" href="struct_integration_constant.html#afc3598097377951b84492d087a06b455">IntegrationConstant</a>
</li>
+<li>ed
+: <a class="el" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">SyncMachineModelData</a>
+</li>
+<li>eq
+: <a class="el" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">SyncMachineModelData</a>
+</li>
<li>m
: <a class="el" href="struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65">IntegrationConstant</a>
</li>
@@ -91,6 +103,12 @@ $(document).ready(function(){initNavTree('functions_vars.html','');});
<li>swType
: <a class="el" href="struct_switching_data.html#af78fb958137a0532ea2a584810708574">SwitchingData</a>
</li>
+<li>xd
+: <a class="el" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">SyncMachineModelData</a>
+</li>
+<li>xq
+: <a class="el" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">SyncMachineModelData</a>
+</li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
diff --git a/docs/doxygen/html/functions_w.html b/docs/doxygen/html/functions_w.html
index 7cb51ad..4fcee61 100644
--- a/docs/doxygen/html/functions_w.html
+++ b/docs/doxygen/html/functions_w.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/functions_x.html b/docs/doxygen/html/functions_x.html
new file mode 100644
index 0000000..7782f52
--- /dev/null
+++ b/docs/doxygen/html/functions_x.html
@@ -0,0 +1,108 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Class Members</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('functions_x.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="contents">
+<div class="textblock">Here is a list of all documented class members with links to the class documentation for each member:</div>
+
+<h3><a id="index_x"></a>- x -</h3><ul>
+<li>xd
+: <a class="el" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">SyncMachineModelData</a>
+</li>
+<li>xq
+: <a class="el" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">SyncMachineModelData</a>
+</li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/globals.html b/docs/doxygen/html/globals.html
index 19ade4d..43a7bc4 100644
--- a/docs/doxygen/html/globals.html
+++ b/docs/doxygen/html/globals.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/globals_enum.html b/docs/doxygen/html/globals_enum.html
index 85e484a..ffbca27 100644
--- a/docs/doxygen/html/globals_enum.html
+++ b/docs/doxygen/html/globals_enum.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/globals_eval.html b/docs/doxygen/html/globals_eval.html
index ea8fc6e..c7a65f8 100644
--- a/docs/doxygen/html/globals_eval.html
+++ b/docs/doxygen/html/globals_eval.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/hierarchy.html b/docs/doxygen/html/hierarchy.html
index 762b63c..0ddc0a9 100644
--- a/docs/doxygen/html/hierarchy.html
+++ b/docs/doxygen/html/hierarchy.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -85,134 +91,136 @@ $(document).ready(function(){initNavTree('hierarchy.html','');});
<div class="textblock">This inheritance list is sorted roughly, but not completely, alphabetically:</div><div class="directory">
<div class="levels">[detail level <span onclick="javascript:toggleLevel(1);">1</span><span onclick="javascript:toggleLevel(2);">2</span><span onclick="javascript:toggleLevel(3);">3</span><span onclick="javascript:toggleLevel(4);">4</span>]</div><table class="directory">
<tr id="row_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_bus_electrical_data.html" target="_self">BusElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_camera.html" target="_self">Camera</a></td><td class="desc"></td></tr>
+<tr id="row_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_camera.html" target="_self">Camera</a></td><td class="desc">Class responsible for the correct visualization of the elements on screen </td></tr>
<tr id="row_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_capacitor_electrical_data.html" target="_self">CapacitorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_container.html" target="_self">ControlElementContainer</a></td><td class="desc"></td></tr>
-<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_solver.html" target="_self">ControlElementSolver</a></td><td class="desc"></td></tr>
-<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electric_calculation.html" target="_self">ElectricCalculation</a></td><td class="desc"></td></tr>
-<tr id="row_5_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electromechanical.html" target="_self">Electromechanical</a></td><td class="desc"></td></tr>
-<tr id="row_5_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fault.html" target="_self">Fault</a></td><td class="desc"></td></tr>
-<tr id="row_5_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_flow.html" target="_self">PowerFlow</a></td><td class="desc"></td></tr>
-<tr id="row_6_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element.html" target="_self">Element</a></td><td class="desc"></td></tr>
+<tr id="row_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_container.html" target="_self">ControlElementContainer</a></td><td class="desc">Class that can contain all control elements. Can identify (using RTTI) the elements from a generic list and store them separately </td></tr>
+<tr id="row_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_solver.html" target="_self">ControlElementSolver</a></td><td class="desc">Solves in the time the control system. Can solve the control system directly from a <a class="el" href="class_control_editor.html">ControlEditor</a> or from a ControlEditorElement </td></tr>
+<tr id="row_5_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_5_" class="arrow" onclick="toggleFolder('5_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electric_calculation.html" target="_self">ElectricCalculation</a></td><td class="desc">Base class of electric calculations, with general methods </td></tr>
+<tr id="row_5_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_electromechanical.html" target="_self">Electromechanical</a></td><td class="desc">Calculates the electromechanical transient based on disturbances (e.g. system fault) </td></tr>
+<tr id="row_5_1_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_fault.html" target="_self">Fault</a></td><td class="desc">Calculate the fault of the system and update the elements data </td></tr>
+<tr id="row_5_2_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_flow.html" target="_self">PowerFlow</a></td><td class="desc">Calculate the power flow </td></tr>
+<tr id="row_6_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_6_" class="arrow" onclick="toggleFolder('6_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element.html" target="_self">Element</a></td><td class="desc">Base class of all elements of the program. This class is responsible for manage graphical and his data </td></tr>
<tr id="row_6_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_6_0_" class="arrow" onclick="toggleFolder('6_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element.html" target="_self">ControlElement</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_connection_line.html" target="_self">ConnectionLine</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant.html" target="_self">Constant</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential.html" target="_self">Exponential</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain.html" target="_self">Gain</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control.html" target="_self">IOControl</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter.html" target="_self">Limiter</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_multiplier.html" target="_self">Multiplier</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter.html" target="_self">RateLimiter</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum.html" target="_self">Sum</a></td><td class="desc"></td></tr>
-<tr id="row_6_0_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function.html" target="_self">TransferFunction</a></td><td class="desc"></td></tr>
-<tr id="row_6_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_6_1_" class="arrow" onclick="toggleFolder('6_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_graphical_element.html" target="_self">GraphicalElement</a></td><td class="desc"></td></tr>
-<tr id="row_6_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text.html" target="_self">Text</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_6_2_" class="arrow" onclick="toggleFolder('6_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_element.html" target="_self">PowerElement</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_0_" class="arrow" onclick="toggleFolder('6_2_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_branch.html" target="_self">Branch</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line.html" target="_self">Line</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer.html" target="_self">Transformer</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus.html" target="_self">Bus</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_2_" class="arrow" onclick="toggleFolder('6_2_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_machines.html" target="_self">Machines</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_2_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor.html" target="_self">IndMotor</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_2_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_generator.html" target="_self">SyncGenerator</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_2_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_motor.html" target="_self">SyncMotor</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_3_" class="arrow" onclick="toggleFolder('6_2_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_shunt.html" target="_self">Shunt</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_3_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_capacitor.html" target="_self">Capacitor</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_3_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_inductor.html" target="_self">Inductor</a></td><td class="desc"></td></tr>
-<tr id="row_6_2_3_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load.html" target="_self">Load</a></td><td class="desc"></td></tr>
+<tr id="row_6_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_connection_line.html" target="_self">ConnectionLine</a></td><td class="desc">Connection between two control elements or other connection line and an element </td></tr>
+<tr id="row_6_0_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant.html" target="_self">Constant</a></td><td class="desc">A control element that provides a constant value </td></tr>
+<tr id="row_6_0_2_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential.html" target="_self">Exponential</a></td><td class="desc">Generates an output following an exponential function </td></tr>
+<tr id="row_6_0_3_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain.html" target="_self">Gain</a></td><td class="desc">Provide an output multiplying the input by a constant </td></tr>
+<tr id="row_6_0_4_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control.html" target="_self">IOControl</a></td><td class="desc">Provides the communication with the power element </td></tr>
+<tr id="row_6_0_5_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter.html" target="_self">Limiter</a></td><td class="desc">Limits the input value by superior and inferior values </td></tr>
+<tr id="row_6_0_6_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_multiplier.html" target="_self">Multiplier</a></td><td class="desc">Multiplies two inputs </td></tr>
+<tr id="row_6_0_7_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter.html" target="_self">RateLimiter</a></td><td class="desc">Limits the rising and/or falling rate.<br />
+ </td></tr>
+<tr id="row_6_0_8_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum.html" target="_self">Sum</a></td><td class="desc"><a class="el" href="class_sum.html" title="Sum the all inputs (can choose the input signal). ">Sum</a> the all inputs (can choose the input signal) </td></tr>
+<tr id="row_6_0_9_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function.html" target="_self">TransferFunction</a></td><td class="desc">Calculates the time response by a frequency domain transfer function </td></tr>
+<tr id="row_6_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_6_1_" class="arrow" onclick="toggleFolder('6_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_graphical_element.html" target="_self">GraphicalElement</a></td><td class="desc">Abstract class for graphical elements shown with power elements in workspace </td></tr>
+<tr id="row_6_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text.html" target="_self">Text</a></td><td class="desc"><a class="el" href="class_element.html" title="Base class of all elements of the program. This class is responsible for manage graphical and his dat...">Element</a> that shows power element informations in workspace </td></tr>
+<tr id="row_6_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_6_2_" class="arrow" onclick="toggleFolder('6_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_power_element.html" target="_self">PowerElement</a></td><td class="desc">Abstract class of power elements </td></tr>
+<tr id="row_6_2_0_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_0_" class="arrow" onclick="toggleFolder('6_2_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_branch.html" target="_self">Branch</a></td><td class="desc">Abstract class for branch power elements </td></tr>
+<tr id="row_6_2_0_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line.html" target="_self">Line</a></td><td class="desc">Power line element </td></tr>
+<tr id="row_6_2_0_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer.html" target="_self">Transformer</a></td><td class="desc">Two-winding transformer power element </td></tr>
+<tr id="row_6_2_1_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus.html" target="_self">Bus</a></td><td class="desc"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> for power elements. All others power elements are connected through this </td></tr>
+<tr id="row_6_2_2_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_2_" class="arrow" onclick="toggleFolder('6_2_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_machines.html" target="_self">Machines</a></td><td class="desc">Abstract class for rotary machines power elements </td></tr>
+<tr id="row_6_2_2_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor.html" target="_self">IndMotor</a></td><td class="desc">Induction motor power element </td></tr>
+<tr id="row_6_2_2_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_generator.html" target="_self">SyncGenerator</a></td><td class="desc">Synchronous generator power element </td></tr>
+<tr id="row_6_2_2_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_motor.html" target="_self">SyncMotor</a></td><td class="desc">Synchronous motor (synchronous compensator) power element </td></tr>
+<tr id="row_6_2_3_" style="display:none;"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span id="arr_6_2_3_" class="arrow" onclick="toggleFolder('6_2_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_shunt.html" target="_self">Shunt</a></td><td class="desc">Abstract class for shunt power elements </td></tr>
+<tr id="row_6_2_3_0_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_capacitor.html" target="_self">Capacitor</a></td><td class="desc"><a class="el" href="class_shunt.html" title="Abstract class for shunt power elements. ">Shunt</a> capactior power element </td></tr>
+<tr id="row_6_2_3_1_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_inductor.html" target="_self">Inductor</a></td><td class="desc"><a class="el" href="class_inductor.html" title="Inductor shunt power element. ">Inductor</a> shunt power element </td></tr>
+<tr id="row_6_2_3_2_" style="display:none;"><td class="entry"><span style="width:64px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load.html" target="_self">Load</a></td><td class="desc">Loas shunt power element </td></tr>
<tr id="row_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_plot_data.html" target="_self">ElementPlotData</a></td><td class="desc"></td></tr>
<tr id="row_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_elements_lists.html" target="_self">ElementsLists</a></td><td class="desc"></td></tr>
-<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_file_handing.html" target="_self">FileHanding</a></td><td class="desc"></td></tr>
+<tr id="row_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_file_handing.html" target="_self">FileHanding</a></td><td class="desc">Save and opens the projects created on disk </td></tr>
<tr id="row_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_general_data.html" target="_self">GeneralData</a></td><td class="desc"></td></tr>
<tr id="row_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_ind_motor_electrical_data.html" target="_self">IndMotorElectricalData</a></td><td class="desc"></td></tr>
<tr id="row_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_inductor_electrical_data.html" target="_self">InductorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_integration_constant.html" target="_self">IntegrationConstant</a></td><td class="desc"></td></tr>
+<tr id="row_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_integration_constant.html" target="_self">IntegrationConstant</a></td><td class="desc">Integration constants to calculate dynamic elements through trapezoidal integration method </td></tr>
<tr id="row_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_line_electrical_data.html" target="_self">LineElectricalData</a></td><td class="desc"></td></tr>
<tr id="row_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_load_electrical_data.html" target="_self">LoadElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_node.html" target="_self">Node</a></td><td class="desc"></td></tr>
-<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_open_g_l_colour.html" target="_self">OpenGLColour</a></td><td class="desc"></td></tr>
-<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_properties_data.html" target="_self">PropertiesData</a></td><td class="desc"></td></tr>
+<tr id="row_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_node.html" target="_self">Node</a></td><td class="desc"><a class="el" href="class_node.html" title="Node of a control element. This class manages the user interaction with the connection and control el...">Node</a> of a control element. This class manages the user interaction with the connection and control elements </td></tr>
+<tr id="row_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_open_g_l_colour.html" target="_self">OpenGLColour</a></td><td class="desc">Class to manage color of OpenGL </td></tr>
+<tr id="row_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_properties_data.html" target="_self">PropertiesData</a></td><td class="desc">General and simulation data manager </td></tr>
<tr id="row_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_reactive_limits.html" target="_self">ReactiveLimits</a></td><td class="desc"></td></tr>
<tr id="row_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_simulation_data.html" target="_self">SimulationData</a></td><td class="desc"></td></tr>
<tr id="row_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transfer_function_1_1_space_state.html" target="_self">TransferFunction::SpaceState</a></td><td class="desc"></td></tr>
-<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_switching_data.html" target="_self">SwitchingData</a></td><td class="desc"></td></tr>
+<tr id="row_22_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_switching_data.html" target="_self">SwitchingData</a></td><td class="desc">Switching data of power elements </td></tr>
<tr id="row_23_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_generator_electrical_data.html" target="_self">SyncGeneratorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_motor_electrical_data.html" target="_self">SyncMotorElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_25_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_25_" class="arrow" onclick="toggleFolder('25_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_g_l_drawable.html" target="_self">TextGLDrawable</a></td><td class="desc"></td></tr>
-<tr id="row_25_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_25_0_" class="arrow" onclick="toggleFolder('25_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
-<tr id="row_25_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_number_renderer.html" target="_self">wxGLNumberRenderer</a></td><td class="desc"></td></tr>
-<tr id="row_26_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_texture.html" target="_self">TextTexture</a></td><td class="desc"></td></tr>
-<tr id="row_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transformer_electrical_data.html" target="_self">TransformerElectricalData</a></td><td class="desc"></td></tr>
-<tr id="row_28_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_28_" class="arrow" onclick="toggleFolder('28_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxApp</b></td><td class="desc"></td></tr>
-<tr id="row_28_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_app.html" target="_self">MainApp</a></td><td class="desc"></td></tr>
-<tr id="row_29_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_29_" class="arrow" onclick="toggleFolder('29_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxDataObjectSimple</b></td><td class="desc"></td></tr>
-<tr id="row_29_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_data_object.html" target="_self">ElementDataObject</a></td><td class="desc"></td></tr>
-<tr id="row_30_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_30_" class="arrow" onclick="toggleFolder('30_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxDialog</b></td><td class="desc"></td></tr>
-<tr id="row_30_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_0_" class="arrow" onclick="toggleFolder('30_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form_base.html" target="_self">AboutFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form.html" target="_self">AboutForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_1_" class="arrow" onclick="toggleFolder('30_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form_base.html" target="_self">BusFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form.html" target="_self">BusForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_2_" class="arrow" onclick="toggleFolder('30_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form_base.html" target="_self">ConstantFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form.html" target="_self">ConstantForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_3_" class="arrow" onclick="toggleFolder('30_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test_base.html" target="_self">ControlSystemTestBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test.html" target="_self">ControlSystemTest</a></td><td class="desc"></td></tr>
-<tr id="row_30_4_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_4_" class="arrow" onclick="toggleFolder('30_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form_base.html" target="_self">ExponentialFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_4_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form.html" target="_self">ExponentialForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_5_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_5_" class="arrow" onclick="toggleFolder('30_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form_base.html" target="_self">GainFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_5_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form.html" target="_self">GainForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_6_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_6_" class="arrow" onclick="toggleFolder('30_6_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form_base.html" target="_self">GeneralPropertiesFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_6_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form.html" target="_self">GeneralPropertiesForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_7_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_7_" class="arrow" onclick="toggleFolder('30_7_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form_base.html" target="_self">GeneratorStabFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_7_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form.html" target="_self">GeneratorStabForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_8_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_8_" class="arrow" onclick="toggleFolder('30_8_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form_base.html" target="_self">IndMotorFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_8_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form.html" target="_self">IndMotorForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_9_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_9_" class="arrow" onclick="toggleFolder('30_9_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form_base.html" target="_self">IOControlFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_9_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form.html" target="_self">IOControlForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_10_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_10_" class="arrow" onclick="toggleFolder('30_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form_base.html" target="_self">LimiterFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_10_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form.html" target="_self">LimiterForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_11_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_11_" class="arrow" onclick="toggleFolder('30_11_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form_base.html" target="_self">LineFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_11_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form.html" target="_self">LineForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_12_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_12_" class="arrow" onclick="toggleFolder('30_12_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form_base.html" target="_self">LoadFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_12_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form.html" target="_self">LoadForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_13_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_13_" class="arrow" onclick="toggleFolder('30_13_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form_base.html" target="_self">RateLimiterFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_13_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form.html" target="_self">RateLimiterForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_14_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_14_" class="arrow" onclick="toggleFolder('30_14_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form_base.html" target="_self">ReactiveShuntElementFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_14_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form.html" target="_self">ReactiveShuntElementForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_15_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_15_" class="arrow" onclick="toggleFolder('30_15_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form_base.html" target="_self">SimulationsSettingsFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_15_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form.html" target="_self">SimulationsSettingsForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_16_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_16_" class="arrow" onclick="toggleFolder('30_16_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form_base.html" target="_self">SumFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_16_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form.html" target="_self">SumForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_17_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_17_" class="arrow" onclick="toggleFolder('30_17_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form_base.html" target="_self">SwitchingFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_17_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form.html" target="_self">SwitchingForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_18_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_18_" class="arrow" onclick="toggleFolder('30_18_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form_base.html" target="_self">SyncMachineFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_18_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form.html" target="_self">SyncMachineForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_19_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_19_" class="arrow" onclick="toggleFolder('30_19_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form_base.html" target="_self">TextFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_19_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form.html" target="_self">TextForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_20_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_20_" class="arrow" onclick="toggleFolder('30_20_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form_base.html" target="_self">TransferFunctionFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_20_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form.html" target="_self">TransferFunctionForm</a></td><td class="desc"></td></tr>
-<tr id="row_30_21_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_30_21_" class="arrow" onclick="toggleFolder('30_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form_base.html" target="_self">TransformerFormBase</a></td><td class="desc"></td></tr>
-<tr id="row_30_21_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form.html" target="_self">TransformerForm</a></td><td class="desc"></td></tr>
-<tr id="row_31_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_31_" class="arrow" onclick="toggleFolder('31_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxFrame</b></td><td class="desc"></td></tr>
-<tr id="row_31_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_0_" class="arrow" onclick="toggleFolder('31_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view_base.html" target="_self">ChartViewBase</a></td><td class="desc"></td></tr>
-<tr id="row_31_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view.html" target="_self">ChartView</a></td><td class="desc"></td></tr>
-<tr id="row_31_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_1_" class="arrow" onclick="toggleFolder('31_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor_base.html" target="_self">ControlEditorBase</a></td><td class="desc"></td></tr>
-<tr id="row_31_1_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor.html" target="_self">ControlEditor</a></td><td class="desc"></td></tr>
-<tr id="row_31_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_2_" class="arrow" onclick="toggleFolder('31_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report_base.html" target="_self">DataReportBase</a></td><td class="desc"></td></tr>
-<tr id="row_31_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report.html" target="_self">DataReport</a></td><td class="desc"></td></tr>
-<tr id="row_31_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_3_" class="arrow" onclick="toggleFolder('31_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame_base.html" target="_self">MainFrameBase</a></td><td class="desc"></td></tr>
-<tr id="row_31_3_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame.html" target="_self">MainFrame</a></td><td class="desc"></td></tr>
-<tr id="row_32_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string_array.html" target="_self">wxGLStringArray</a></td><td class="desc"></td></tr>
-<tr id="row_33_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_33_" class="arrow" onclick="toggleFolder('33_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxPanel</b></td><td class="desc"></td></tr>
-<tr id="row_33_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_33_0_" class="arrow" onclick="toggleFolder('33_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace_base.html" target="_self">WorkspaceBase</a></td><td class="desc"></td></tr>
-<tr id="row_33_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace.html" target="_self">Workspace</a></td><td class="desc"></td></tr>
-<tr id="row_34_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxRibbonMSWArtProvider</b></td><td class="desc"></td></tr>
-<tr id="row_34_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_ribbon_metro_art_provider.html" target="_self">wxRibbonMetroArtProvider</a></td><td class="desc"></td></tr>
-<tr id="row_35_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_35_" class="arrow" onclick="toggleFolder('35_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxString</b></td><td class="desc"></td></tr>
-<tr id="row_35_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
-<tr id="row_36_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_36_" class="arrow" onclick="toggleFolder('36_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxTreeItemData</b></td><td class="desc"></td></tr>
-<tr id="row_36_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_plot_data.html" target="_self">PlotData</a></td><td class="desc"></td></tr>
-<tr id="row_37_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_37_" class="arrow" onclick="toggleFolder('37_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxWindow</b></td><td class="desc"></td></tr>
-<tr id="row_37_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_button.html" target="_self">ControlElementButton</a></td><td class="desc"></td></tr>
+<tr id="row_24_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_machine_model_data.html" target="_self">SyncMachineModelData</a></td><td class="desc">Synchronous machine data for different models </td></tr>
+<tr id="row_25_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_sync_motor_electrical_data.html" target="_self">SyncMotorElectricalData</a></td><td class="desc"></td></tr>
+<tr id="row_26_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_26_" class="arrow" onclick="toggleFolder('26_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_g_l_drawable.html" target="_self">TextGLDrawable</a></td><td class="desc"></td></tr>
+<tr id="row_26_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_26_0_" class="arrow" onclick="toggleFolder('26_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
+<tr id="row_26_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_number_renderer.html" target="_self">wxGLNumberRenderer</a></td><td class="desc"></td></tr>
+<tr id="row_27_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_texture.html" target="_self">TextTexture</a></td><td class="desc"></td></tr>
+<tr id="row_28_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="struct_transformer_electrical_data.html" target="_self">TransformerElectricalData</a></td><td class="desc"></td></tr>
+<tr id="row_29_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_29_" class="arrow" onclick="toggleFolder('29_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxApp</b></td><td class="desc"></td></tr>
+<tr id="row_29_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_app.html" target="_self">MainApp</a></td><td class="desc"></td></tr>
+<tr id="row_30_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_30_" class="arrow" onclick="toggleFolder('30_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxDataObjectSimple</b></td><td class="desc"></td></tr>
+<tr id="row_30_0_"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_element_data_object.html" target="_self">ElementDataObject</a></td><td class="desc">Class to store the elements in the clipboard </td></tr>
+<tr id="row_31_" class="even"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_31_" class="arrow" onclick="toggleFolder('31_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxDialog</b></td><td class="desc"></td></tr>
+<tr id="row_31_0_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_0_" class="arrow" onclick="toggleFolder('31_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form_base.html" target="_self">AboutFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_0_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_about_form.html" target="_self">AboutForm</a></td><td class="desc">Form to show some informations </td></tr>
+<tr id="row_31_1_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_1_" class="arrow" onclick="toggleFolder('31_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form_base.html" target="_self">BusFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_1_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_bus_form.html" target="_self">BusForm</a></td><td class="desc">Form to edit the bus power data </td></tr>
+<tr id="row_31_2_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_2_" class="arrow" onclick="toggleFolder('31_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form_base.html" target="_self">ConstantFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_2_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_constant_form.html" target="_self">ConstantForm</a></td><td class="desc">Form to edit the constant control data </td></tr>
+<tr id="row_31_3_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_3_" class="arrow" onclick="toggleFolder('31_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test_base.html" target="_self">ControlSystemTestBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_3_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_system_test.html" target="_self">ControlSystemTest</a></td><td class="desc">Form to edit properties to test the control system created </td></tr>
+<tr id="row_31_4_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_4_" class="arrow" onclick="toggleFolder('31_4_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form_base.html" target="_self">ExponentialFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_4_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_exponential_form.html" target="_self">ExponentialForm</a></td><td class="desc">Form to edit the exponential control data </td></tr>
+<tr id="row_31_5_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_5_" class="arrow" onclick="toggleFolder('31_5_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form_base.html" target="_self">GainFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_5_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_gain_form.html" target="_self">GainForm</a></td><td class="desc">Form to edit the gain control data </td></tr>
+<tr id="row_31_6_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_6_" class="arrow" onclick="toggleFolder('31_6_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form_base.html" target="_self">GeneralPropertiesFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_6_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_general_properties_form.html" target="_self">GeneralPropertiesForm</a></td><td class="desc">Form to edit the software's general data </td></tr>
+<tr id="row_31_7_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_7_" class="arrow" onclick="toggleFolder('31_7_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form_base.html" target="_self">GeneratorStabFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_7_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_generator_stab_form.html" target="_self">GeneratorStabForm</a></td><td class="desc">Form to edit the synchronous generator data for electromechanical studies </td></tr>
+<tr id="row_31_8_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_8_" class="arrow" onclick="toggleFolder('31_8_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form_base.html" target="_self">IndMotorFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_8_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_ind_motor_form.html" target="_self">IndMotorForm</a></td><td class="desc">Form to edit the induction motor power data </td></tr>
+<tr id="row_31_9_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_9_" class="arrow" onclick="toggleFolder('31_9_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form_base.html" target="_self">IOControlFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_9_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_i_o_control_form.html" target="_self">IOControlForm</a></td><td class="desc">Form to edit the input/output control data </td></tr>
+<tr id="row_31_10_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_10_" class="arrow" onclick="toggleFolder('31_10_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form_base.html" target="_self">LimiterFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_10_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_limiter_form.html" target="_self">LimiterForm</a></td><td class="desc">Form to edit the limit control data </td></tr>
+<tr id="row_31_11_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_11_" class="arrow" onclick="toggleFolder('31_11_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form_base.html" target="_self">LineFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_11_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_line_form.html" target="_self">LineForm</a></td><td class="desc">Form to edit the line power data </td></tr>
+<tr id="row_31_12_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_12_" class="arrow" onclick="toggleFolder('31_12_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form_base.html" target="_self">LoadFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_12_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_load_form.html" target="_self">LoadForm</a></td><td class="desc">Form to edit the load power data </td></tr>
+<tr id="row_31_13_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_13_" class="arrow" onclick="toggleFolder('31_13_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form_base.html" target="_self">RateLimiterFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_13_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_rate_limiter_form.html" target="_self">RateLimiterForm</a></td><td class="desc">Form to edit the rate limit control data </td></tr>
+<tr id="row_31_14_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_14_" class="arrow" onclick="toggleFolder('31_14_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form_base.html" target="_self">ReactiveShuntElementFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_14_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_reactive_shunt_element_form.html" target="_self">ReactiveShuntElementForm</a></td><td class="desc">Form to edit the reactive shunt element power data </td></tr>
+<tr id="row_31_15_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_15_" class="arrow" onclick="toggleFolder('31_15_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form_base.html" target="_self">SimulationsSettingsFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_15_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_simulations_settings_form.html" target="_self">SimulationsSettingsForm</a></td><td class="desc">Form to edit the simulation data </td></tr>
+<tr id="row_31_16_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_16_" class="arrow" onclick="toggleFolder('31_16_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form_base.html" target="_self">SumFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_16_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sum_form.html" target="_self">SumForm</a></td><td class="desc">Form to edit the sum control data </td></tr>
+<tr id="row_31_17_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_17_" class="arrow" onclick="toggleFolder('31_17_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form_base.html" target="_self">SwitchingFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_17_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_switching_form.html" target="_self">SwitchingForm</a></td><td class="desc">Form to edit the switching data of power elements for electromechanical transient studies </td></tr>
+<tr id="row_31_18_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_18_" class="arrow" onclick="toggleFolder('31_18_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form_base.html" target="_self">SyncMachineFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_18_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_sync_machine_form.html" target="_self">SyncMachineForm</a></td><td class="desc">Form to edit the synchronous machine power data </td></tr>
+<tr id="row_31_19_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_19_" class="arrow" onclick="toggleFolder('31_19_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form_base.html" target="_self">TextFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_19_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_text_form.html" target="_self">TextForm</a></td><td class="desc">Form to edit the text graphical data </td></tr>
+<tr id="row_31_20_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_20_" class="arrow" onclick="toggleFolder('31_20_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form_base.html" target="_self">TransferFunctionFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_20_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transfer_function_form.html" target="_self">TransferFunctionForm</a></td><td class="desc">Form to edit the transfer function control data </td></tr>
+<tr id="row_31_21_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_31_21_" class="arrow" onclick="toggleFolder('31_21_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form_base.html" target="_self">TransformerFormBase</a></td><td class="desc"></td></tr>
+<tr id="row_31_21_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_transformer_form.html" target="_self">TransformerForm</a></td><td class="desc">Form to edit the transformer power data </td></tr>
+<tr id="row_32_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_32_" class="arrow" onclick="toggleFolder('32_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxFrame</b></td><td class="desc"></td></tr>
+<tr id="row_32_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_32_0_" class="arrow" onclick="toggleFolder('32_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view_base.html" target="_self">ChartViewBase</a></td><td class="desc"></td></tr>
+<tr id="row_32_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_chart_view.html" target="_self">ChartView</a></td><td class="desc">This class is responsible to manage the charts generated in the transient electromechanical studies </td></tr>
+<tr id="row_32_1_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_32_1_" class="arrow" onclick="toggleFolder('32_1_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor_base.html" target="_self">ControlEditorBase</a></td><td class="desc"></td></tr>
+<tr id="row_32_1_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_editor.html" target="_self">ControlEditor</a></td><td class="desc"></td></tr>
+<tr id="row_32_2_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_32_2_" class="arrow" onclick="toggleFolder('32_2_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report_base.html" target="_self">DataReportBase</a></td><td class="desc"></td></tr>
+<tr id="row_32_2_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_data_report.html" target="_self">DataReport</a></td><td class="desc">Form that shows the results of power flow and fault calculations </td></tr>
+<tr id="row_32_3_"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_32_3_" class="arrow" onclick="toggleFolder('32_3_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame_base.html" target="_self">MainFrameBase</a></td><td class="desc"></td></tr>
+<tr id="row_32_3_0_" class="even" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_main_frame.html" target="_self">MainFrame</a></td><td class="desc">Main frame of the program. This class manage the ribbon menu and the notebook behavior </td></tr>
+<tr id="row_33_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string_array.html" target="_self">wxGLStringArray</a></td><td class="desc"></td></tr>
+<tr id="row_34_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_34_" class="arrow" onclick="toggleFolder('34_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxPanel</b></td><td class="desc"></td></tr>
+<tr id="row_34_0_" class="even"><td class="entry"><span style="width:16px;display:inline-block;">&#160;</span><span id="arr_34_0_" class="arrow" onclick="toggleFolder('34_0_')">&#9658;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace_base.html" target="_self">WorkspaceBase</a></td><td class="desc"></td></tr>
+<tr id="row_34_0_0_" style="display:none;"><td class="entry"><span style="width:48px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_workspace.html" target="_self">Workspace</a></td><td class="desc">This class manages the graphical and power elements. It is responsible for handling the user's interaction with the elements </td></tr>
+<tr id="row_35_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_35_" class="arrow" onclick="toggleFolder('35_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxRibbonMSWArtProvider</b></td><td class="desc"></td></tr>
+<tr id="row_35_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_ribbon_metro_art_provider.html" target="_self">wxRibbonMetroArtProvider</a></td><td class="desc"></td></tr>
+<tr id="row_36_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_36_" class="arrow" onclick="toggleFolder('36_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxString</b></td><td class="desc"></td></tr>
+<tr id="row_36_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="classwx_g_l_string.html" target="_self">wxGLString</a></td><td class="desc"></td></tr>
+<tr id="row_37_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_37_" class="arrow" onclick="toggleFolder('37_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxTreeItemData</b></td><td class="desc"></td></tr>
+<tr id="row_37_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_plot_data.html" target="_self">PlotData</a></td><td class="desc">This class is responsible to manage the graphical data of electromechanical result to be plotted on chart viewer </td></tr>
+<tr id="row_38_"><td class="entry"><span style="width:0px;display:inline-block;">&#160;</span><span id="arr_38_" class="arrow" onclick="toggleFolder('38_')">&#9660;</span><span class="icona"><span class="icon">C</span></span><b>wxWindow</b></td><td class="desc"></td></tr>
+<tr id="row_38_0_" class="even"><td class="entry"><span style="width:32px;display:inline-block;">&#160;</span><span class="icona"><span class="icon">C</span></span><a class="el" href="class_control_element_button.html" target="_self">ControlElementButton</a></td><td class="desc">This class is responsible to handle the user interaction with control elements </td></tr>
</table>
</div><!-- directory -->
</div><!-- contents -->
diff --git a/docs/doxygen/html/hierarchy.js b/docs/doxygen/html/hierarchy.js
index 78ffac8..8746d59 100644
--- a/docs/doxygen/html/hierarchy.js
+++ b/docs/doxygen/html/hierarchy.js
@@ -61,6 +61,7 @@ var hierarchy =
[ "TransferFunction::SpaceState", "struct_transfer_function_1_1_space_state.html", null ],
[ "SwitchingData", "struct_switching_data.html", null ],
[ "SyncGeneratorElectricalData", "struct_sync_generator_electrical_data.html", null ],
+ [ "SyncMachineModelData", "struct_sync_machine_model_data.html", null ],
[ "SyncMotorElectricalData", "struct_sync_motor_electrical_data.html", null ],
[ "TextGLDrawable", "class_text_g_l_drawable.html", [
[ "wxGLString", "classwx_g_l_string.html", [
diff --git a/docs/doxygen/html/index.html b/docs/doxygen/html/index.html
index 3c9baea..0c4eb86 100644
--- a/docs/doxygen/html/index.html
+++ b/docs/doxygen/html/index.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -84,8 +90,8 @@ $(document).ready(function(){initNavTree('index.html','');});
<div class="contents">
<div class="textblock"><h3>Developers</h3>
<ul>
-<li>Thales Lima Oliveira</li>
-<li>Geraldo Caixeta Guimarães</li>
+<li>Thales Lima Oliveira <a href="#" onclick="location.href='mai'+'lto:'+'tha'+'le'+'s@u'+'fu'+'.br'; return false;">thale<span style="display: none;">.nosp@m.</span>s@uf<span style="display: none;">.nosp@m.</span>u.br</a></li>
+<li>Geraldo Caixeta Guimarães <a href="#" onclick="location.href='mai'+'lto:'+'gca'+'ix'+'eta'+'@u'+'fu.'+'br'; return false;">gcaix<span style="display: none;">.nosp@m.</span>eta@<span style="display: none;">.nosp@m.</span>ufu.b<span style="display: none;">.nosp@m.</span>r</a></li>
</ul>
<h3>Date</h3>
<p>September 14, 2017</p>
diff --git a/docs/doxygen/html/main_8cpp_source.html b/docs/doxygen/html/main_8cpp_source.html
index 039e008..02d7487 100644
--- a/docs/doxygen/html/main_8cpp_source.html
+++ b/docs/doxygen/html/main_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -82,9 +88,11 @@ $(document).ready(function(){initNavTree('main_8cpp_source.html','');});
<div class="title">main.cpp</div> </div>
</div><!--header-->
<div class="contents">
-<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &lt;wx/app.h&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;wx/event.h&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;wx/image.h&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/stdpaths.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;</div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;<span class="preprocessor">#include &quot;MainFrame.h&quot;</span></div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;PropertiesData.h&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;</div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;<span class="comment">// Define the MainApp</span></div><div class="line"><a name="l00011"></a><span class="lineno"><a class="line" href="class_main_app.html"> 11</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_main_app.html">MainApp</a> : <span class="keyword">public</span> wxApp</div><div class="line"><a name="l00012"></a><span class="lineno"> 12</span>&#160;{</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <a class="code" href="class_main_app.html">MainApp</a>() {}</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_main_app.html">MainApp</a>() {}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keywordtype">bool</span> LoadInitFile(<a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData)</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; {</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; wxTextFile file(<span class="stringliteral">&quot;config.ini&quot;</span>);</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; <span class="keyword">auto</span> data = propertiesData-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160;</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keywordflow">if</span>(!file.Create()) {</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160; <span class="keywordflow">if</span>(!file.Open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; </div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; wxString line;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160; <span class="keywordflow">for</span>(line = file.GetFirstLine(); !file.Eof(); line = file.GetNextLine()) {</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString tag = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; wxString tagValue = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; <span class="keywordtype">bool</span> parseValue = <span class="keyword">false</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; line.Len(); ++i) {</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordflow">if</span>(line[i] == <span class="charliteral">&#39;=&#39;</span>) {</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; parseValue = <span class="keyword">true</span>;</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; <span class="keywordflow">if</span>(parseValue)</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; tagValue += line[i];</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tag += line[i];</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; }</div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; }</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; <span class="comment">// Language</span></div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; <span class="keywordflow">if</span>(tag == <span class="stringliteral">&quot;lang&quot;</span>) {</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;pt-br&quot;</span> || tagValue == <span class="stringliteral">&quot;pt&quot;</span>) {</div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; data.language = wxLANGUAGE_PORTUGUESE_BRAZILIAN;</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;en&quot;</span> || tagValue == <span class="stringliteral">&quot;en-us&quot;</span> || tagValue == <span class="stringliteral">&quot;en-uk&quot;</span>) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; }</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; }</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; <span class="keywordflow">if</span>(tag == <span class="stringliteral">&quot;theme&quot;</span>) {</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;light&quot;</span>) {</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;dark&quot;</span>) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; data.theme = THEME_DARK;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; }</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; }</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; file.Close();</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Create default init file.</span></div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; <span class="keywordflow">if</span>(!file.Open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160;</div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="comment">// Default parameters.</span></div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160; file.AddLine(<span class="stringliteral">&quot;lang=en&quot;</span>);</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; file.AddLine(<span class="stringliteral">&quot;theme=light&quot;</span>);</div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160;</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; file.Write();</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160; file.Close();</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160;</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; propertiesData-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; }</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160;</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; propertiesData-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; }</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; <span class="keywordtype">void</span> LoadCatalogs(wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData)</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160; {</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; locale-&gt;Init(propertiesData-&gt;GetGeneralPropertiesData().language, wxLOCALE_DONT_LOAD_DEFAULT);</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160;</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; wxFileName fn(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160; wxString langPath = fn.GetPath() + <span class="stringliteral">&quot;\\..\\data\\lang&quot;</span>;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; locale-&gt;AddCatalogLookupPathPrefix(langPath);</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; <span class="comment">// Load translation catalogs.</span></div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; locale-&gt;AddCatalog(wxT(<span class="stringliteral">&quot;pt_BR&quot;</span>), wxLANGUAGE_PORTUGUESE_BRAZILIAN);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; }</div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160;</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> OnInit()</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160; {</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="comment">// Add image handlers</span></div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; wxImage::AddHandler(<span class="keyword">new</span> wxPNGHandler);</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; wxImage::AddHandler(<span class="keyword">new</span> wxJPEGHandler);</div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160;</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData = <span class="keyword">new</span> <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160; LoadInitFile(propertiesData);</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160;</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; wxLocale* locale = <span class="keyword">new</span> wxLocale();</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160; LoadCatalogs(locale, propertiesData);</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160;</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; <a class="code" href="class_main_frame.html">MainFrame</a>* mainFrame = <span class="keyword">new</span> <a class="code" href="class_main_frame.html">MainFrame</a>(NULL, locale, propertiesData);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160; mainFrame-&gt;SetIcon(wxICON(aaaaprogicon));</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; SetTopWindow(mainFrame);</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160; <span class="keywordflow">return</span> GetTopWindow()-&gt;Show();</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; }</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160;};</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160;</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160;DECLARE_APP(<a class="code" href="class_main_app.html">MainApp</a>)</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160;IMPLEMENT_APP(<a class="code" href="class_main_app.html">MainApp</a>)</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00040">PropertiesData.h:40</a></div></div>
-<div class="ttc" id="class_main_frame_html"><div class="ttname"><a href="class_main_frame.html">MainFrame</a></div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8h_source.html#l00033">MainFrame.h:33</a></div></div>
-<div class="ttc" id="class_main_app_html"><div class="ttname"><a href="class_main_app.html">MainApp</a></div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00011">main.cpp:11</a></div></div>
+<div class="fragment"><div class="line"><a name="l00001"></a><span class="lineno"> 1</span>&#160;<span class="preprocessor">#include &lt;wx/app.h&gt;</span></div><div class="line"><a name="l00002"></a><span class="lineno"> 2</span>&#160;<span class="preprocessor">#include &lt;wx/event.h&gt;</span></div><div class="line"><a name="l00003"></a><span class="lineno"> 3</span>&#160;<span class="preprocessor">#include &lt;wx/image.h&gt;</span></div><div class="line"><a name="l00004"></a><span class="lineno"> 4</span>&#160;<span class="preprocessor">#include &lt;wx/stdpaths.h&gt;</span></div><div class="line"><a name="l00005"></a><span class="lineno"> 5</span>&#160;<span class="preprocessor">#include &lt;wx/textfile.h&gt;</span></div><div class="line"><a name="l00006"></a><span class="lineno"> 6</span>&#160;<span class="preprocessor">#include &lt;wx/cmdline.h&gt;</span></div><div class="line"><a name="l00007"></a><span class="lineno"> 7</span>&#160;</div><div class="line"><a name="l00008"></a><span class="lineno"> 8</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_main_frame_8h.html">MainFrame.h</a>&quot;</span></div><div class="line"><a name="l00009"></a><span class="lineno"> 9</span>&#160;<span class="preprocessor">#include &quot;<a class="code" href="_properties_data_8h.html">PropertiesData.h</a>&quot;</span></div><div class="line"><a name="l00010"></a><span class="lineno"> 10</span>&#160;</div><div class="line"><a name="l00011"></a><span class="lineno"> 11</span>&#160;<span class="comment">// Define the MainApp</span></div><div class="line"><a name="l00012"></a><span class="lineno"><a class="line" href="class_main_app.html"> 12</a></span>&#160;<span class="keyword">class </span><a class="code" href="class_main_app.html">MainApp</a> : <span class="keyword">public</span> wxApp</div><div class="line"><a name="l00013"></a><span class="lineno"> 13</span>&#160;{</div><div class="line"><a name="l00014"></a><span class="lineno"> 14</span>&#160; <span class="keyword">public</span>:</div><div class="line"><a name="l00015"></a><span class="lineno"> 15</span>&#160; <a class="code" href="class_main_app.html">MainApp</a>() {}</div><div class="line"><a name="l00016"></a><span class="lineno"> 16</span>&#160; <span class="keyword">virtual</span> ~<a class="code" href="class_main_app.html">MainApp</a>() {}</div><div class="line"><a name="l00017"></a><span class="lineno"> 17</span>&#160; <span class="keywordtype">bool</span> LoadInitFile(<a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData)</div><div class="line"><a name="l00018"></a><span class="lineno"> 18</span>&#160; {</div><div class="line"><a name="l00019"></a><span class="lineno"> 19</span>&#160; wxFileName fn(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00020"></a><span class="lineno"> 20</span>&#160; wxTextFile file(fn.GetPath() + <span class="stringliteral">&quot;\\config.ini&quot;</span>);</div><div class="line"><a name="l00021"></a><span class="lineno"> 21</span>&#160; <span class="keyword">auto</span> data = propertiesData-&gt;GetGeneralPropertiesData();</div><div class="line"><a name="l00022"></a><span class="lineno"> 22</span>&#160;</div><div class="line"><a name="l00023"></a><span class="lineno"> 23</span>&#160; <span class="keywordflow">if</span>(!file.Create()) {</div><div class="line"><a name="l00024"></a><span class="lineno"> 24</span>&#160; <span class="keywordflow">if</span>(!file.Open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00025"></a><span class="lineno"> 25</span>&#160;</div><div class="line"><a name="l00026"></a><span class="lineno"> 26</span>&#160; wxString line;</div><div class="line"><a name="l00027"></a><span class="lineno"> 27</span>&#160; <span class="keywordflow">for</span>(line = file.GetFirstLine(); !file.Eof(); line = file.GetNextLine()) {</div><div class="line"><a name="l00028"></a><span class="lineno"> 28</span>&#160; wxString tag = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00029"></a><span class="lineno"> 29</span>&#160; wxString tagValue = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00030"></a><span class="lineno"> 30</span>&#160; <span class="keywordtype">bool</span> parseValue = <span class="keyword">false</span>;</div><div class="line"><a name="l00031"></a><span class="lineno"> 31</span>&#160; <span class="keywordflow">for</span>(<span class="keywordtype">unsigned</span> <span class="keywordtype">int</span> i = 0; i &lt; line.Len(); ++i) {</div><div class="line"><a name="l00032"></a><span class="lineno"> 32</span>&#160; <span class="keywordflow">if</span>(line[i] == <span class="charliteral">&#39;=&#39;</span>) {</div><div class="line"><a name="l00033"></a><span class="lineno"> 33</span>&#160; parseValue = <span class="keyword">true</span>;</div><div class="line"><a name="l00034"></a><span class="lineno"> 34</span>&#160; } <span class="keywordflow">else</span> {</div><div class="line"><a name="l00035"></a><span class="lineno"> 35</span>&#160; <span class="keywordflow">if</span>(parseValue)</div><div class="line"><a name="l00036"></a><span class="lineno"> 36</span>&#160; tagValue += line[i];</div><div class="line"><a name="l00037"></a><span class="lineno"> 37</span>&#160; <span class="keywordflow">else</span></div><div class="line"><a name="l00038"></a><span class="lineno"> 38</span>&#160; tag += line[i];</div><div class="line"><a name="l00039"></a><span class="lineno"> 39</span>&#160; }</div><div class="line"><a name="l00040"></a><span class="lineno"> 40</span>&#160; }</div><div class="line"><a name="l00041"></a><span class="lineno"> 41</span>&#160; <span class="comment">// Language</span></div><div class="line"><a name="l00042"></a><span class="lineno"> 42</span>&#160; <span class="keywordflow">if</span>(tag == <span class="stringliteral">&quot;lang&quot;</span>) {</div><div class="line"><a name="l00043"></a><span class="lineno"> 43</span>&#160; <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;pt-br&quot;</span> || tagValue == <span class="stringliteral">&quot;pt&quot;</span>) {</div><div class="line"><a name="l00044"></a><span class="lineno"> 44</span>&#160; data.language = wxLANGUAGE_PORTUGUESE_BRAZILIAN;</div><div class="line"><a name="l00045"></a><span class="lineno"> 45</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;en&quot;</span> || tagValue == <span class="stringliteral">&quot;en-us&quot;</span> || tagValue == <span class="stringliteral">&quot;en-uk&quot;</span>) {</div><div class="line"><a name="l00046"></a><span class="lineno"> 46</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00047"></a><span class="lineno"> 47</span>&#160; }</div><div class="line"><a name="l00048"></a><span class="lineno"> 48</span>&#160; }</div><div class="line"><a name="l00049"></a><span class="lineno"> 49</span>&#160; <span class="keywordflow">if</span>(tag == <span class="stringliteral">&quot;theme&quot;</span>) {</div><div class="line"><a name="l00050"></a><span class="lineno"> 50</span>&#160; <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;light&quot;</span>) {</div><div class="line"><a name="l00051"></a><span class="lineno"> 51</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00052"></a><span class="lineno"> 52</span>&#160; } <span class="keywordflow">else</span> <span class="keywordflow">if</span>(tagValue == <span class="stringliteral">&quot;dark&quot;</span>) {</div><div class="line"><a name="l00053"></a><span class="lineno"> 53</span>&#160; data.theme = THEME_DARK;</div><div class="line"><a name="l00054"></a><span class="lineno"> 54</span>&#160; }</div><div class="line"><a name="l00055"></a><span class="lineno"> 55</span>&#160; }</div><div class="line"><a name="l00056"></a><span class="lineno"> 56</span>&#160; }</div><div class="line"><a name="l00057"></a><span class="lineno"> 57</span>&#160; file.Close();</div><div class="line"><a name="l00058"></a><span class="lineno"> 58</span>&#160; } <span class="keywordflow">else</span> { <span class="comment">// Create default init file.</span></div><div class="line"><a name="l00059"></a><span class="lineno"> 59</span>&#160; <span class="keywordflow">if</span>(!file.Open()) <span class="keywordflow">return</span> <span class="keyword">false</span>;</div><div class="line"><a name="l00060"></a><span class="lineno"> 60</span>&#160;</div><div class="line"><a name="l00061"></a><span class="lineno"> 61</span>&#160; <span class="comment">// Default parameters.</span></div><div class="line"><a name="l00062"></a><span class="lineno"> 62</span>&#160; file.AddLine(<span class="stringliteral">&quot;lang=en&quot;</span>);</div><div class="line"><a name="l00063"></a><span class="lineno"> 63</span>&#160; file.AddLine(<span class="stringliteral">&quot;theme=light&quot;</span>);</div><div class="line"><a name="l00064"></a><span class="lineno"> 64</span>&#160;</div><div class="line"><a name="l00065"></a><span class="lineno"> 65</span>&#160; file.Write();</div><div class="line"><a name="l00066"></a><span class="lineno"> 66</span>&#160; file.Close();</div><div class="line"><a name="l00067"></a><span class="lineno"> 67</span>&#160;</div><div class="line"><a name="l00068"></a><span class="lineno"> 68</span>&#160; data.language = wxLANGUAGE_ENGLISH;</div><div class="line"><a name="l00069"></a><span class="lineno"> 69</span>&#160; data.theme = THEME_LIGHT;</div><div class="line"><a name="l00070"></a><span class="lineno"> 70</span>&#160; propertiesData-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00071"></a><span class="lineno"> 71</span>&#160; }</div><div class="line"><a name="l00072"></a><span class="lineno"> 72</span>&#160;</div><div class="line"><a name="l00073"></a><span class="lineno"> 73</span>&#160; propertiesData-&gt;SetGeneralPropertiesData(data);</div><div class="line"><a name="l00074"></a><span class="lineno"> 74</span>&#160; <span class="keywordflow">return</span> <span class="keyword">true</span>;</div><div class="line"><a name="l00075"></a><span class="lineno"> 75</span>&#160; }</div><div class="line"><a name="l00076"></a><span class="lineno"> 76</span>&#160;</div><div class="line"><a name="l00077"></a><span class="lineno"> 77</span>&#160; <span class="keywordtype">void</span> LoadCatalogs(wxLocale* locale, <a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData)</div><div class="line"><a name="l00078"></a><span class="lineno"> 78</span>&#160; {</div><div class="line"><a name="l00079"></a><span class="lineno"> 79</span>&#160; locale-&gt;Init(propertiesData-&gt;GetGeneralPropertiesData().language, wxLOCALE_DONT_LOAD_DEFAULT);</div><div class="line"><a name="l00080"></a><span class="lineno"> 80</span>&#160;</div><div class="line"><a name="l00081"></a><span class="lineno"> 81</span>&#160; wxFileName fn(wxStandardPaths::Get().GetExecutablePath());</div><div class="line"><a name="l00082"></a><span class="lineno"> 82</span>&#160; wxString langPath = fn.GetPath() + <span class="stringliteral">&quot;\\..\\data\\lang&quot;</span>;</div><div class="line"><a name="l00083"></a><span class="lineno"> 83</span>&#160; locale-&gt;AddCatalogLookupPathPrefix(langPath);</div><div class="line"><a name="l00084"></a><span class="lineno"> 84</span>&#160; <span class="comment">// Load translation catalogs.</span></div><div class="line"><a name="l00085"></a><span class="lineno"> 85</span>&#160; locale-&gt;AddCatalog(wxT(<span class="stringliteral">&quot;pt_BR&quot;</span>), wxLANGUAGE_PORTUGUESE_BRAZILIAN);</div><div class="line"><a name="l00086"></a><span class="lineno"> 86</span>&#160; }</div><div class="line"><a name="l00087"></a><span class="lineno"> 87</span>&#160;</div><div class="line"><a name="l00088"></a><span class="lineno"> 88</span>&#160; <span class="keyword">virtual</span> <span class="keywordtype">bool</span> OnInit()</div><div class="line"><a name="l00089"></a><span class="lineno"> 89</span>&#160; {</div><div class="line"><a name="l00090"></a><span class="lineno"> 90</span>&#160; <span class="comment">// Add image handlers</span></div><div class="line"><a name="l00091"></a><span class="lineno"> 91</span>&#160; wxImage::AddHandler(<span class="keyword">new</span> wxPNGHandler);</div><div class="line"><a name="l00092"></a><span class="lineno"> 92</span>&#160; wxImage::AddHandler(<span class="keyword">new</span> wxJPEGHandler);</div><div class="line"><a name="l00093"></a><span class="lineno"> 93</span>&#160;</div><div class="line"><a name="l00094"></a><span class="lineno"> 94</span>&#160; <a class="code" href="class_properties_data.html">PropertiesData</a>* propertiesData = <span class="keyword">new</span> <a class="code" href="class_properties_data.html">PropertiesData</a>();</div><div class="line"><a name="l00095"></a><span class="lineno"> 95</span>&#160; LoadInitFile(propertiesData);</div><div class="line"><a name="l00096"></a><span class="lineno"> 96</span>&#160;</div><div class="line"><a name="l00097"></a><span class="lineno"> 97</span>&#160; wxLocale* locale = <span class="keyword">new</span> wxLocale();</div><div class="line"><a name="l00098"></a><span class="lineno"> 98</span>&#160; LoadCatalogs(locale, propertiesData);</div><div class="line"><a name="l00099"></a><span class="lineno"> 99</span>&#160;</div><div class="line"><a name="l00100"></a><span class="lineno"> 100</span>&#160; wxString openFilePath = <span class="stringliteral">&quot;&quot;</span>;</div><div class="line"><a name="l00101"></a><span class="lineno"> 101</span>&#160;</div><div class="line"><a name="l00102"></a><span class="lineno"> 102</span>&#160; wxCmdLineParser cmdLineParser(wxApp::argc, wxApp::argv);</div><div class="line"><a name="l00103"></a><span class="lineno"> 103</span>&#160; cmdLineParser.AddParam(<span class="stringliteral">&quot;&quot;</span>, wxCMD_LINE_VAL_STRING, wxCMD_LINE_PARAM_OPTIONAL);</div><div class="line"><a name="l00104"></a><span class="lineno"> 104</span>&#160; <span class="keywordflow">if</span>(cmdLineParser.Parse() == 0) {</div><div class="line"><a name="l00105"></a><span class="lineno"> 105</span>&#160; wxCmdLineArgs args = cmdLineParser.GetArguments();</div><div class="line"><a name="l00106"></a><span class="lineno"> 106</span>&#160; <span class="keywordflow">for</span>(<span class="keyword">auto</span> it = args.begin(), itEnd = args.end(); it != itEnd; ++it) {</div><div class="line"><a name="l00107"></a><span class="lineno"> 107</span>&#160; <span class="keywordflow">if</span>(it-&gt;GetKind() == wxCMD_LINE_PARAM) {</div><div class="line"><a name="l00108"></a><span class="lineno"> 108</span>&#160; openFilePath = it-&gt;GetStrVal();</div><div class="line"><a name="l00109"></a><span class="lineno"> 109</span>&#160; }</div><div class="line"><a name="l00110"></a><span class="lineno"> 110</span>&#160; }</div><div class="line"><a name="l00111"></a><span class="lineno"> 111</span>&#160; }</div><div class="line"><a name="l00112"></a><span class="lineno"> 112</span>&#160; <a class="code" href="class_main_frame.html">MainFrame</a>* mainFrame = <span class="keyword">new</span> <a class="code" href="class_main_frame.html">MainFrame</a>(NULL, locale, propertiesData, openFilePath);</div><div class="line"><a name="l00113"></a><span class="lineno"> 113</span>&#160; mainFrame-&gt;SetIcon(wxICON(aaaaprogicon));</div><div class="line"><a name="l00114"></a><span class="lineno"> 114</span>&#160; SetTopWindow(mainFrame);</div><div class="line"><a name="l00115"></a><span class="lineno"> 115</span>&#160; <span class="keywordflow">return</span> GetTopWindow()-&gt;Show();</div><div class="line"><a name="l00116"></a><span class="lineno"> 116</span>&#160; }</div><div class="line"><a name="l00117"></a><span class="lineno"> 117</span>&#160;};</div><div class="line"><a name="l00118"></a><span class="lineno"> 118</span>&#160;</div><div class="line"><a name="l00119"></a><span class="lineno"> 119</span>&#160;DECLARE_APP(<a class="code" href="class_main_app.html">MainApp</a>)</div><div class="line"><a name="l00120"></a><span class="lineno"> 120</span>&#160;IMPLEMENT_APP(<a class="code" href="class_main_app.html">MainApp</a>)</div><div class="ttc" id="class_properties_data_html"><div class="ttname"><a href="class_properties_data.html">PropertiesData</a></div><div class="ttdoc">General and simulation data manager. </div><div class="ttdef"><b>Definition:</b> <a href="_properties_data_8h_source.html#l00064">PropertiesData.h:64</a></div></div>
+<div class="ttc" id="_properties_data_8h_html"><div class="ttname"><a href="_properties_data_8h.html">PropertiesData.h</a></div></div>
+<div class="ttc" id="_main_frame_8h_html"><div class="ttname"><a href="_main_frame_8h.html">MainFrame.h</a></div></div>
+<div class="ttc" id="class_main_frame_html"><div class="ttname"><a href="class_main_frame.html">MainFrame</a></div><div class="ttdoc">Main frame of the program. This class manage the ribbon menu and the notebook behavior. </div><div class="ttdef"><b>Definition:</b> <a href="_main_frame_8h_source.html#l00057">MainFrame.h:57</a></div></div>
+<div class="ttc" id="class_main_app_html"><div class="ttname"><a href="class_main_app.html">MainApp</a></div><div class="ttdef"><b>Definition:</b> <a href="main_8cpp_source.html#l00012">main.cpp:12</a></div></div>
</div><!-- fragment --></div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
diff --git a/docs/doxygen/html/menudata.js b/docs/doxygen/html/menudata.js
index a35c4c6..d712cee 100644
--- a/docs/doxygen/html/menudata.js
+++ b/docs/doxygen/html/menudata.js
@@ -23,6 +23,7 @@ var menudata={children:[
{text:"s",url:"functions_s.html#index_s"},
{text:"u",url:"functions_u.html#index_u"},
{text:"w",url:"functions_w.html#index_w"},
+{text:"x",url:"functions_x.html#index_x"},
{text:"~",url:"functions_0x7e.html#index_0x7e"}]},
{text:"Functions",url:"functions_func.html",children:[
{text:"a",url:"functions_func.html#index_a"},
diff --git a/docs/doxygen/html/navtreedata.js b/docs/doxygen/html/navtreedata.js
index 9d2bfe1..87a3abe 100644
--- a/docs/doxygen/html/navtreedata.js
+++ b/docs/doxygen/html/navtreedata.js
@@ -25,19 +25,20 @@ var NAVTREE =
var NAVTREEINDEX =
[
"_about_form_8cpp_source.html",
-"class_about_form_base.html#a74341fb9c17f6320745444ea4eb76df8",
-"class_chart_view_base.html#a4083de6c29b7ab0997217c32e246ee0b",
-"class_control_element_container.html",
-"class_electromechanical.html#ac51fdb6f0ae13514b6986f99a782532a",
-"class_file_handing.html#ae85e5c9173a850b8165939fef18c8c88",
-"class_i_o_control_form_base.html#a0e3c563e83daad1b146c3145a1f344dc",
-"class_load.html",
-"class_node.html#a16217ea768b7bad76285e779bdc819c7",
-"class_simulations_settings_form_base.html#a76d9c02a5e8293274ff5ca30da5f3875",
-"class_sync_machine_form_base.html#aedf1ffdbc6b3cec7614126d733a12f4a",
-"class_transformer.html#a328c419af15701734168c8db62eefa36",
-"classwx_g_l_string_array.html#a6923a709d67ada5b713549bc706bdddd",
-"struct_sync_generator_electrical_data.html#aef18b7163c5e2b9e6e2c671b3939480d"
+"_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5a36b54867355898cdf8184bc1b1b1ab64",
+"class_bus_form_base.html#a8731cdb29c22002ed2d63bceaba322a5",
+"class_constant_form_base.html#ad9296d05ec4b36ef59108bf72ddfdaca",
+"class_data_report.html#a65ae7767572792800630dbff4e1c0de7",
+"class_element_data_object.html#a19995ba1b03a9566352e5bdf44d1370b",
+"class_generator_stab_form_base.html#a2bda5575654a49d342aefb1e4c8fbaef",
+"class_limiter_form.html",
+"class_main_frame.html#a4a1c9ab859e5fd8a4c76ea7e10276181",
+"class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29",
+"class_switching_form_base.html#a12a2da9f3c7ed16f5e9965c13d166f96",
+"class_text_form_base.html#a6e8c2c55fcac20adba14d0ee92ee6560",
+"class_transformer_form_base.html#ae7a24e53da32b8caf67fc5ef39618743",
+"struct_general_data.html#ab52356d45c62ade32d080b3244f0b3ef",
+"struct_transformer_electrical_data.html#a8a90bbbcefecfe59505d86003354afdc"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/docs/doxygen/html/navtreeindex0.js b/docs/doxygen/html/navtreeindex0.js
index ebe2a90..0929c65 100644
--- a/docs/doxygen/html/navtreeindex0.js
+++ b/docs/doxygen/html/navtreeindex0.js
@@ -1,45 +1,71 @@
var NAVTREEINDEX0 =
{
"_about_form_8cpp_source.html":[1,0,0,0],
+"_about_form_8h.html":[1,0,0,1],
"_about_form_8h_source.html":[1,0,0,1],
"_art_metro_8cpp_source.html":[1,0,0,2],
"_art_metro_8h_source.html":[1,0,0,3],
"_branch_8cpp_source.html":[1,0,0,4],
+"_branch_8h.html":[1,0,0,5],
"_branch_8h_source.html":[1,0,0,5],
"_bus_8cpp_source.html":[1,0,0,6],
+"_bus_8h.html":[1,0,0,7],
"_bus_8h_source.html":[1,0,0,7],
"_bus_form_8cpp_source.html":[1,0,0,8],
+"_bus_form_8h.html":[1,0,0,9],
"_bus_form_8h_source.html":[1,0,0,9],
"_bus_form_bitmaps_8cpp_source.html":[1,0,0,10],
"_camera_8cpp_source.html":[1,0,0,11],
+"_camera_8h.html":[1,0,0,12],
"_camera_8h_source.html":[1,0,0,12],
"_capacitor_8cpp_source.html":[1,0,0,13],
+"_capacitor_8h.html":[1,0,0,14],
"_capacitor_8h_source.html":[1,0,0,14],
"_chart_view_8cpp_source.html":[1,0,0,15],
+"_chart_view_8h.html":[1,0,0,16],
"_chart_view_8h_source.html":[1,0,0,16],
"_chart_view_base_8cpp_source.html":[1,0,0,17],
"_chart_view_base_8h_source.html":[1,0,0,18],
"_chart_view_bitmaps_8cpp_source.html":[1,0,0,19],
"_connection_line_8cpp_source.html":[1,0,0,20],
+"_connection_line_8h.html":[1,0,0,21],
"_connection_line_8h_source.html":[1,0,0,21],
"_constant_8cpp_source.html":[1,0,0,22],
+"_constant_8h.html":[1,0,0,23],
"_constant_8h_source.html":[1,0,0,23],
"_constant_form_8cpp_source.html":[1,0,0,24],
+"_constant_form_8h.html":[1,0,0,25],
"_constant_form_8h_source.html":[1,0,0,25],
"_control_editor_8cpp_source.html":[1,0,0,26],
+"_control_editor_8h.html":[1,0,0,27],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076":[1,0,0,27,2],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a007742cc97c341c08b014bc2e0385c40":[1,0,0,27,2,4],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a39af4bb4f8a6a60d53796dc24c7ef52e":[1,0,0,27,2,3],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a4db14943629d93315bc091b2d7e8ac1b":[1,0,0,27,2,6],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a82d160d51a00e0512485fb0afff4a09a":[1,0,0,27,2,0],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076a9f541dfe8890f2636816ed2d7f8d07d7":[1,0,0,27,2,7],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076aa141db7d0f650ecdc828cb8f36fe6ac8":[1,0,0,27,2,1],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076abc8cc51c937d00684cb6967548dbbe12":[1,0,0,27,2,5],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076ac09b0c2232a1d94b9cf4caeeff65a959":[1,0,0,27,2,2],
+"_control_editor_8h.html#a8b2fbb4494abb95ea860e1b6b3cb7076aec5fbed678b51ff6e1b215cb36ac9bfa":[1,0,0,27,2,8],
"_control_editor_8h_source.html":[1,0,0,27],
"_control_editor_base_8cpp_source.html":[1,0,0,28],
"_control_editor_base_8h_source.html":[1,0,0,29],
"_control_editor_bitmaps_8cpp_source.html":[1,0,0,30],
"_control_element_8cpp_source.html":[1,0,0,31],
+"_control_element_8h.html":[1,0,0,32],
"_control_element_8h_source.html":[1,0,0,32],
"_control_element_container_8cpp_source.html":[1,0,0,33],
+"_control_element_container_8h.html":[1,0,0,34],
"_control_element_container_8h_source.html":[1,0,0,34],
"_control_element_solver_8cpp_source.html":[1,0,0,35],
+"_control_element_solver_8h.html":[1,0,0,36],
"_control_element_solver_8h_source.html":[1,0,0,36],
"_control_system_test_8cpp_source.html":[1,0,0,37],
+"_control_system_test_8h.html":[1,0,0,38],
"_control_system_test_8h_source.html":[1,0,0,38],
"_data_report_8cpp_source.html":[1,0,0,39],
+"_data_report_8h.html":[1,0,0,40],
"_data_report_8h_source.html":[1,0,0,40],
"_data_report_base_8cpp_source.html":[1,0,0,41],
"_data_report_base_8h_source.html":[1,0,0,42],
@@ -64,6 +90,7 @@ var NAVTREEINDEX0 =
"_electric_calculation_8h.html#aa48d3d150889a89c491c9792ca3bc8a5afe82ead3835d251dfa6f0e453465caec":[1,0,0,46,3,2],
"_electric_calculation_8h_source.html":[1,0,0,46],
"_electromechanical_8cpp_source.html":[1,0,0,47],
+"_electromechanical_8h.html":[1,0,0,48],
"_electromechanical_8h_source.html":[1,0,0,48],
"_element_8cpp_source.html":[1,0,0,49],
"_element_8h.html":[1,0,0,50],
@@ -84,61 +111,97 @@ var NAVTREEINDEX0 =
"_element_8h.html#a7b88da333c092757d91d7492dfa8e316af6c9b66260adb71ded1407f62d5eceb0":[1,0,0,50,3,1],
"_element_8h_source.html":[1,0,0,50],
"_element_data_object_8cpp_source.html":[1,0,0,51],
+"_element_data_object_8h.html":[1,0,0,52],
"_element_data_object_8h_source.html":[1,0,0,52],
"_element_form_8cpp_source.html":[1,0,0,53],
"_element_form_8h_source.html":[1,0,0,54],
"_element_form_bitmaps_8cpp_source.html":[1,0,0,55],
"_element_plot_data_8cpp_source.html":[1,0,0,56],
+"_element_plot_data_8h.html":[1,0,0,57],
"_element_plot_data_8h_source.html":[1,0,0,57],
"_exponential_8cpp_source.html":[1,0,0,58],
+"_exponential_8h.html":[1,0,0,59],
"_exponential_8h_source.html":[1,0,0,59],
"_exponential_form_8cpp_source.html":[1,0,0,60],
+"_exponential_form_8h.html":[1,0,0,61],
"_exponential_form_8h_source.html":[1,0,0,61],
"_fault_8cpp_source.html":[1,0,0,62],
"_fault_8h.html":[1,0,0,63],
"_fault_8h_source.html":[1,0,0,63],
"_file_handing_8cpp_source.html":[1,0,0,64],
+"_file_handing_8h.html":[1,0,0,65],
"_file_handing_8h_source.html":[1,0,0,65],
"_gain_8cpp_source.html":[1,0,0,66],
+"_gain_8h.html":[1,0,0,67],
"_gain_8h_source.html":[1,0,0,67],
"_gain_form_8cpp_source.html":[1,0,0,68],
+"_gain_form_8h.html":[1,0,0,69],
"_gain_form_8h_source.html":[1,0,0,69],
"_general_properties_form_8cpp_source.html":[1,0,0,70],
+"_general_properties_form_8h.html":[1,0,0,71],
"_general_properties_form_8h_source.html":[1,0,0,71],
"_generator_stab_form_8cpp_source.html":[1,0,0,72],
+"_generator_stab_form_8h.html":[1,0,0,73],
"_generator_stab_form_8h_source.html":[1,0,0,73],
"_graphical_element_8cpp_source.html":[1,0,0,74],
+"_graphical_element_8h.html":[1,0,0,75],
"_graphical_element_8h_source.html":[1,0,0,75],
"_i_o_control_8cpp_source.html":[1,0,0,82],
+"_i_o_control_8h.html":[1,0,0,83],
"_i_o_control_8h_source.html":[1,0,0,83],
"_i_o_control_form_8cpp_source.html":[1,0,0,84],
+"_i_o_control_form_8h.html":[1,0,0,85],
"_i_o_control_form_8h_source.html":[1,0,0,85],
"_ind_motor_8cpp_source.html":[1,0,0,76],
+"_ind_motor_8h.html":[1,0,0,77],
"_ind_motor_8h_source.html":[1,0,0,77],
"_ind_motor_form_8cpp_source.html":[1,0,0,78],
+"_ind_motor_form_8h.html":[1,0,0,79],
"_ind_motor_form_8h_source.html":[1,0,0,79],
"_inductor_8cpp_source.html":[1,0,0,80],
+"_inductor_8h.html":[1,0,0,81],
"_inductor_8h_source.html":[1,0,0,81],
"_limiter_8cpp_source.html":[1,0,0,86],
+"_limiter_8h.html":[1,0,0,87],
"_limiter_8h_source.html":[1,0,0,87],
"_limiter_form_8cpp_source.html":[1,0,0,88],
+"_limiter_form_8h.html":[1,0,0,89],
"_limiter_form_8h_source.html":[1,0,0,89],
"_line_8cpp_source.html":[1,0,0,90],
+"_line_8h.html":[1,0,0,91],
"_line_8h_source.html":[1,0,0,91],
"_line_form_8cpp_source.html":[1,0,0,92],
+"_line_form_8h.html":[1,0,0,93],
"_line_form_8h_source.html":[1,0,0,93],
"_load_8cpp_source.html":[1,0,0,94],
+"_load_8h.html":[1,0,0,95],
+"_load_8h.html#a23ef47ba052bffd629011885a72be6ae":[1,0,0,95,2],
+"_load_8h.html#a23ef47ba052bffd629011885a72be6aea050d3b412b1a323ad9b62e94a7e8386f":[1,0,0,95,2,0],
+"_load_8h.html#a23ef47ba052bffd629011885a72be6aea3030768ede9894e4595833f464783de6":[1,0,0,95,2,1],
"_load_8h_source.html":[1,0,0,95],
"_load_form_8cpp_source.html":[1,0,0,96],
+"_load_form_8h.html":[1,0,0,97],
"_load_form_8h_source.html":[1,0,0,97],
"_machines_8cpp_source.html":[1,0,0,98],
+"_machines_8h.html":[1,0,0,99],
"_machines_8h_source.html":[1,0,0,99],
"_main_frame_8cpp_source.html":[1,0,0,101],
+"_main_frame_8h.html":[1,0,0,102],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a0448f71ade0850cce41f666113d61646":[1,0,0,102,5],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a19b41804a810ff58604d9a2e98a12d9b":[1,0,0,102,6],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a713348ad9d91573d5729b0a8b8e66e04":[1,0,0,102,9],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a78ef6f7d5925a2d3f66fb4b985cde4c8":[1,0,0,102,4],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a88478f64002d3686cd141ab42431c654":[1,0,0,102,8],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a8f622d047e7be05ca22e68cf3c495891":[1,0,0,102,2],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7a972a4490c2c106d50fad31bf61c954ee":[1,0,0,102,1],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ac723eda89da3d08df66556102f04fb3f":[1,0,0,102,3],
+"_main_frame_8h.html#adf764cbdea00d65edcd07bb9953ad2b7ae8447bb338d69f233187fa7ecddb269b":[1,0,0,102,7],
"_main_frame_8h_source.html":[1,0,0,102],
"_main_frame_base_8cpp_source.html":[1,0,0,103],
"_main_frame_base_8h_source.html":[1,0,0,104],
"_main_frame_bitmaps_8cpp_source.html":[1,0,0,105],
"_multiplier_8cpp_source.html":[1,0,0,106],
+"_multiplier_8h.html":[1,0,0,107],
"_multiplier_8h_source.html":[1,0,0,107],
"_power_element_8cpp_source.html":[1,0,0,108],
"_power_element_8h.html":[1,0,0,109],
@@ -182,72 +245,9 @@ var NAVTREEINDEX0 =
"_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7":[1,0,0,109,6,0],
"_power_element_8h_source.html":[1,0,0,109],
"_power_flow_8cpp_source.html":[1,0,0,110],
+"_power_flow_8h.html":[1,0,0,111],
"_power_flow_8h_source.html":[1,0,0,111],
"_properties_data_8cpp_source.html":[1,0,0,112],
-"_properties_data_8h_source.html":[1,0,0,113],
-"_properties_form_8cpp_source.html":[1,0,0,114],
-"_properties_form_8h_source.html":[1,0,0,115],
-"_properties_form_bitmaps_8cpp_source.html":[1,0,0,116],
-"_rate_limiter_8cpp_source.html":[1,0,0,117],
-"_rate_limiter_8h_source.html":[1,0,0,118],
-"_rate_limiter_form_8cpp_source.html":[1,0,0,119],
-"_rate_limiter_form_8h_source.html":[1,0,0,120],
-"_reactive_shunt_element_form_8cpp_source.html":[1,0,0,121],
-"_reactive_shunt_element_form_8h_source.html":[1,0,0,122],
-"_shunt_8cpp_source.html":[1,0,0,123],
-"_shunt_8h_source.html":[1,0,0,124],
-"_simulations_settings_form_8cpp_source.html":[1,0,0,125],
-"_simulations_settings_form_8h_source.html":[1,0,0,126],
-"_sum_8cpp_source.html":[1,0,0,127],
-"_sum_8h_source.html":[1,0,0,128],
-"_sum_form_8cpp_source.html":[1,0,0,129],
-"_sum_form_8h_source.html":[1,0,0,130],
-"_switching_form_8cpp_source.html":[1,0,0,131],
-"_switching_form_8h_source.html":[1,0,0,132],
-"_sync_generator_8cpp_source.html":[1,0,0,133],
-"_sync_generator_8h_source.html":[1,0,0,134],
-"_sync_machine_form_8cpp_source.html":[1,0,0,135],
-"_sync_machine_form_8h_source.html":[1,0,0,136],
-"_sync_motor_8cpp_source.html":[1,0,0,137],
-"_sync_motor_8h_source.html":[1,0,0,138],
-"_text_8cpp_source.html":[1,0,0,139],
-"_text_8h_source.html":[1,0,0,140],
-"_text_form_8cpp_source.html":[1,0,0,141],
-"_text_form_8h_source.html":[1,0,0,142],
-"_transfer_function_8cpp_source.html":[1,0,0,143],
-"_transfer_function_8h_source.html":[1,0,0,144],
-"_transfer_function_form_8cpp_source.html":[1,0,0,145],
-"_transfer_function_form_8h_source.html":[1,0,0,146],
-"_transformer_8cpp_source.html":[1,0,0,147],
-"_transformer_8h_source.html":[1,0,0,148],
-"_transformer_form_8cpp_source.html":[1,0,0,149],
-"_transformer_form_8h_source.html":[1,0,0,150],
-"_workspace_8cpp_source.html":[1,0,0,151],
-"_workspace_8h_source.html":[1,0,0,152],
-"_workspace_base_8cpp_source.html":[1,0,0,153],
-"_workspace_base_8h_source.html":[1,0,0,154],
-"_workspace_bitmaps_8cpp_source.html":[1,0,0,155],
-"annotated.html":[0,0],
-"class_about_form.html":[0,0,0],
-"class_about_form.html#a30a97b3857200c4cd50364b26d4cd3bb":[0,0,0,3],
-"class_about_form.html#a7c793ce416f184e009c72a198af116da":[0,0,0,2],
-"class_about_form.html#a856a64c4b8545cf8c8fa1b6f23080341":[0,0,0,0],
-"class_about_form.html#a87f1730d731ee0c7529d4af84fac92fc":[0,0,0,1],
-"class_about_form_base.html":[0,0,1],
-"class_about_form_base.html#a01a0cbc42c52e7eb69fa1337f756af7d":[0,0,1,18],
-"class_about_form_base.html#a02da06240394048e693c6ae3e2a69282":[0,0,1,16],
-"class_about_form_base.html#a1fae6815dc4f49df45f05f3893a332c7":[0,0,1,13],
-"class_about_form_base.html#a306c84f41395aee3200b887ec71ff11a":[0,0,1,21],
-"class_about_form_base.html#a34d37030073f1e71cc233a8d0d4a27dc":[0,0,1,19],
-"class_about_form_base.html#a37e22612779e67b33b66f6a3a7bb60c1":[0,0,1,11],
-"class_about_form_base.html#a3dbb1a9739786e22307f7ae4fb0617f1":[0,0,1,20],
-"class_about_form_base.html#a428f630068bebd4e0fdd258c0b8cd2ac":[0,0,1,7],
-"class_about_form_base.html#a4438eded1319f84ed19cf0350d819efb":[0,0,1,8],
-"class_about_form_base.html#a4470b5bcf193376d3a8849bdcba2acd4":[0,0,1,24],
-"class_about_form_base.html#a490a133019381aa2569ca04f517829ea":[0,0,1,9],
-"class_about_form_base.html#a5a2bb84e1eb7fc3b92d82a68fc93858a":[0,0,1,4],
-"class_about_form_base.html#a64ea9b42b326b773067de6d1b4f649f4":[0,0,1,14],
-"class_about_form_base.html#a6a33f787646eea29e95441b05c0409df":[0,0,1,26],
-"class_about_form_base.html#a6d243c886c28b231279798dd3cca6df4":[0,0,1,22],
-"class_about_form_base.html#a6fcacff0bfb56d11923d0f80e5560f70":[0,0,1,17]
+"_properties_data_8h.html":[1,0,0,113],
+"_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5":[1,0,0,113,3]
};
diff --git a/docs/doxygen/html/navtreeindex1.js b/docs/doxygen/html/navtreeindex1.js
index efac229..9853734 100644
--- a/docs/doxygen/html/navtreeindex1.js
+++ b/docs/doxygen/html/navtreeindex1.js
@@ -1,5 +1,140 @@
var NAVTREEINDEX1 =
{
+"_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5a36b54867355898cdf8184bc1b1b1ab64":[1,0,0,113,3,0],
+"_properties_data_8h.html#a22c433d87328b2b1a796559b51b82cc5aa81179a87e35561c97eec4e1b2b1aa47":[1,0,0,113,3,1],
+"_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68b":[1,0,0,113,4],
+"_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68ba80c952bb305178615486f9a8ea95349d":[1,0,0,113,4,0],
+"_properties_data_8h.html#ac18bc6e3749817eb86c02a2e65d4e68ba8f764af6b30d2774aa12bfd9ecbc3fd5":[1,0,0,113,4,1],
+"_properties_data_8h_source.html":[1,0,0,113],
+"_properties_form_8cpp_source.html":[1,0,0,114],
+"_properties_form_8h_source.html":[1,0,0,115],
+"_properties_form_bitmaps_8cpp_source.html":[1,0,0,116],
+"_rate_limiter_8cpp_source.html":[1,0,0,117],
+"_rate_limiter_8h.html":[1,0,0,118],
+"_rate_limiter_8h_source.html":[1,0,0,118],
+"_rate_limiter_form_8cpp_source.html":[1,0,0,119],
+"_rate_limiter_form_8h.html":[1,0,0,120],
+"_rate_limiter_form_8h_source.html":[1,0,0,120],
+"_reactive_shunt_element_form_8cpp_source.html":[1,0,0,121],
+"_reactive_shunt_element_form_8h.html":[1,0,0,122],
+"_reactive_shunt_element_form_8h_source.html":[1,0,0,122],
+"_shunt_8cpp_source.html":[1,0,0,123],
+"_shunt_8h.html":[1,0,0,124],
+"_shunt_8h_source.html":[1,0,0,124],
+"_simulations_settings_form_8cpp_source.html":[1,0,0,125],
+"_simulations_settings_form_8h.html":[1,0,0,126],
+"_simulations_settings_form_8h_source.html":[1,0,0,126],
+"_sum_8cpp_source.html":[1,0,0,127],
+"_sum_8h.html":[1,0,0,128],
+"_sum_8h_source.html":[1,0,0,128],
+"_sum_form_8cpp_source.html":[1,0,0,129],
+"_sum_form_8h.html":[1,0,0,130],
+"_sum_form_8h_source.html":[1,0,0,130],
+"_switching_form_8cpp_source.html":[1,0,0,131],
+"_switching_form_8h.html":[1,0,0,132],
+"_switching_form_8h_source.html":[1,0,0,132],
+"_sync_generator_8cpp_source.html":[1,0,0,133],
+"_sync_generator_8h.html":[1,0,0,134],
+"_sync_generator_8h_source.html":[1,0,0,134],
+"_sync_machine_form_8cpp_source.html":[1,0,0,135],
+"_sync_machine_form_8h.html":[1,0,0,136],
+"_sync_machine_form_8h_source.html":[1,0,0,136],
+"_sync_motor_8cpp_source.html":[1,0,0,137],
+"_sync_motor_8h.html":[1,0,0,138],
+"_sync_motor_8h_source.html":[1,0,0,138],
+"_text_8cpp_source.html":[1,0,0,139],
+"_text_8h.html":[1,0,0,140],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01ae":[1,0,0,140,2],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea01a66f4d8d66e4614c1c900c5a1c37ff":[1,0,0,140,2,0],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea04e67f46cc2905135b5d376518542b12":[1,0,0,140,2,7],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea111c77888a1c99bf6aae9e70c460cf5c":[1,0,0,140,2,9],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea4924f28256f67f848f35fd2c52316425":[1,0,0,140,2,6],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea6a7fcf36ea744349687acad656884ee6":[1,0,0,140,2,5],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea96ea624f93518535cfa4cdbf874fc5a5":[1,0,0,140,2,4],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aea998ba698d626c693ac0221506d9b25f4":[1,0,0,140,2,2],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aeac13da57b6eda9c8ec23ed0a371600320":[1,0,0,140,2,8],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aead674b87cc573664b0ed19aea4dad9b28":[1,0,0,140,2,3],
+"_text_8h.html#a16b11be27a8e9362dd122c4d879e01aeaf00e74cf5eee391e33017bded0e16441":[1,0,0,140,2,1],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6":[1,0,0,140,1],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a2ca371d2e0d1ad3ac5b2b50adfafd9e1":[1,0,0,140,1,1],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a4c60231ccdc66a26e8496abe76576f24":[1,0,0,140,1,4],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a4e82b326f9c3de98460df5362aa44e92":[1,0,0,140,1,2],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6a77de5416cbae97c24743d0b479d3e942":[1,0,0,140,1,7],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6aa62cac0375f8d12dad808a2714811d1d":[1,0,0,140,1,8],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6aabd0755439b58817f974429b6fc24b75":[1,0,0,140,1,3],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ab7040a50973a299b4bb7a583c96daadd":[1,0,0,140,1,0],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ad45f89e02b92507cadf1f1116e9474fb":[1,0,0,140,1,11],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ad7558996cb619db166f38c76c75bb232":[1,0,0,140,1,10],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6ae1b2bf8507145590a0e4152cc9630d82":[1,0,0,140,1,9],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6af39976a2a2423b1817236bef5d2213e7":[1,0,0,140,1,6],
+"_text_8h.html#ad8ed01ff3ff33333d8e19db4d2818bb6af3c8353176bb407fb6b1b40efd5476d1":[1,0,0,140,1,5],
+"_text_8h_source.html":[1,0,0,140],
+"_text_form_8cpp_source.html":[1,0,0,141],
+"_text_form_8h.html":[1,0,0,142],
+"_text_form_8h_source.html":[1,0,0,142],
+"_transfer_function_8cpp_source.html":[1,0,0,143],
+"_transfer_function_8h.html":[1,0,0,144],
+"_transfer_function_8h_source.html":[1,0,0,144],
+"_transfer_function_form_8cpp_source.html":[1,0,0,145],
+"_transfer_function_form_8h.html":[1,0,0,146],
+"_transfer_function_form_8h_source.html":[1,0,0,146],
+"_transformer_8cpp_source.html":[1,0,0,147],
+"_transformer_8h.html":[1,0,0,148],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06":[1,0,0,148,2],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a18d745d4045365a77ecf886610922218":[1,0,0,148,2,6],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a4f417627b015a8fed7b3ebf0f8e0fdfe":[1,0,0,148,2,0],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a53db8ed07cc0e8c5b6cd377bf2a37e4f":[1,0,0,148,2,4],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06a5f05b987519c9c5bdc532be11940c61a":[1,0,0,148,2,8],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06ac9f8b56645f38eb0620cb69a914f3095":[1,0,0,148,2,3],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06acdee63c4174046055f9c960c38178741":[1,0,0,148,2,5],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06add500826fddc4ad0105a8d88bb8e8da7":[1,0,0,148,2,2],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06ae69f44260b5da3ed29f47164d6b97de0":[1,0,0,148,2,7],
+"_transformer_8h.html#ace6b3807048fabdaa8bbf0c8f8860d06afc14c39ecae15fd6b25da581ab530ed5":[1,0,0,148,2,1],
+"_transformer_8h_source.html":[1,0,0,148],
+"_transformer_form_8cpp_source.html":[1,0,0,149],
+"_transformer_form_8h.html":[1,0,0,150],
+"_transformer_form_8h_source.html":[1,0,0,150],
+"_workspace_8cpp_source.html":[1,0,0,151],
+"_workspace_8h.html":[1,0,0,152],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15":[1,0,0,152,1],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a0b19c55f1dfecc32f6572a67d37e8cc2":[1,0,0,152,1,9],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a1ef615af10b75825208fe612934cd993":[1,0,0,152,1,0],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a51add6c28e024f17f0d0dde52e23f466":[1,0,0,152,1,10],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a7088a60d72d0730404f0965f10dd0786":[1,0,0,152,1,5],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a7ce9843fb67511c2e4b20c707ad590d8":[1,0,0,152,1,1],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a85788d6fc58afde943ce8bb130461ac1":[1,0,0,152,1,3],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15a89ae894b55baca13320fdc0f71345795":[1,0,0,152,1,7],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15ac3e3dcfd8b3450a32dd2665d542695f2":[1,0,0,152,1,6],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15ad22104a7215f22fd9bcca5d8b56889ef":[1,0,0,152,1,8],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15adc8df3f3cd5a626ee5c327423dd7d825":[1,0,0,152,1,4],
+"_workspace_8h.html#a8f434816783a791128b48a39ae663f15aec53219b0d127b0c7c48bce6bc6618bb":[1,0,0,152,1,2],
+"_workspace_8h_source.html":[1,0,0,152],
+"_workspace_base_8cpp_source.html":[1,0,0,153],
+"_workspace_base_8h_source.html":[1,0,0,154],
+"_workspace_bitmaps_8cpp_source.html":[1,0,0,155],
+"annotated.html":[0,0],
+"class_about_form.html":[0,0,0],
+"class_about_form.html#a30a97b3857200c4cd50364b26d4cd3bb":[0,0,0,3],
+"class_about_form.html#a7c793ce416f184e009c72a198af116da":[0,0,0,2],
+"class_about_form.html#a856a64c4b8545cf8c8fa1b6f23080341":[0,0,0,0],
+"class_about_form.html#a87f1730d731ee0c7529d4af84fac92fc":[0,0,0,1],
+"class_about_form_base.html":[0,0,1],
+"class_about_form_base.html#a01a0cbc42c52e7eb69fa1337f756af7d":[0,0,1,18],
+"class_about_form_base.html#a02da06240394048e693c6ae3e2a69282":[0,0,1,16],
+"class_about_form_base.html#a1fae6815dc4f49df45f05f3893a332c7":[0,0,1,13],
+"class_about_form_base.html#a306c84f41395aee3200b887ec71ff11a":[0,0,1,21],
+"class_about_form_base.html#a34d37030073f1e71cc233a8d0d4a27dc":[0,0,1,19],
+"class_about_form_base.html#a37e22612779e67b33b66f6a3a7bb60c1":[0,0,1,11],
+"class_about_form_base.html#a3dbb1a9739786e22307f7ae4fb0617f1":[0,0,1,20],
+"class_about_form_base.html#a428f630068bebd4e0fdd258c0b8cd2ac":[0,0,1,7],
+"class_about_form_base.html#a4438eded1319f84ed19cf0350d819efb":[0,0,1,8],
+"class_about_form_base.html#a4470b5bcf193376d3a8849bdcba2acd4":[0,0,1,24],
+"class_about_form_base.html#a490a133019381aa2569ca04f517829ea":[0,0,1,9],
+"class_about_form_base.html#a5a2bb84e1eb7fc3b92d82a68fc93858a":[0,0,1,4],
+"class_about_form_base.html#a64ea9b42b326b773067de6d1b4f649f4":[0,0,1,14],
+"class_about_form_base.html#a6a33f787646eea29e95441b05c0409df":[0,0,1,26],
+"class_about_form_base.html#a6d243c886c28b231279798dd3cca6df4":[0,0,1,22],
+"class_about_form_base.html#a6fcacff0bfb56d11923d0f80e5560f70":[0,0,1,17],
"class_about_form_base.html#a74341fb9c17f6320745444ea4eb76df8":[0,0,1,10],
"class_about_form_base.html#a8d70d38cc7eb8f41bd833f18aafeaf30":[0,0,1,2],
"class_about_form_base.html#aa52e54457b4cf595f1714a0320458e6c":[0,0,1,0],
@@ -114,140 +249,5 @@ var NAVTREEINDEX1 =
"class_bus_form_base.html#a7d827c0d4128a4f6fd83dc23396bb894":[0,0,6,47],
"class_bus_form_base.html#a801768a5a9d92a52f69fb3eeb3ad0406":[0,0,6,18],
"class_bus_form_base.html#a82fe4711262bffeb2bb4bb442e1252ac":[0,0,6,9],
-"class_bus_form_base.html#a86f11b43c8b8762eba2233219590638c":[0,0,6,13],
-"class_bus_form_base.html#a8731cdb29c22002ed2d63bceaba322a5":[0,0,6,86],
-"class_bus_form_base.html#a8d5b1711fddb03dd93655a6427bdf482":[0,0,6,28],
-"class_bus_form_base.html#a9737e676f0eb420635a0acf49a0f7f2e":[0,0,6,43],
-"class_bus_form_base.html#a97c195c038c7bac1ec32d69c87d7f3b6":[0,0,6,38],
-"class_bus_form_base.html#a9852553d782d38de865ba5c5960983a4":[0,0,6,15],
-"class_bus_form_base.html#aa017dca9dccd43a28236173370b89bb3":[0,0,6,32],
-"class_bus_form_base.html#aa206919e95a050a9c9b2a471e6b5c4c9":[0,0,6,87],
-"class_bus_form_base.html#aa9546384b368a06197565391b6c38315":[0,0,6,49],
-"class_bus_form_base.html#aaac7957c8de855891e7e102562ca722f":[0,0,6,30],
-"class_bus_form_base.html#aac4df99b23e332ed5c950ddbc7247715":[0,0,6,41],
-"class_bus_form_base.html#aad9b945cf9842a88b1e61085963eab7a":[0,0,6,42],
-"class_bus_form_base.html#aae93403e83e2c7f5e2a769a2bffccd83":[0,0,6,40],
-"class_bus_form_base.html#ab29a9e37fdfa9b3c20ce6aad1191ee69":[0,0,6,63],
-"class_bus_form_base.html#ab4d194132dd3d327f33cbe91e324537a":[0,0,6,5],
-"class_bus_form_base.html#ab51f67bf4aa7de715e867203af072a05":[0,0,6,83],
-"class_bus_form_base.html#ab5b4dc715c6d9fde94f9cfa5a984bf11":[0,0,6,50],
-"class_bus_form_base.html#ab73005fe27a337b523a5f272d4b82bea":[0,0,6,20],
-"class_bus_form_base.html#abd3346fc4bdb1cf185138043359e324a":[0,0,6,19],
-"class_bus_form_base.html#abf7d8daf69f4133fc8175a7653b8ff99":[0,0,6,23],
-"class_bus_form_base.html#ac1120978e7aa07573b91813a8ae68a57":[0,0,6,0],
-"class_bus_form_base.html#ac64b7fddaa3ffe0e7671b920495cfa9f":[0,0,6,14],
-"class_bus_form_base.html#aca83346b86e9a3b13447111e109c99e3":[0,0,6,57],
-"class_bus_form_base.html#ace34b60ad7f00f16e1b75994326cab45":[0,0,6,29],
-"class_bus_form_base.html#acf8bd66a3a96a1eed23d011b987a0c3d":[0,0,6,2],
-"class_bus_form_base.html#ad21eac8e9b4bae9eeb6d6b74b0504917":[0,0,6,3],
-"class_bus_form_base.html#ad9c07ce14e481e6d20062ddeb3464675":[0,0,6,51],
-"class_bus_form_base.html#ada95b25afb1d645438a2d19e580c996d":[0,0,6,10],
-"class_bus_form_base.html#adac2978ce17e56e8ad03d2f7da7be343":[0,0,6,48],
-"class_bus_form_base.html#adc4f4cf29badd77f8e648fddeef4ce94":[0,0,6,75],
-"class_bus_form_base.html#ae423bd94fc53bce76329dcb7dafc524e":[0,0,6,31],
-"class_bus_form_base.html#ae452c5575974492125f1568338c8b9ae":[0,0,6,17],
-"class_bus_form_base.html#ae6c7cbbf7aa4fa53647b3a00f1c3fffc":[0,0,6,85],
-"class_bus_form_base.html#ae9d2477b6b6cfbb03af205a96d5c4928":[0,0,6,80],
-"class_bus_form_base.html#aedb47f128db9b468dd2a58ad73df74b1":[0,0,6,56],
-"class_bus_form_base.html#af0c5a0347c1b7fd2a5bdaad95e4574e1":[0,0,6,44],
-"class_bus_form_base.html#af259e49af9eaa04b29b193c73ba2d9de":[0,0,6,58],
-"class_bus_form_base.html#af5b28bc2cd481ebc7a3bb99261727683":[0,0,6,45],
-"class_bus_form_base.html#af5fbe5a2f9281bfaec01d0b6d158a71b":[0,0,6,73],
-"class_bus_form_base.html#af8503eb53503f90af53b8206c16e4629":[0,0,6,79],
-"class_bus_form_base.html#afb24ac3dd51199ac3984469bb7df3fce":[0,0,6,59],
-"class_bus_form_base.html#afb7b2bed6e9d25865022dfd10baadc58":[0,0,6,81],
-"class_bus_form_base.html#afc825c5f3a39d9853d82ae9f88a2b4c4":[0,0,6,4],
-"class_bus_form_base.html#aff5d6c90e212f2ca0fa4856b65dcdb15":[0,0,6,35],
-"class_bus_form_base.html#affaa6a2355ae588b3f6da69b92ba90b0":[0,0,6,34],
-"class_bus_form_base.html#affdfd06744bc4def0c85f658f4682d60":[0,0,6,66],
-"class_camera.html":[0,0,7],
-"class_camera.html#a01f94c3543f56ede7af49dc778f19331":[0,0,7,0],
-"class_camera.html#a0593049968c312454ac880588d6e4195":[0,0,7,7],
-"class_camera.html#a0ef3092f83fe959ac5939c75e910bb3e":[0,0,7,12],
-"class_camera.html#a2b81311bec97f4c7dfdd94c32416da85":[0,0,7,6],
-"class_camera.html#a2df233cd73c2ca8486dfac9a4aff27ef":[0,0,7,14],
-"class_camera.html#a3fb8d75e1dbaee73562a520eb0529d28":[0,0,7,5],
-"class_camera.html#a46434cdf939f99eb9d7b6a6260c6954a":[0,0,7,17],
-"class_camera.html#a464f3fde97dd3cf958a7152af31073f2":[0,0,7,2],
-"class_camera.html#a4ddf44273d5228cea6b4b9a27c08dd6d":[0,0,7,11],
-"class_camera.html#a4e9ee902f6c711187fb04ed7f90d2ef7":[0,0,7,3],
-"class_camera.html#a6e54494ab24eb601949faa55c1d1654f":[0,0,7,8],
-"class_camera.html#a7ea30c697691da07dd983c3395b210a8":[0,0,7,13],
-"class_camera.html#a9831a7fda14d39b2fb1ec6c1141d88fc":[0,0,7,16],
-"class_camera.html#abac6929baae257d9fb55e894371b140b":[0,0,7,10],
-"class_camera.html#ad092fd057fb12a1d73214ecd81f8cde3":[0,0,7,4],
-"class_camera.html#ad1897942d0ccf91052386388a497349f":[0,0,7,1],
-"class_camera.html#aeb4eb52f0f05f5641cd71e4b8505e50a":[0,0,7,18],
-"class_camera.html#aefeb0e4d35db499c1049173f1c0be1c2":[0,0,7,15],
-"class_camera.html#aefeec0ff0adf22ed4e26b0e3f0c7fb38":[0,0,7,9],
-"class_capacitor.html":[0,0,8],
-"class_capacitor.html#a00e808708e16b87c80fc650e5710b84e":[0,0,8,10],
-"class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d":[0,0,8,6],
-"class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a":[0,0,8,12],
-"class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580":[0,0,8,7],
-"class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6":[0,0,8,14],
-"class_capacitor.html#a503100032b983414ef469907e4f3fd6a":[0,0,8,8],
-"class_capacitor.html#a581f07c0fa802bbdd0f35a70cc79d3b4":[0,0,8,15],
-"class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a":[0,0,8,11],
-"class_capacitor.html#a94d378c922467214b394931ec0eb01c8":[0,0,8,5],
-"class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5":[0,0,8,4],
-"class_capacitor.html#ab2c5403403c3f8b4ee1ae737ece4e1cc":[0,0,8,13],
-"class_capacitor.html#ab7047062b5e731e86815fe5b61e622da":[0,0,8,1],
-"class_capacitor.html#ac5e08b3cca7884bb5f26a8ffcf8fcccf":[0,0,8,2],
-"class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf":[0,0,8,3],
-"class_capacitor.html#aeba70b8c4a1ed3609481b46c5ace8c6c":[0,0,8,0],
-"class_capacitor.html#aef6926699c93145d4b3c62efd942b269":[0,0,8,9],
-"class_chart_view.html":[0,0,10],
-"class_chart_view.html#a06514137ceea55c0fe387978ea13e214":[0,0,10,20],
-"class_chart_view.html#a0fe6be1c5bf29fd058787f1a47325c1a":[0,0,10,10],
-"class_chart_view.html#a143b7ffc99d2dbcc82ad4cf4b96d5db2":[0,0,10,22],
-"class_chart_view.html#a1e92dd6533c5ebcf6875cb9e517b7b4e":[0,0,10,19],
-"class_chart_view.html#a1fe1991c6239632b4af01186b05e062f":[0,0,10,35],
-"class_chart_view.html#a201c868954eb1c79dda37ffdcc2a0eeb":[0,0,10,36],
-"class_chart_view.html#a231d6a0f6298df0c764f0dcc601e9f9f":[0,0,10,28],
-"class_chart_view.html#a28da38ba24dad74b833b7bc5652358ed":[0,0,10,16],
-"class_chart_view.html#a293128b4b91a4a838a792076f87cde0a":[0,0,10,17],
-"class_chart_view.html#a2b74fcf37a33a8654c3c06008f4e9278":[0,0,10,37],
-"class_chart_view.html#a38699e754304878e9a589f730c027dec":[0,0,10,14],
-"class_chart_view.html#a4957f22dfe582cd2557b005a010cf2d2":[0,0,10,1],
-"class_chart_view.html#a4a2abddb77a734eeb7992ca8434bb358":[0,0,10,7],
-"class_chart_view.html#a4b43a87338084b4d163b1a2f002ff9d7":[0,0,10,15],
-"class_chart_view.html#a5111d9293952ca916aecd5ff7f597950":[0,0,10,21],
-"class_chart_view.html#a5666f8aedecd943ad19d72fc533dcfd9":[0,0,10,6],
-"class_chart_view.html#a597a1cde3693f14427a898b61bdc05a9":[0,0,10,9],
-"class_chart_view.html#a598645b015715cdc22d08d3875a0a5bb":[0,0,10,31],
-"class_chart_view.html#a6034bc00b41785d6003e499778a6a69f":[0,0,10,5],
-"class_chart_view.html#a621ebe0264d241f54cf4b65efe705618":[0,0,10,0],
-"class_chart_view.html#a6aacbc6267d7c01cc5b3f78fc4ba50fe":[0,0,10,40],
-"class_chart_view.html#a6e29b198271efa3c6d5ca9d5ae3ae773":[0,0,10,24],
-"class_chart_view.html#a70200389b94906b89d2454b27ac2469c":[0,0,10,30],
-"class_chart_view.html#a7e069208db024a903a90f72f9057b951":[0,0,10,29],
-"class_chart_view.html#a7f7e1d962ab76be37b89f05e6b97cfc0":[0,0,10,34],
-"class_chart_view.html#a877c14527e957c85037b7705d196733d":[0,0,10,18],
-"class_chart_view.html#a88dfb946342df7c344bd3578d207dcd9":[0,0,10,23],
-"class_chart_view.html#a89e198037f79887a33ce21c949021455":[0,0,10,32],
-"class_chart_view.html#a8a374b2c62da0ef13a7d292482abb845":[0,0,10,12],
-"class_chart_view.html#a8abb35d06074a8370b222fafae8db028":[0,0,10,8],
-"class_chart_view.html#a8f57c26ce982fcf91626e8121b625f70":[0,0,10,13],
-"class_chart_view.html#a91cae14a0b48e5755cb44f05e1d9c0b0":[0,0,10,27],
-"class_chart_view.html#a95e9181dd41eeff08964054746be305b":[0,0,10,26],
-"class_chart_view.html#a9b4099d6352e09be545265a7168860f2":[0,0,10,2],
-"class_chart_view.html#ac72c20e03443d91fca200305fc6bbad1":[0,0,10,4],
-"class_chart_view.html#ad174b0057b89c6dd4b6aed93a467acd1":[0,0,10,33],
-"class_chart_view.html#ad3a0740630473e266d6406a561053ef4":[0,0,10,3],
-"class_chart_view.html#ae6593489cbd815282f77f5a073c34e55":[0,0,10,25],
-"class_chart_view.html#aec5e3605401ad966f03113a60f05fe1c":[0,0,10,38],
-"class_chart_view.html#af9953c97ae04ccb534ee8d8f772330a4":[0,0,10,11],
-"class_chart_view.html#affb3ae7ee1147240f5180926a07425b5":[0,0,10,39],
-"class_chart_view_base.html":[0,0,11],
-"class_chart_view_base.html#a0ab362bd15f37bf94201b6e40d0ba3fa":[0,0,11,15],
-"class_chart_view_base.html#a0d66080c5a61b4a544111cd829cd88b8":[0,0,11,50],
-"class_chart_view_base.html#a237d5355111659d84fa4e61569deeecc":[0,0,11,30],
-"class_chart_view_base.html#a23f74f17c47b4352def0919e9efd3afa":[0,0,11,13],
-"class_chart_view_base.html#a250a4f7292e38ffadf609f07dbbc0323":[0,0,11,27],
-"class_chart_view_base.html#a27408a2fa4cc3c63a7655ddc6bca7412":[0,0,11,8],
-"class_chart_view_base.html#a27f1cf05d785e4f230b3093ab807972c":[0,0,11,26],
-"class_chart_view_base.html#a321240363d83ca86670fb4934f1d67f7":[0,0,11,5],
-"class_chart_view_base.html#a34f689775bc42f1f11a7b84067a98808":[0,0,11,37],
-"class_chart_view_base.html#a407b4fc3b5f891ff37cd8475f0f6ab19":[0,0,11,20]
+"class_bus_form_base.html#a86f11b43c8b8762eba2233219590638c":[0,0,6,13]
};
diff --git a/docs/doxygen/html/navtreeindex10.js b/docs/doxygen/html/navtreeindex10.js
index e50d7f2..00bcac4 100644
--- a/docs/doxygen/html/navtreeindex10.js
+++ b/docs/doxygen/html/navtreeindex10.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX10 =
{
+"class_switching_form_base.html#a12a2da9f3c7ed16f5e9965c13d166f96":[0,0,93,3],
+"class_switching_form_base.html#a2816bcf1b23f2e79b0b58a0a8de0ba24":[0,0,93,16],
+"class_switching_form_base.html#a2c79761f5c68a966661865a91e0a4c32":[0,0,93,25],
+"class_switching_form_base.html#a2f55dcdb9ba37f9c4e1428f6767b168e":[0,0,93,2],
+"class_switching_form_base.html#a4120a54ec6ba678f97f6f23b27453f6c":[0,0,93,6],
+"class_switching_form_base.html#a461522bb3739dd790b968c9536239d3d":[0,0,93,22],
+"class_switching_form_base.html#a53be89419785168b8a74cbbc4baf4da5":[0,0,93,17],
+"class_switching_form_base.html#a5682b2c0825b46e0eb3ac8990b1b5c7a":[0,0,93,21],
+"class_switching_form_base.html#a67f95f0d053dd46cdacb20848c0d9c84":[0,0,93,12],
+"class_switching_form_base.html#a7672f7fad7fd63de788006d8c67668d3":[0,0,93,10],
+"class_switching_form_base.html#a7d645a4f981511ba46e549c89a624533":[0,0,93,18],
+"class_switching_form_base.html#a84b3ee2c021abbe31d8c42c995a89d56":[0,0,93,1],
+"class_switching_form_base.html#a86f434b7cd754bf15e415d394f5101a8":[0,0,93,23],
+"class_switching_form_base.html#a92d178826ef95170e623bb4ad7d33171":[0,0,93,0],
+"class_switching_form_base.html#aab2b0440e8a1af4a2c16ae3d88c4713a":[0,0,93,24],
+"class_switching_form_base.html#ab606b039351e82f6b5115336d0edafd5":[0,0,93,9],
+"class_switching_form_base.html#ab8d540ac6bae77e44f30b8ffce030e07":[0,0,93,19],
+"class_switching_form_base.html#ac1bb1bf80e6526bfd97e54277ef8da3c":[0,0,93,5],
+"class_switching_form_base.html#ac3ca747257bb9ca0fa1ce1c09a6e5342":[0,0,93,8],
+"class_switching_form_base.html#ac839296c57c6c380547180c3c7180f5c":[0,0,93,30],
+"class_switching_form_base.html#acc549ba43edb9d7ba4ca938982fd794b":[0,0,93,7],
+"class_switching_form_base.html#ad0c13eb28aee4127889405283bb72904":[0,0,93,28],
+"class_switching_form_base.html#ad17112f4d131937423f551720066177a":[0,0,93,26],
+"class_switching_form_base.html#ad21d7949427c973081f7461620506335":[0,0,93,13],
+"class_switching_form_base.html#adfc965bcb8575b5b0d36e7ad311d2d0b":[0,0,93,27],
+"class_switching_form_base.html#ae113c3c97e21037e6561811a094436a0":[0,0,93,14],
+"class_switching_form_base.html#ae6854ecd50f251c6c5907dfa6945fdc3":[0,0,93,4],
+"class_switching_form_base.html#afd2e5b45c5a295b58a255ba0159ad8d4":[0,0,93,11],
+"class_sync_generator.html":[0,0,94],
+"class_sync_generator.html#a05fbc44f44fb207083a7550e421f8bb4":[0,0,94,10],
+"class_sync_generator.html#a23d63853faf0a4ee4aa1301cb234c603":[0,0,94,15],
+"class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97":[0,0,94,4],
+"class_sync_generator.html#a45ad59011c69a3b08c35ca16af6a5de6":[0,0,94,14],
+"class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec":[0,0,94,13],
+"class_sync_generator.html#a54c742a72e8d9d7da2990b1a455b899a":[0,0,94,8],
+"class_sync_generator.html#a57b0e5d734736aa15d7a0ae59c21f5cc":[0,0,94,3],
+"class_sync_generator.html#a6cbf05435af171775cbaf81d8beb6474":[0,0,94,2],
+"class_sync_generator.html#a710965e1539d2199096bc5e71116de8a":[0,0,94,11],
+"class_sync_generator.html#a7f825dd5949d3bf5b49e4e4b788b9de3":[0,0,94,1],
+"class_sync_generator.html#a87b438b8b95a119ac298a49fd4248272":[0,0,94,6],
+"class_sync_generator.html#a9130e8714c1518683540f587aca1201f":[0,0,94,5],
+"class_sync_generator.html#a9454438d059269c194e1aa648e122f7e":[0,0,94,9],
+"class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8":[0,0,94,12],
+"class_sync_generator.html#af66e02540c23285395e3592d1c822f99":[0,0,94,0],
+"class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab":[0,0,94,7],
+"class_sync_machine_form.html":[0,0,96],
+"class_sync_machine_form.html#a1a4fc8f4ae070df13b73c7b400e0dc43":[0,0,96,3],
+"class_sync_machine_form.html#a3bc93d1fd6285fcd5e11a4c18541914e":[0,0,96,9],
+"class_sync_machine_form.html#a53fd325bac54a9509ea530926bd50825":[0,0,96,0],
+"class_sync_machine_form.html#a61b60bfc52876775f74160ae9075c697":[0,0,96,12],
+"class_sync_machine_form.html#a9421e44f0914790e23bcecaa222eaecc":[0,0,96,2],
+"class_sync_machine_form.html#a9c53acf928dd35b648d0a67b69fa8b46":[0,0,96,6],
+"class_sync_machine_form.html#a9fea7ef16899f918e5cedad577f960e7":[0,0,96,1],
+"class_sync_machine_form.html#aa6bf6f86e79a0329f876996b651d3c72":[0,0,96,7],
+"class_sync_machine_form.html#ac21b7bb1c3261b3ff128d9339a5bef51":[0,0,96,11],
+"class_sync_machine_form.html#ac4699ffcdb2c8f09e8610cb1afd50e05":[0,0,96,8],
+"class_sync_machine_form.html#ad7899edef11e6c72782eeef5aecfec54":[0,0,96,10],
+"class_sync_machine_form.html#aea6339fd7121c438af87d8515490ab06":[0,0,96,5],
+"class_sync_machine_form.html#aed6770180b4f2efb07c8df061e2fbd03":[0,0,96,4],
+"class_sync_machine_form_base.html":[0,0,97],
+"class_sync_machine_form_base.html#a0045396673e3acd9fb6a21982b7d7596":[0,0,97,22],
+"class_sync_machine_form_base.html#a0063a2e8df81e75b32e0fac571c921ae":[0,0,97,34],
+"class_sync_machine_form_base.html#a05439a30d63c78be06d1d046c0cc59d8":[0,0,97,87],
+"class_sync_machine_form_base.html#a0580ac7326c742ffe05d7791d83a52d7":[0,0,97,83],
+"class_sync_machine_form_base.html#a05cfcbb0cfa2e3e4ec07a7fba1bdf5d6":[0,0,97,61],
+"class_sync_machine_form_base.html#a0c385577ff27d8d9ed1a87a22fce73fd":[0,0,97,63],
+"class_sync_machine_form_base.html#a0dbd47d991d7750b3368d84b06d3c361":[0,0,97,0],
+"class_sync_machine_form_base.html#a102368df6855d5ba275a49ffae593168":[0,0,97,15],
+"class_sync_machine_form_base.html#a11249eb9f833be5b91c3f684477be7aa":[0,0,97,12],
+"class_sync_machine_form_base.html#a138fa57d3582962bae07d035e63b586d":[0,0,97,74],
+"class_sync_machine_form_base.html#a15b9a853d75e1e59084cf84130bfbbc2":[0,0,97,78],
+"class_sync_machine_form_base.html#a1c9124d5e5449d28ae8b0af31a651a25":[0,0,97,28],
+"class_sync_machine_form_base.html#a1ed492083cd0abec88ace3965553308b":[0,0,97,56],
+"class_sync_machine_form_base.html#a21dbc2fc03aef37e45e1cf3a63da9551":[0,0,97,55],
+"class_sync_machine_form_base.html#a230d01b1c29375bdfd3063d9097f9f88":[0,0,97,8],
+"class_sync_machine_form_base.html#a24d1c0a769de296404d9697ff6bba278":[0,0,97,9],
+"class_sync_machine_form_base.html#a25dfe7fcf1465ef808fd652a5cd6b2e1":[0,0,97,64],
+"class_sync_machine_form_base.html#a2d7690b252b2b22d5b950d04b9757bb4":[0,0,97,21],
+"class_sync_machine_form_base.html#a2f22b959d0d97b7ad3ee6de5557ad976":[0,0,97,52],
+"class_sync_machine_form_base.html#a38a81a205d2112a58084b2d6cc13380a":[0,0,97,24],
+"class_sync_machine_form_base.html#a3aa2c493b7430078bc17a34bb8cc476b":[0,0,97,43],
+"class_sync_machine_form_base.html#a3db4e4cfd2fd42f9ce6ab3f72952f6ba":[0,0,97,44],
+"class_sync_machine_form_base.html#a3f1c8401a39935ef1f589d68af2be97a":[0,0,97,40],
+"class_sync_machine_form_base.html#a4112b3c631d0ceec0178fc05ea1b120c":[0,0,97,2],
+"class_sync_machine_form_base.html#a4496bfac69450fe5a10baa9dbc4888a6":[0,0,97,80],
+"class_sync_machine_form_base.html#a45f5bf24827dfcda99e71f83cfb3fa5b":[0,0,97,29],
+"class_sync_machine_form_base.html#a46fe41a58c06bedeab99cd190921e545":[0,0,97,4],
+"class_sync_machine_form_base.html#a4ba97e9dc30c24a0daf0ad3771823df0":[0,0,97,77],
+"class_sync_machine_form_base.html#a4fca8015f54006f8b79faf8bb6d3eb09":[0,0,97,26],
+"class_sync_machine_form_base.html#a5133c66f455c7a5597e72b9b367e0fc8":[0,0,97,47],
+"class_sync_machine_form_base.html#a5735d89d9451e76734467e14779a7ab0":[0,0,97,49],
+"class_sync_machine_form_base.html#a5a091446eebeeb3c5116fa87aeda535b":[0,0,97,79],
+"class_sync_machine_form_base.html#a5dcc03c3e17f06e0914f3209120a6329":[0,0,97,35],
+"class_sync_machine_form_base.html#a5fd0741a7ac3e8613cc01a28933b4ea8":[0,0,97,11],
+"class_sync_machine_form_base.html#a681513dcfa84f4aab5803299fd8ae766":[0,0,97,37],
+"class_sync_machine_form_base.html#a6b3830705a2208493714c1abdb8fa0b8":[0,0,97,70],
+"class_sync_machine_form_base.html#a6c2c10dd63d1ace53d882b477d037d75":[0,0,97,30],
+"class_sync_machine_form_base.html#a6dba8c557f3e20f9982c084e5e5a74e3":[0,0,97,59],
+"class_sync_machine_form_base.html#a6fedceb84c293f69fbcb6290ea529798":[0,0,97,84],
+"class_sync_machine_form_base.html#a717b5ba1d7ed6b4026b527ce12b2bf41":[0,0,97,72],
+"class_sync_machine_form_base.html#a7367ed87a446dc08067af218b8bb2215":[0,0,97,31],
+"class_sync_machine_form_base.html#a7530a37ed44f0732758708aabf7f748c":[0,0,97,19],
+"class_sync_machine_form_base.html#a76040f3058374ee765d4baa6b1b07df7":[0,0,97,7],
+"class_sync_machine_form_base.html#a7849d5f397e132e164b0c1952ddaa0a3":[0,0,97,82],
+"class_sync_machine_form_base.html#a79579458c023bf56d0df6f0356e58c9b":[0,0,97,53],
+"class_sync_machine_form_base.html#a7a035fe2031ab6eae1513f73adabd0c3":[0,0,97,32],
+"class_sync_machine_form_base.html#a7c6a05f65b77bdad43f7f92c2b184077":[0,0,97,50],
+"class_sync_machine_form_base.html#a909b922a1f157d6013a7baaf22796d24":[0,0,97,86],
+"class_sync_machine_form_base.html#a93fd03ae353875c5e04ccdb57800f821":[0,0,97,58],
+"class_sync_machine_form_base.html#a959fea39df34cb124ab6a0ad78d78712":[0,0,97,3],
+"class_sync_machine_form_base.html#a97509be24b2add48e9d23d5b7020b076":[0,0,97,48],
+"class_sync_machine_form_base.html#a9c402618cc9ae56ca3780d7420bf5722":[0,0,97,69],
+"class_sync_machine_form_base.html#a9d4d3f8b66519903eaac859b0a5314e9":[0,0,97,6],
+"class_sync_machine_form_base.html#a9e63594f861d223182734011b24030dc":[0,0,97,14],
+"class_sync_machine_form_base.html#a9fd3b15e35d1753059759886bf918130":[0,0,97,81],
+"class_sync_machine_form_base.html#aa2a774f00e17cfec0ef2efccc086b990":[0,0,97,25],
+"class_sync_machine_form_base.html#aa53388881170a5aceb737b0c58315351":[0,0,97,16],
+"class_sync_machine_form_base.html#aab2926cd0e56d2cb283fc74e5aa20f5d":[0,0,97,10],
+"class_sync_machine_form_base.html#aacac6cfe475bf4176dcf746417cdd432":[0,0,97,88],
+"class_sync_machine_form_base.html#aaff0a6a0030e1d0928f6a69f27bb1180":[0,0,97,46],
+"class_sync_machine_form_base.html#ab221b3b73b231252dfe605efa5268f59":[0,0,97,39],
+"class_sync_machine_form_base.html#ab922478387b0a89d0d5a4ab0d1500a4a":[0,0,97,27],
+"class_sync_machine_form_base.html#aba28c35b0281a75f7ed7b57e6ceed52c":[0,0,97,5],
+"class_sync_machine_form_base.html#ac195ae144957568ef98e5e3f9ba31388":[0,0,97,76],
+"class_sync_machine_form_base.html#ac3d26a423d2fd7243c9361d360b0e6d3":[0,0,97,42],
+"class_sync_machine_form_base.html#ac4a8ed68ffba04940adbf6e3070291a4":[0,0,97,65],
+"class_sync_machine_form_base.html#ac71f3c270c8c796dd427ee6bd32f1c60":[0,0,97,38],
+"class_sync_machine_form_base.html#acc82ce4087f0fcde8e42e2b7f111cfcc":[0,0,97,57],
+"class_sync_machine_form_base.html#acef45c78c5bbaf1dee5b3abc895e8baf":[0,0,97,17],
+"class_sync_machine_form_base.html#ad3b5932a14988843670c516861029517":[0,0,97,33],
+"class_sync_machine_form_base.html#ad3dab6cd719a3464b4bca0e92063b20c":[0,0,97,23],
+"class_sync_machine_form_base.html#ad4789258aa31c9d3c699013ce6f3406f":[0,0,97,66],
+"class_sync_machine_form_base.html#ad47c151f396bbad83787de190055ea65":[0,0,97,20],
+"class_sync_machine_form_base.html#ad6e4bc150fc34819eaa2333d1d4cb2b8":[0,0,97,13],
+"class_sync_machine_form_base.html#ad720f87582570c72919f9094987bda08":[0,0,97,67],
+"class_sync_machine_form_base.html#ade8616fc5502cc760867821d52b2a697":[0,0,97,75],
+"class_sync_machine_form_base.html#ae0b5c587ae39b5e558bb298eb1f180b0":[0,0,97,41],
+"class_sync_machine_form_base.html#ae2aa2eb6ad549c8b918389df69b6af36":[0,0,97,18],
+"class_sync_machine_form_base.html#ae4c8099099059b6e5b8d4791991929c5":[0,0,97,51],
+"class_sync_machine_form_base.html#ae69f427b9931e920bcb615a15e74484e":[0,0,97,68],
+"class_sync_machine_form_base.html#aec2123bb23ad47344e000bf2e460117e":[0,0,97,45],
"class_sync_machine_form_base.html#aedf1ffdbc6b3cec7614126d733a12f4a":[0,0,97,36],
"class_sync_machine_form_base.html#aeebf10df4806932d008ed063fcbb9730":[0,0,97,1],
"class_sync_machine_form_base.html#af0a0b3141b006a8578e841ce3c124c70":[0,0,97,73],
@@ -8,246 +149,105 @@ var NAVTREEINDEX10 =
"class_sync_machine_form_base.html#af6cadcca8459ce7d9e63a43fa739534c":[0,0,97,54],
"class_sync_machine_form_base.html#af83e4364f1f073fcfd96abc6ff38c70e":[0,0,97,85],
"class_sync_machine_form_base.html#affe47bc4b7b233dcf04ba9241d2d399f":[0,0,97,71],
-"class_sync_motor.html":[0,0,98],
-"class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313":[0,0,98,5],
-"class_sync_motor.html#a038162c828595f58782fe97dea2c864d":[0,0,98,10],
-"class_sync_motor.html#a0fedd06ef0833ce4d17869343b0810cb":[0,0,98,6],
-"class_sync_motor.html#a12ac76afa871fc58cc0f27332723fc38":[0,0,98,12],
-"class_sync_motor.html#a222d998e274674a0e0ce4a1ed53e8654":[0,0,98,0],
-"class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210":[0,0,98,8],
-"class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f":[0,0,98,11],
-"class_sync_motor.html#a435a9cfd24d182d8ab76a856fa4d0bb7":[0,0,98,2],
-"class_sync_motor.html#a6068c7d22470a3996df2efda54c24972":[0,0,98,1],
-"class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278":[0,0,98,4],
-"class_sync_motor.html#a9b42283370ea4d4707b78b97e8c6d864":[0,0,98,3],
-"class_sync_motor.html#aca41191da8383d577e3717d3e38cdf2b":[0,0,98,9],
-"class_sync_motor.html#ae04da3b89a530e1457ff490b22b9f028":[0,0,98,7],
-"class_text.html":[0,0,100],
-"class_text.html#a03c67acf11b90374ded2a8cb8ec1088f":[0,0,100,8],
-"class_text.html#a06e740065c875633e458c0d8f860c43e":[0,0,100,6],
-"class_text.html#a0d0629dec49cece668f41d2a85062f39":[0,0,100,40],
-"class_text.html#a0d37b9c067e62e10ebd1f0f74dbb5e66":[0,0,100,24],
-"class_text.html#a15e4192a98a95baa22fd7a423efb5df9":[0,0,100,9],
-"class_text.html#a255ba9b693f614b16986ac238c28f66e":[0,0,100,25],
-"class_text.html#a2d07db0c15bdbd9d7056ac794f524f57":[0,0,100,36],
-"class_text.html#a2d49e5c280e205125b149f7777ae30c7":[0,0,100,2],
-"class_text.html#a2f40cb8ed553f1680bf402f9c8e2b541":[0,0,100,35],
-"class_text.html#a340b00ac7a17cd9a1f37f63275715638":[0,0,100,11],
-"class_text.html#a3b050d27140840eadcdce567df42d1e2":[0,0,100,7],
-"class_text.html#a3f58eb1736e822f96882ded57938dbbd":[0,0,100,13],
-"class_text.html#a41eabb28f45124d5da3ec2d703ce9018":[0,0,100,15],
-"class_text.html#a4d1b7f1b53288297dfc8f77be4c37ac4":[0,0,100,38],
-"class_text.html#a4f273ea7008c72533327c25caff2e917":[0,0,100,3],
-"class_text.html#a51c55b9272f653cfc3cdafe665d5dde0":[0,0,100,4],
-"class_text.html#a5eb67f2bf595a78858733c96a5bc05d6":[0,0,100,26],
-"class_text.html#a6743a08fc0d1d8b96db99eab48eadb8f":[0,0,100,19],
-"class_text.html#a7010e26ac225166d3a7f23118bf45f74":[0,0,100,32],
-"class_text.html#a7e88aef941ba0b3dba303c4370b0bb7a":[0,0,100,29],
-"class_text.html#a80916b96c94d30abd8d76dcbf01d580d":[0,0,100,12],
-"class_text.html#a8bab7377ac548d1883dcbbe2489c5ff1":[0,0,100,33],
-"class_text.html#a9836ec9395fdd3e0ce1f1914219fe360":[0,0,100,37],
-"class_text.html#a9923c820cd77b411257ba48beceafeaa":[0,0,100,16],
-"class_text.html#a9f05c1520fe691515ee15a0b63ca9b28":[0,0,100,14],
-"class_text.html#aa32f9156fbbe783fab5d90072667e2c3":[0,0,100,23],
-"class_text.html#aa722e4df566518900e4f2cc1f1af2f9c":[0,0,100,28],
-"class_text.html#ab3e26143fccc52699bcc5149cae852bc":[0,0,100,0],
-"class_text.html#ab3f1487162842f26d6d50b298bb3142d":[0,0,100,18],
-"class_text.html#abe911e27cd723c0ab51f63d8f27683d1":[0,0,100,20],
-"class_text.html#ac045b28b3621a5fddb3e5ac86889bfca":[0,0,100,39],
-"class_text.html#ac0ab42a8d5145cd1d780f695d0e6e64f":[0,0,100,34],
-"class_text.html#ac19aa2e04d68965adadee0c67daca99e":[0,0,100,41],
-"class_text.html#ac6383f5f8e424f3c8cf6f37ac9371dcf":[0,0,100,27],
-"class_text.html#ac8107fb05d19dbaf681af76a91ea739b":[0,0,100,1],
-"class_text.html#ad251de30122437e2a311aa60e8ed390a":[0,0,100,31],
-"class_text.html#ad696293ace753aba46568c76b1adff4e":[0,0,100,21],
-"class_text.html#aea6772b57e5129e87926b6a35d90f74e":[0,0,100,10],
-"class_text.html#aef377b465f00fe9aec996e122c1bb23a":[0,0,100,22],
-"class_text.html#af025bbbb8d5619929df7817f98e23597":[0,0,100,5],
-"class_text.html#afcd995d8a0b3921cd33dd305b586e3f7":[0,0,100,30],
-"class_text.html#afe1f86a497f34cee4809cbd7fda24dc3":[0,0,100,17],
-"class_text_form.html":[0,0,101],
-"class_text_form.html#a05f71762d18640d7ee7b85cf8cfde0ee":[0,0,101,15],
-"class_text_form.html#a098066e96da254f13b5cd2b0e8977e43":[0,0,101,7],
-"class_text_form.html#a1268fce1f817bd9ff0626a24c0aabda7":[0,0,101,21],
-"class_text_form.html#a14ccad2b03e8017c02eb632fbe02df2a":[0,0,101,0],
-"class_text_form.html#a21a3fa61ce11a198e4a0cf086a85e61b":[0,0,101,10],
-"class_text_form.html#a2946f7590a66a55d3ae63a6def86a8f3":[0,0,101,8],
-"class_text_form.html#a29a135685c4f5f6801abc50ab48d97f9":[0,0,101,11],
-"class_text_form.html#a3b32cfbb221700c5cde1146dd9ba0ac3":[0,0,101,12],
-"class_text_form.html#a4bbd73071ce20cf1c805139af58d2e77":[0,0,101,5],
-"class_text_form.html#a4e3ecb63b41fe8e1592ba1bdb57cf89f":[0,0,101,18],
-"class_text_form.html#a53d385f26fb4bf90e52db6e4c1d3b49a":[0,0,101,14],
-"class_text_form.html#a55358259e75a1e262aa6f2f58dc70c80":[0,0,101,16],
-"class_text_form.html#a553bf0b435f0d59d4c86ea7a004aab60":[0,0,101,17],
-"class_text_form.html#a644cc688a5f54e202c451f403174a725":[0,0,101,13],
-"class_text_form.html#a7cb43566e1ec8bb5d7be0e3ed86f1876":[0,0,101,2],
-"class_text_form.html#aa15c4be9ce71f50b6ebdbabf1ddb26bb":[0,0,101,1],
-"class_text_form.html#aad06ea6fcaec43465ea4e0aa7bd3b61d":[0,0,101,22],
-"class_text_form.html#aae058177645a7b974003cf7ba3957e62":[0,0,101,9],
-"class_text_form.html#ab9cad6d1dc2ea1406ca6f9b44ecd46c3":[0,0,101,6],
-"class_text_form.html#ad11e9224ce96616ccc1fae802a65738e":[0,0,101,3],
-"class_text_form.html#adc28fed9ecb5fb32957737af4e7827dc":[0,0,101,20],
-"class_text_form.html#ae46074db075dacd127c78b16b0417c3a":[0,0,101,4],
-"class_text_form.html#af96c830fe67da49fac36a7df58f0728b":[0,0,101,19],
-"class_text_form_base.html":[0,0,102],
-"class_text_form_base.html#a06b80e25d042052ef8b5ebbcf39a82e6":[0,0,102,11],
-"class_text_form_base.html#a0df65c65bf9926eaa20792d803762fd2":[0,0,102,22],
-"class_text_form_base.html#a0f854e9b93a101684308930464799a3c":[0,0,102,24],
-"class_text_form_base.html#a0ff115ed58de4b9f83e8ac18fc1c11cc":[0,0,102,25],
-"class_text_form_base.html#a1822a077536adfdfdbf7ba7853e2917c":[0,0,102,20],
-"class_text_form_base.html#a20e495f9fe62e0eaee49ea2cfb7661fa":[0,0,102,27],
-"class_text_form_base.html#a279db3897b91ff97ebdd410169b8c13d":[0,0,102,10],
-"class_text_form_base.html#a28448ef3a106719e2863660bd9230bdc":[0,0,102,39],
-"class_text_form_base.html#a29c62763df7c88f78a1fb8b4c65e0383":[0,0,102,14],
-"class_text_form_base.html#a39677cde5e236fd32257a86543e8a3f5":[0,0,102,48],
-"class_text_form_base.html#a3dad92d1a04122535626e259c24391ec":[0,0,102,17],
-"class_text_form_base.html#a3eb125e5242692bcff954c0706634833":[0,0,102,30],
-"class_text_form_base.html#a4300bcea7b6ffc6c8c0e278908c9bf5a":[0,0,102,40],
-"class_text_form_base.html#a47a05d0cd3b24d516d7cd73e6f1801b6":[0,0,102,16],
-"class_text_form_base.html#a4c72fb0574b2bd9214140df806848f02":[0,0,102,43],
-"class_text_form_base.html#a4ca5f55e86ab0456c04e521094857369":[0,0,102,37],
-"class_text_form_base.html#a4def79e764545dc050b355da45b091d1":[0,0,102,44],
-"class_text_form_base.html#a6610d9f72f598b3f4e8f86aad7980c74":[0,0,102,4],
-"class_text_form_base.html#a6ac5da788492cc037aec6b6a9dcbd4a8":[0,0,102,41],
-"class_text_form_base.html#a6e8c2c55fcac20adba14d0ee92ee6560":[0,0,102,7],
-"class_text_form_base.html#a6f796e5b87ec48aa812a401262a9fe93":[0,0,102,23],
-"class_text_form_base.html#a7334788ba4af44ccb01547c348d2310c":[0,0,102,21],
-"class_text_form_base.html#a73e92b286d13f68c697335df49c33b40":[0,0,102,29],
-"class_text_form_base.html#a7464a3fc135d9a85ecb75c42f50bef0e":[0,0,102,38],
-"class_text_form_base.html#a7edc22afae66bc4e91461584668a7d64":[0,0,102,42],
-"class_text_form_base.html#a87c7b2df984b9fa32c99bc18b6207342":[0,0,102,6],
-"class_text_form_base.html#a8d9c9eadf9e724d7c7c1fc9a6b5e09d6":[0,0,102,49],
-"class_text_form_base.html#a97e9f9088c396c51645763f65f1fcae9":[0,0,102,34],
-"class_text_form_base.html#a98382c1f1b903db868557cc3ab305143":[0,0,102,47],
-"class_text_form_base.html#a9a2f9ad1a172ffed751944231cf26332":[0,0,102,5],
-"class_text_form_base.html#a9e96d1d31cfb24ddb39ff24e366cbb1a":[0,0,102,26],
-"class_text_form_base.html#a9f865ba5241dc9ba607e514a4b5a0e0d":[0,0,102,32],
-"class_text_form_base.html#aa7bce0b447d510e11c52344e26019417":[0,0,102,0],
-"class_text_form_base.html#aadf4ac576b11c235b43359df5e298942":[0,0,102,3],
-"class_text_form_base.html#aaf38921dfe3bee5a769e906dbc6843f1":[0,0,102,19],
-"class_text_form_base.html#ab4220dcb19935bebb8aefb2c486378ef":[0,0,102,31],
-"class_text_form_base.html#ab486d5c675ebde25f89c763378b19f60":[0,0,102,2],
-"class_text_form_base.html#abcde3d462cfa4632198b2dd0f5835041":[0,0,102,50],
-"class_text_form_base.html#ac7dc780d44ca9c55d10a0d1012a1f8ba":[0,0,102,18],
-"class_text_form_base.html#ac88b09dd08a5b01b69c04e644d25163a":[0,0,102,46],
-"class_text_form_base.html#aca2e5f72c0d399f1e48f35f129b94b29":[0,0,102,1],
-"class_text_form_base.html#acc40a994d976ea04f66dbb6790b5d7a5":[0,0,102,12],
-"class_text_form_base.html#ad1edec95968fef33c94f96a2fe76e2e5":[0,0,102,33],
-"class_text_form_base.html#addfe9749ca7aa07c2d14bbddbe8417c5":[0,0,102,13],
-"class_text_form_base.html#adf2b35e57ba91096b1de72f761e95fa0":[0,0,102,28],
-"class_text_form_base.html#ae70c96bb398576eff2ad8d151833c179":[0,0,102,8],
-"class_text_form_base.html#ae723a4d74db7989a63ccd46eedc44bff":[0,0,102,45],
-"class_text_form_base.html#ae9e39d45b4754ff1df2c1e0e552dd982":[0,0,102,35],
-"class_text_form_base.html#af3457265fe6266b0ef61d30790fb33eb":[0,0,102,9],
-"class_text_form_base.html#af34bc2311411715448bd41378f8a6895":[0,0,102,36],
-"class_text_form_base.html#afc1a68f987a02df5df3c927351020450":[0,0,102,15],
-"class_text_g_l_drawable.html":[0,0,103],
-"class_text_g_l_drawable.html#a002950e57ddee2b366a428cf166d265a":[0,0,103,28],
-"class_text_g_l_drawable.html#a12875f8cc1cdb675353c6b12112d05fe":[0,0,103,18],
-"class_text_g_l_drawable.html#a25d765828a9ecd9629ff9ccd4a66fc43":[0,0,103,9],
-"class_text_g_l_drawable.html#a2a8aa1255ae9546618d8a30051882c18":[0,0,103,4],
-"class_text_g_l_drawable.html#a2df771de3dd7c16f1a88540ac6620ab4":[0,0,103,0],
-"class_text_g_l_drawable.html#a30803a43c1f1ee4ae35900bc4f6a5a3c":[0,0,103,16],
-"class_text_g_l_drawable.html#a30a8a416b10b04e877a0ae10528150d0":[0,0,103,26],
-"class_text_g_l_drawable.html#a328d55b4c8e3684a1093872cad1d41bb":[0,0,103,5],
-"class_text_g_l_drawable.html#a3694676b20848e16dedf11569639216c":[0,0,103,19],
-"class_text_g_l_drawable.html#a385db5bcf159982ba006a8dd97ee1383":[0,0,103,7],
-"class_text_g_l_drawable.html#a44b1a0129b8da33b2be9a1745415de93":[0,0,103,24],
-"class_text_g_l_drawable.html#a4894c656b1c7016c8c8176cff2f8c66f":[0,0,103,15],
-"class_text_g_l_drawable.html#a4a20344804fa6b34c02a7fd55ad96314":[0,0,103,10],
-"class_text_g_l_drawable.html#a51bdeb52e839fc941ed3803f557f7911":[0,0,103,1],
-"class_text_g_l_drawable.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,103,11],
-"class_text_g_l_drawable.html#a7beff45d550827ce4e2f3335585a4f42":[0,0,103,6],
-"class_text_g_l_drawable.html#a816623b682408889fa6893b41782453b":[0,0,103,14],
-"class_text_g_l_drawable.html#a847984364f55bfd063419a359d9acc91":[0,0,103,20],
-"class_text_g_l_drawable.html#a85eb711312c444322767319bd23a7795":[0,0,103,23],
-"class_text_g_l_drawable.html#a8894b391174ffe37d1d372b8c4a31fe7":[0,0,103,12],
-"class_text_g_l_drawable.html#a93b56ed45e3097129d4682c735a23fcf":[0,0,103,8],
-"class_text_g_l_drawable.html#a965ac9bf245f1979a080193986874f18":[0,0,103,2],
-"class_text_g_l_drawable.html#a9b461935514f4da4805889fdcff48be6":[0,0,103,25],
-"class_text_g_l_drawable.html#ab1b363afde75d9f53aedea103c24f287":[0,0,103,22],
-"class_text_g_l_drawable.html#acba312735b20ed532c80992e4777f262":[0,0,103,27],
-"class_text_g_l_drawable.html#ad84933ea0f396ee9c18d463d22e4c3f8":[0,0,103,21],
-"class_text_g_l_drawable.html#ae05f3bb671317d687421226c41277553":[0,0,103,13],
-"class_text_g_l_drawable.html#af24996577c26268a514f2ee43e72ff4d":[0,0,103,17],
-"class_text_g_l_drawable.html#af9bcd8c0e163302429ca8a17f587e8ec":[0,0,103,3],
-"class_text_texture.html":[0,0,104],
-"class_text_texture.html#a028855c450db4925652071c212cce8c7":[0,0,104,0],
-"class_text_texture.html#a13d64c6afe292be4ccca8294dd501f0f":[0,0,104,1],
-"class_text_texture.html#a4a20344804fa6b34c02a7fd55ad96314":[0,0,104,5],
-"class_text_texture.html#a5819c3917f7be6e1fdd1f5d1b617dd2a":[0,0,104,2],
-"class_text_texture.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,104,6],
-"class_text_texture.html#a8894b391174ffe37d1d372b8c4a31fe7":[0,0,104,7],
-"class_text_texture.html#aa7ab43a57d9767d92ee60933977d66ac":[0,0,104,3],
-"class_text_texture.html#ac663a01462a341a279cc4cdf0c500fba":[0,0,104,4],
-"class_transfer_function.html":[0,0,105],
-"class_transfer_function.html#a0bc542d565e75938699d5e03f3a5e6f0":[0,0,105,15],
-"class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e":[0,0,105,5],
-"class_transfer_function.html#a0cd48b67fbcc1afc400bdf6cadb824b4":[0,0,105,23],
-"class_transfer_function.html#a0d4b3da271ecef4ec764a9f26b1ee488":[0,0,105,28],
-"class_transfer_function.html#a3312f7e9499aa99742093d3b60547862":[0,0,105,6],
-"class_transfer_function.html#a39e20dc5b20657d882fb820ee1178eee":[0,0,105,8],
-"class_transfer_function.html#a39ec7eda2cc3737a1502af8bdf2a9bf5":[0,0,105,22],
-"class_transfer_function.html#a4d3e5afb04d7196647814339cd15bc3a":[0,0,105,24],
-"class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a":[0,0,105,3],
-"class_transfer_function.html#a630099b92667aa3e4b455fba234d4eda":[0,0,105,10],
-"class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd":[0,0,105,12],
-"class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187":[0,0,105,4],
-"class_transfer_function.html#a6b66df900c86cfb848d2e08591a4a0c9":[0,0,105,25],
-"class_transfer_function.html#a70e6b38f9b4a45a29b3b2eb4947e8e2f":[0,0,105,7],
-"class_transfer_function.html#a966c99fbd03b89662e0a340b7cffe717":[0,0,105,27],
-"class_transfer_function.html#a96c6acddec588288c5883416ec926abe":[0,0,105,31],
-"class_transfer_function.html#aa16c1f3e18149c153d78e0627a5e9972":[0,0,105,21],
-"class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798":[0,0,105,18],
-"class_transfer_function.html#ab736fb79486407e626364e1410c263f3":[0,0,105,1],
-"class_transfer_function.html#aba60b46f243b3b0c8e9ccdeb391cba27":[0,0,105,2],
-"class_transfer_function.html#ac6755bf723a1dfa90ee8254471136429":[0,0,105,29],
-"class_transfer_function.html#ad10adb7a94ebc62349cca7b56b7cadb9":[0,0,105,19],
-"class_transfer_function.html#ad5e7f4e17ce8ca7d3ab4a2ea2b688438":[0,0,105,14],
-"class_transfer_function.html#ad708802d32428ddb20d33910bf348b55":[0,0,105,26],
-"class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423":[0,0,105,13],
-"class_transfer_function.html#ae1ea0f8351796e932609e1c9494b5e76":[0,0,105,16],
-"class_transfer_function.html#aec2d0676d112ccf849c0d3d6f3fee461":[0,0,105,11],
-"class_transfer_function.html#aee524d83c25209202ba2b1e8a600ef21":[0,0,105,30],
-"class_transfer_function.html#aee6c1440c4f527b7a839e07474a381f0":[0,0,105,9],
-"class_transfer_function.html#af8c3f06742a7ffc9dabc0d4f5dbc98c3":[0,0,105,20],
-"class_transfer_function.html#afe15de93ab4f93032560a6139091ef10":[0,0,105,17],
-"class_transfer_function_form.html":[0,0,106],
-"class_transfer_function_form.html#a1c565e92a52dd6e710db7ecf92083f37":[0,0,106,3],
-"class_transfer_function_form.html#a27c6a37b520b4e3043ae492d9112a9df":[0,0,106,4],
-"class_transfer_function_form.html#a38f692bf981cfb865a6d8d2528aa3b56":[0,0,106,6],
-"class_transfer_function_form.html#a45b34337d0dbef9df6e4b35f169ccf98":[0,0,106,1],
-"class_transfer_function_form.html#a546e732b865a8054231432df595246c2":[0,0,106,5],
-"class_transfer_function_form.html#a681698673fea3d716ee383ae3d9d28eb":[0,0,106,2],
-"class_transfer_function_form.html#a87648ffa2b1d88ff18135f1dce46ac97":[0,0,106,7],
-"class_transfer_function_form.html#ab3973fc6d0585be5570682674041d21d":[0,0,106,0],
-"class_transfer_function_form_base.html":[0,0,107],
-"class_transfer_function_form_base.html#a0016c5144bc331f6348bea935bb8cc55":[0,0,107,16],
-"class_transfer_function_form_base.html#a008be2fa5d9b01b841ae8689606d9b5b":[0,0,107,4],
-"class_transfer_function_form_base.html#a049b09e73946dcca6306d72770e097fd":[0,0,107,18],
-"class_transfer_function_form_base.html#a1be29f1cc2a4ecd64b5d368cb7a9dd8c":[0,0,107,14],
-"class_transfer_function_form_base.html#a1d5de82c329970e967c75de0f99778ef":[0,0,107,19],
-"class_transfer_function_form_base.html#a2be269d1b27821fd3bda48c34d2382be":[0,0,107,15],
-"class_transfer_function_form_base.html#a2f8ad120d19ede3c79a2dbee404927d7":[0,0,107,5],
-"class_transfer_function_form_base.html#a3dfe2400369e1ca1416b26f265f0ae4b":[0,0,107,3],
-"class_transfer_function_form_base.html#a47346c56b626d41c6ddec9fc26060f6d":[0,0,107,13],
-"class_transfer_function_form_base.html#a4ce3369a8557eced7b42b878016c9331":[0,0,107,0],
-"class_transfer_function_form_base.html#a7f5da321a6297086cc6f5c3ea85be7f0":[0,0,107,1],
-"class_transfer_function_form_base.html#a8618a2b5585ac0b665b8fdc3c9ceeae3":[0,0,107,6],
-"class_transfer_function_form_base.html#a93731803bc32f17be6ae889182ab5bee":[0,0,107,11],
-"class_transfer_function_form_base.html#aa4603a3f49179e61205862faa962ef4b":[0,0,107,8],
-"class_transfer_function_form_base.html#aa8839934e71bf16b63a5cff34679be4b":[0,0,107,10],
-"class_transfer_function_form_base.html#ab70bd59a35d2c588291e0fd65b7b043c":[0,0,107,9],
-"class_transfer_function_form_base.html#ae1a557b170a2966b73a87d6ffd6eaf0e":[0,0,107,12],
-"class_transfer_function_form_base.html#ae208b4b2e42f9d9e021e1db483b3c481":[0,0,107,2],
-"class_transfer_function_form_base.html#afba56679122dbb55dce1ebf34482e519":[0,0,107,7],
-"class_transfer_function_form_base.html#afca69d20a9b8f361e074ab5553f016b0":[0,0,107,17],
-"class_transformer.html":[0,0,108],
-"class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5":[0,0,108,21],
-"class_transformer.html#a169064f996341f8f8b6881c6a3909f0b":[0,0,108,10],
-"class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422":[0,0,108,5],
-"class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd":[0,0,108,7],
-"class_transformer.html#a312583e28394926c746f133137345c9d":[0,0,108,1],
-"class_transformer.html#a31a3dc18c483d67b4a03038563ecce38":[0,0,108,16],
-"class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0":[0,0,108,4]
+"class_sync_motor.html":[0,0,99],
+"class_sync_motor.html#a035b63a3dfd356daff0bf1cee9672313":[0,0,99,5],
+"class_sync_motor.html#a038162c828595f58782fe97dea2c864d":[0,0,99,10],
+"class_sync_motor.html#a0fedd06ef0833ce4d17869343b0810cb":[0,0,99,6],
+"class_sync_motor.html#a12ac76afa871fc58cc0f27332723fc38":[0,0,99,12],
+"class_sync_motor.html#a222d998e274674a0e0ce4a1ed53e8654":[0,0,99,0],
+"class_sync_motor.html#a2ab8e43d5452f5d7f9ac375566a65210":[0,0,99,8],
+"class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f":[0,0,99,11],
+"class_sync_motor.html#a435a9cfd24d182d8ab76a856fa4d0bb7":[0,0,99,2],
+"class_sync_motor.html#a6068c7d22470a3996df2efda54c24972":[0,0,99,1],
+"class_sync_motor.html#a7b3102220ea5f7e19690af045a6c8278":[0,0,99,4],
+"class_sync_motor.html#a9b42283370ea4d4707b78b97e8c6d864":[0,0,99,3],
+"class_sync_motor.html#aca41191da8383d577e3717d3e38cdf2b":[0,0,99,9],
+"class_sync_motor.html#ae04da3b89a530e1457ff490b22b9f028":[0,0,99,7],
+"class_text.html":[0,0,101],
+"class_text.html#a03c67acf11b90374ded2a8cb8ec1088f":[0,0,101,8],
+"class_text.html#a06e740065c875633e458c0d8f860c43e":[0,0,101,6],
+"class_text.html#a0d0629dec49cece668f41d2a85062f39":[0,0,101,40],
+"class_text.html#a0d37b9c067e62e10ebd1f0f74dbb5e66":[0,0,101,24],
+"class_text.html#a15e4192a98a95baa22fd7a423efb5df9":[0,0,101,9],
+"class_text.html#a255ba9b693f614b16986ac238c28f66e":[0,0,101,25],
+"class_text.html#a2d07db0c15bdbd9d7056ac794f524f57":[0,0,101,36],
+"class_text.html#a2d49e5c280e205125b149f7777ae30c7":[0,0,101,2],
+"class_text.html#a2f40cb8ed553f1680bf402f9c8e2b541":[0,0,101,35],
+"class_text.html#a340b00ac7a17cd9a1f37f63275715638":[0,0,101,11],
+"class_text.html#a3b050d27140840eadcdce567df42d1e2":[0,0,101,7],
+"class_text.html#a3f58eb1736e822f96882ded57938dbbd":[0,0,101,13],
+"class_text.html#a41eabb28f45124d5da3ec2d703ce9018":[0,0,101,15],
+"class_text.html#a4d1b7f1b53288297dfc8f77be4c37ac4":[0,0,101,38],
+"class_text.html#a4f273ea7008c72533327c25caff2e917":[0,0,101,3],
+"class_text.html#a51c55b9272f653cfc3cdafe665d5dde0":[0,0,101,4],
+"class_text.html#a5eb67f2bf595a78858733c96a5bc05d6":[0,0,101,26],
+"class_text.html#a6743a08fc0d1d8b96db99eab48eadb8f":[0,0,101,19],
+"class_text.html#a7010e26ac225166d3a7f23118bf45f74":[0,0,101,32],
+"class_text.html#a7e88aef941ba0b3dba303c4370b0bb7a":[0,0,101,29],
+"class_text.html#a80916b96c94d30abd8d76dcbf01d580d":[0,0,101,12],
+"class_text.html#a8bab7377ac548d1883dcbbe2489c5ff1":[0,0,101,33],
+"class_text.html#a9836ec9395fdd3e0ce1f1914219fe360":[0,0,101,37],
+"class_text.html#a9923c820cd77b411257ba48beceafeaa":[0,0,101,16],
+"class_text.html#a9f05c1520fe691515ee15a0b63ca9b28":[0,0,101,14],
+"class_text.html#aa32f9156fbbe783fab5d90072667e2c3":[0,0,101,23],
+"class_text.html#aa722e4df566518900e4f2cc1f1af2f9c":[0,0,101,28],
+"class_text.html#ab3e26143fccc52699bcc5149cae852bc":[0,0,101,0],
+"class_text.html#ab3f1487162842f26d6d50b298bb3142d":[0,0,101,18],
+"class_text.html#abe911e27cd723c0ab51f63d8f27683d1":[0,0,101,20],
+"class_text.html#ac045b28b3621a5fddb3e5ac86889bfca":[0,0,101,39],
+"class_text.html#ac0ab42a8d5145cd1d780f695d0e6e64f":[0,0,101,34],
+"class_text.html#ac19aa2e04d68965adadee0c67daca99e":[0,0,101,41],
+"class_text.html#ac6383f5f8e424f3c8cf6f37ac9371dcf":[0,0,101,27],
+"class_text.html#ac8107fb05d19dbaf681af76a91ea739b":[0,0,101,1],
+"class_text.html#ad251de30122437e2a311aa60e8ed390a":[0,0,101,31],
+"class_text.html#ad696293ace753aba46568c76b1adff4e":[0,0,101,21],
+"class_text.html#aea6772b57e5129e87926b6a35d90f74e":[0,0,101,10],
+"class_text.html#aef377b465f00fe9aec996e122c1bb23a":[0,0,101,22],
+"class_text.html#af025bbbb8d5619929df7817f98e23597":[0,0,101,5],
+"class_text.html#afcd995d8a0b3921cd33dd305b586e3f7":[0,0,101,30],
+"class_text.html#afe1f86a497f34cee4809cbd7fda24dc3":[0,0,101,17],
+"class_text_form.html":[0,0,102],
+"class_text_form.html#a05f71762d18640d7ee7b85cf8cfde0ee":[0,0,102,15],
+"class_text_form.html#a098066e96da254f13b5cd2b0e8977e43":[0,0,102,7],
+"class_text_form.html#a1268fce1f817bd9ff0626a24c0aabda7":[0,0,102,21],
+"class_text_form.html#a14ccad2b03e8017c02eb632fbe02df2a":[0,0,102,0],
+"class_text_form.html#a21a3fa61ce11a198e4a0cf086a85e61b":[0,0,102,10],
+"class_text_form.html#a2946f7590a66a55d3ae63a6def86a8f3":[0,0,102,8],
+"class_text_form.html#a29a135685c4f5f6801abc50ab48d97f9":[0,0,102,11],
+"class_text_form.html#a3b32cfbb221700c5cde1146dd9ba0ac3":[0,0,102,12],
+"class_text_form.html#a4bbd73071ce20cf1c805139af58d2e77":[0,0,102,5],
+"class_text_form.html#a4e3ecb63b41fe8e1592ba1bdb57cf89f":[0,0,102,18],
+"class_text_form.html#a53d385f26fb4bf90e52db6e4c1d3b49a":[0,0,102,14],
+"class_text_form.html#a55358259e75a1e262aa6f2f58dc70c80":[0,0,102,16],
+"class_text_form.html#a553bf0b435f0d59d4c86ea7a004aab60":[0,0,102,17],
+"class_text_form.html#a644cc688a5f54e202c451f403174a725":[0,0,102,13],
+"class_text_form.html#a7cb43566e1ec8bb5d7be0e3ed86f1876":[0,0,102,2],
+"class_text_form.html#aa15c4be9ce71f50b6ebdbabf1ddb26bb":[0,0,102,1],
+"class_text_form.html#aad06ea6fcaec43465ea4e0aa7bd3b61d":[0,0,102,22],
+"class_text_form.html#aae058177645a7b974003cf7ba3957e62":[0,0,102,9],
+"class_text_form.html#ab9cad6d1dc2ea1406ca6f9b44ecd46c3":[0,0,102,6],
+"class_text_form.html#ad11e9224ce96616ccc1fae802a65738e":[0,0,102,3],
+"class_text_form.html#adc28fed9ecb5fb32957737af4e7827dc":[0,0,102,20],
+"class_text_form.html#ae46074db075dacd127c78b16b0417c3a":[0,0,102,4],
+"class_text_form.html#af96c830fe67da49fac36a7df58f0728b":[0,0,102,19],
+"class_text_form_base.html":[0,0,103],
+"class_text_form_base.html#a06b80e25d042052ef8b5ebbcf39a82e6":[0,0,103,11],
+"class_text_form_base.html#a0df65c65bf9926eaa20792d803762fd2":[0,0,103,22],
+"class_text_form_base.html#a0f854e9b93a101684308930464799a3c":[0,0,103,24],
+"class_text_form_base.html#a0ff115ed58de4b9f83e8ac18fc1c11cc":[0,0,103,25],
+"class_text_form_base.html#a1822a077536adfdfdbf7ba7853e2917c":[0,0,103,20],
+"class_text_form_base.html#a20e495f9fe62e0eaee49ea2cfb7661fa":[0,0,103,27],
+"class_text_form_base.html#a279db3897b91ff97ebdd410169b8c13d":[0,0,103,10],
+"class_text_form_base.html#a28448ef3a106719e2863660bd9230bdc":[0,0,103,39],
+"class_text_form_base.html#a29c62763df7c88f78a1fb8b4c65e0383":[0,0,103,14],
+"class_text_form_base.html#a39677cde5e236fd32257a86543e8a3f5":[0,0,103,48],
+"class_text_form_base.html#a3dad92d1a04122535626e259c24391ec":[0,0,103,17],
+"class_text_form_base.html#a3eb125e5242692bcff954c0706634833":[0,0,103,30],
+"class_text_form_base.html#a4300bcea7b6ffc6c8c0e278908c9bf5a":[0,0,103,40],
+"class_text_form_base.html#a47a05d0cd3b24d516d7cd73e6f1801b6":[0,0,103,16],
+"class_text_form_base.html#a4c72fb0574b2bd9214140df806848f02":[0,0,103,43],
+"class_text_form_base.html#a4ca5f55e86ab0456c04e521094857369":[0,0,103,37],
+"class_text_form_base.html#a4def79e764545dc050b355da45b091d1":[0,0,103,44],
+"class_text_form_base.html#a6610d9f72f598b3f4e8f86aad7980c74":[0,0,103,4],
+"class_text_form_base.html#a6ac5da788492cc037aec6b6a9dcbd4a8":[0,0,103,41]
};
diff --git a/docs/doxygen/html/navtreeindex11.js b/docs/doxygen/html/navtreeindex11.js
index badc9c5..b85bedb 100644
--- a/docs/doxygen/html/navtreeindex11.js
+++ b/docs/doxygen/html/navtreeindex11.js
@@ -1,253 +1,253 @@
var NAVTREEINDEX11 =
{
-"class_transformer.html#a328c419af15701734168c8db62eefa36":[0,0,108,19],
-"class_transformer.html#a39b58fcf230970601c5d77c088559731":[0,0,108,11],
-"class_transformer.html#a4e70f875967e60d8202fb6e3c6e3f79a":[0,0,108,9],
-"class_transformer.html#a4f9137e6190fb630167f671a0da51ab6":[0,0,108,17],
-"class_transformer.html#a504e72295ea190d9956c5055645a96d1":[0,0,108,8],
-"class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8":[0,0,108,12],
-"class_transformer.html#a7d56456dadf3aa0bc60f59e7e7eda7a2":[0,0,108,0],
-"class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728":[0,0,108,18],
-"class_transformer.html#a9652232a076cca0fe3753477ec88f63a":[0,0,108,13],
-"class_transformer.html#aa1f87f24c062258b1437be648032bb6e":[0,0,108,22],
-"class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de":[0,0,108,14],
-"class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f":[0,0,108,20],
-"class_transformer.html#ad2f2bcd287bd3bb3221ab584f2c2fc90":[0,0,108,23],
-"class_transformer.html#adf0b20286f3de359346b8877d65c1996":[0,0,108,15],
-"class_transformer.html#adfe51a2198cfc10e1095af9c034681bd":[0,0,108,6],
-"class_transformer.html#ae2f7b06be0f585ab586ee501ad59285c":[0,0,108,2],
-"class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6":[0,0,108,3],
-"class_transformer_form.html":[0,0,110],
-"class_transformer_form.html#a10f5f72d1fc3882d229a54ba4522154a":[0,0,110,5],
-"class_transformer_form.html#a71966865b6a286c22034ef50849513ab":[0,0,110,4],
-"class_transformer_form.html#a72d54f5a59363d33b02e9467833c0b6b":[0,0,110,3],
-"class_transformer_form.html#a737b66275ba708412a06dd764510a968":[0,0,110,2],
-"class_transformer_form.html#a8cac1e9fdb77f140db36c4efe2e0555c":[0,0,110,0],
-"class_transformer_form.html#ac1db49bd821dd82b25737686ae394103":[0,0,110,6],
-"class_transformer_form.html#ad227425d57a1a8b8b6209cd55ebdbd80":[0,0,110,7],
-"class_transformer_form.html#af9ab8a52f336a931e5e690ad8f0fc903":[0,0,110,1],
-"class_transformer_form_base.html":[0,0,111],
-"class_transformer_form_base.html#a022d3748ff4c570aea35538a463b6773":[0,0,111,43],
-"class_transformer_form_base.html#a0284032d1298fb2ad4ac2eb427077914":[0,0,111,36],
-"class_transformer_form_base.html#a03bf43a865e368c51afeabd81bd5d8ee":[0,0,111,86],
-"class_transformer_form_base.html#a045b70a953da5049d4f5d853a9ec8ed4":[0,0,111,52],
-"class_transformer_form_base.html#a04c92b7d29cd3375a1415764aa536406":[0,0,111,51],
-"class_transformer_form_base.html#a0d466ffb4b1f4c1bd026c5f3f46a4c79":[0,0,111,21],
-"class_transformer_form_base.html#a0dd7a20e78c4effd68da4764109bb4f1":[0,0,111,29],
-"class_transformer_form_base.html#a113edf034a7f07f84bedf62bda482ddc":[0,0,111,24],
-"class_transformer_form_base.html#a13f64e73b1906163fd4faea4c76dda20":[0,0,111,5],
-"class_transformer_form_base.html#a1a021847167a55f2050d974fbe6529ae":[0,0,111,3],
-"class_transformer_form_base.html#a1b799c8717841772b84dbd4268b5d33f":[0,0,111,83],
-"class_transformer_form_base.html#a24caf79933c5ce7224e7787b9887ff80":[0,0,111,85],
-"class_transformer_form_base.html#a253fe9d0a6aac89813e38304a27e239f":[0,0,111,87],
-"class_transformer_form_base.html#a270bc4d0bbedcd942902757783643fe4":[0,0,111,76],
-"class_transformer_form_base.html#a2cc878c4779f0ba73d5deb700759ecb0":[0,0,111,1],
-"class_transformer_form_base.html#a2fde91e5014982d570274e407362dae4":[0,0,111,50],
-"class_transformer_form_base.html#a38c21aed3d1fd4fd4e1ba41f3a138d3e":[0,0,111,10],
-"class_transformer_form_base.html#a3f434986c270c39b3b68f359b0e9ee9a":[0,0,111,82],
-"class_transformer_form_base.html#a4487a3bc92e5539f19fd42c0d5506e3d":[0,0,111,58],
-"class_transformer_form_base.html#a49c8239313228c0843d089ef5d63dd55":[0,0,111,37],
-"class_transformer_form_base.html#a4d2e10a6c0358a578deb65acf6295b9d":[0,0,111,9],
-"class_transformer_form_base.html#a4f8d3c5594371b78264cbc159de95fbc":[0,0,111,62],
-"class_transformer_form_base.html#a50fc4ce1b4dda224a1a0f711bfc9f26c":[0,0,111,18],
-"class_transformer_form_base.html#a531e49e6a056144e2f5047286e8a16da":[0,0,111,32],
-"class_transformer_form_base.html#a55e86e376d766493f443fef08ff58fd8":[0,0,111,17],
-"class_transformer_form_base.html#a5706999e17e2932b972187736419d505":[0,0,111,57],
-"class_transformer_form_base.html#a5a687a0a567cc31b15b0adc96460079e":[0,0,111,66],
-"class_transformer_form_base.html#a5c748e72231caaa693337347a343ee64":[0,0,111,30],
-"class_transformer_form_base.html#a610937e52d3ca590618a992d33a0eeb6":[0,0,111,71],
-"class_transformer_form_base.html#a640f38342e6d516d172eef982e952a7f":[0,0,111,60],
-"class_transformer_form_base.html#a69e14483db595799ff4baf5cf1e23e59":[0,0,111,72],
-"class_transformer_form_base.html#a6b826cda74882238c54280b1b727fa5d":[0,0,111,46],
-"class_transformer_form_base.html#a6dbb4bd37b20982632dd728ff855b870":[0,0,111,27],
-"class_transformer_form_base.html#a70c25076ba3a28f31822cb2f1273fbb6":[0,0,111,2],
-"class_transformer_form_base.html#a714a3a0d023771c3dcee367b709a297e":[0,0,111,26],
-"class_transformer_form_base.html#a7870d1ac8852c45cc58fbd290a6acef3":[0,0,111,13],
-"class_transformer_form_base.html#a7bdcbe2ed487ba2da498d7a6c7ac8e7a":[0,0,111,14],
-"class_transformer_form_base.html#a7d718aac8c90366c98d7ee94f382d62f":[0,0,111,53],
-"class_transformer_form_base.html#a7e8def6859b1e38fd3c91bfe6288bb73":[0,0,111,56],
-"class_transformer_form_base.html#a7fe977bdfe8780749bc3ee987a7729b7":[0,0,111,40],
-"class_transformer_form_base.html#a807fc537dbf283a9b7ff6cbef2dbcc00":[0,0,111,34],
-"class_transformer_form_base.html#a811b577ff9fd83c437379455d7e52c53":[0,0,111,63],
-"class_transformer_form_base.html#a844597ca569fe6b06d77284c2f06b279":[0,0,111,61],
-"class_transformer_form_base.html#a85a92227216e9ce953b121c97f96c5f2":[0,0,111,42],
-"class_transformer_form_base.html#a88bd7d74f839e3cec36b15ebd7651948":[0,0,111,55],
-"class_transformer_form_base.html#a8df8a1bcbf215b3e466595beb30f68d8":[0,0,111,59],
-"class_transformer_form_base.html#a8e4d2a3046c69b01bd705ae652bdea86":[0,0,111,67],
-"class_transformer_form_base.html#a8ec2523003aa34d4f84a81de3cbbbdd5":[0,0,111,23],
-"class_transformer_form_base.html#a9307de748d184dc5f00bdaaa9a09fb6c":[0,0,111,48],
-"class_transformer_form_base.html#a9357f82f40ce6a73eb4bff990d5ccead":[0,0,111,88],
-"class_transformer_form_base.html#a96c25a55ea50c18e14022f2ff00a5051":[0,0,111,80],
-"class_transformer_form_base.html#a98efcfc4d7455dad70c87c9de30a26d0":[0,0,111,20],
-"class_transformer_form_base.html#a99f0a3d39c149d1d8ae1b478bb1ecce2":[0,0,111,22],
-"class_transformer_form_base.html#aa1c6bbea49f60eb9962b07146757da64":[0,0,111,65],
-"class_transformer_form_base.html#aa1e990df75f9e6025ed38b601851b914":[0,0,111,49],
-"class_transformer_form_base.html#aa665859e3b696bef4b146f1efbab0eca":[0,0,111,81],
-"class_transformer_form_base.html#aa69ec87ce83152dbf30ca86ef9a431c6":[0,0,111,8],
-"class_transformer_form_base.html#aabdd5f43e5379ecd03f6a01086fa8e98":[0,0,111,15],
-"class_transformer_form_base.html#ab31a2c526cb74f229e4340e01ab0e71e":[0,0,111,84],
-"class_transformer_form_base.html#ab3290af329387311274652c78e978512":[0,0,111,74],
-"class_transformer_form_base.html#ab3ab36d5d0be6e5cd6cd41b88616f8b4":[0,0,111,79],
-"class_transformer_form_base.html#ab88da886634ae9d6d0f010c80053d457":[0,0,111,31],
-"class_transformer_form_base.html#ac1cf3e353c40d74eeef6c3822a1c2c03":[0,0,111,11],
-"class_transformer_form_base.html#ac38779c0e258f370854243eb6b31986f":[0,0,111,6],
-"class_transformer_form_base.html#ac3d86f996ce77b7855b925c85c3f7317":[0,0,111,35],
-"class_transformer_form_base.html#ac506972ad5a38969111a0e23357fdfde":[0,0,111,16],
-"class_transformer_form_base.html#ac7e3d90ed49d3343237c7f170429e743":[0,0,111,28],
-"class_transformer_form_base.html#ac88dea58cbb0dd8a93f2e2e6040ec823":[0,0,111,4],
-"class_transformer_form_base.html#ac9880a1a9c0b6be177714b95396108de":[0,0,111,70],
-"class_transformer_form_base.html#acdd32c513f7d4a1eb23ac55ab3d28995":[0,0,111,45],
-"class_transformer_form_base.html#acfcddec0baebd8c6885c26224bbfa280":[0,0,111,12],
-"class_transformer_form_base.html#ad1425a7f7ab1862cafb87f08f364ba8e":[0,0,111,75],
-"class_transformer_form_base.html#ad1624c0498b54b5b0beb3f77d85f687d":[0,0,111,41],
-"class_transformer_form_base.html#ad3c02626ca03e34914137d1b41f530e6":[0,0,111,73],
-"class_transformer_form_base.html#ad3c3cfd26566f06a0c0fe9d116648e37":[0,0,111,68],
-"class_transformer_form_base.html#ad62929ebbf445d52d283f863a77ccd1b":[0,0,111,77],
-"class_transformer_form_base.html#ad96d875c08ef54e86ebccbf0c326598d":[0,0,111,33],
-"class_transformer_form_base.html#adc8d387589bb5acdd75d4bbd985ad243":[0,0,111,69],
-"class_transformer_form_base.html#ade4e3e90c5c0f4f0abe278ffba2443a0":[0,0,111,44],
-"class_transformer_form_base.html#ade72da576a6bcd2182798e449f8ce8d5":[0,0,111,38],
-"class_transformer_form_base.html#ae0c2fbf9475ee1e780896fa89c14b878":[0,0,111,0],
-"class_transformer_form_base.html#ae2196cf62a3c277247a112d7971872b0":[0,0,111,78],
-"class_transformer_form_base.html#ae7a24e53da32b8caf67fc5ef39618743":[0,0,111,54],
-"class_transformer_form_base.html#aee0b43085f009f2517994967d080b794":[0,0,111,7],
-"class_transformer_form_base.html#aee7759b13cf93e4722e7514f4ddcfa8f":[0,0,111,39],
-"class_transformer_form_base.html#af01e4be05d790d0a2236846899418b53":[0,0,111,19],
-"class_transformer_form_base.html#af088bc27c75828d7829f18c4c4a5d7df":[0,0,111,64],
-"class_transformer_form_base.html#af1394f18900292398f9f317341f1e727":[0,0,111,25],
-"class_transformer_form_base.html#af65e4801b524b44b075a6218777777f0":[0,0,111,47],
-"class_workspace.html":[0,0,112],
-"class_workspace.html#a013bdfced9e47c0a11d378409cda1376":[0,0,112,62],
-"class_workspace.html#a057257829453518249ebc0fc971c2a68":[0,0,112,47],
-"class_workspace.html#a0f25d318ff7310d11e510239953b92fc":[0,0,112,8],
-"class_workspace.html#a10c751ef894a1ce02ca401a0a60b3333":[0,0,112,3],
-"class_workspace.html#a16047d114ac4c9708eccf87ddc93c57f":[0,0,112,59],
-"class_workspace.html#a16b55585d4fa51fc3a565df2ce16997e":[0,0,112,69],
-"class_workspace.html#a239e2b579a4c1b640b4f5e2640c61044":[0,0,112,70],
-"class_workspace.html#a259249b912ae1caae1c166eb2f9f4123":[0,0,112,25],
-"class_workspace.html#a26add99100a783d857b52fe497d5a209":[0,0,112,71],
-"class_workspace.html#a29e232a2810f36222f0b1ba2f775f606":[0,0,112,5],
-"class_workspace.html#a2c1f915ba189d1dc3b9088fd79b2f31a":[0,0,112,54],
-"class_workspace.html#a38a886655d99aae4dbaeec88e7f855ce":[0,0,112,19],
-"class_workspace.html#a3ffd9682e5898f467b54748c5277e239":[0,0,112,2],
-"class_workspace.html#a444c05695fd50548fa025a97567e8a55":[0,0,112,73],
-"class_workspace.html#a47405d47dd54d98cd0b5e323a5cf9071":[0,0,112,43],
-"class_workspace.html#a49bec4c0ddb83d1bcfe4bb6cdf688864":[0,0,112,21],
-"class_workspace.html#a4fa9ee617ed7da22b84eced403bb512e":[0,0,112,48],
-"class_workspace.html#a52b015440855fbab2ae1ba7a229a36c7":[0,0,112,31],
-"class_workspace.html#a5347e4a880ed744ef20da988aaac534f":[0,0,112,72],
-"class_workspace.html#a58e7526fe48d3fbff16c7bf7ac607b0c":[0,0,112,35],
-"class_workspace.html#a5b71e0ec48f1d9ae1ce9e01b546c01b1":[0,0,112,18],
-"class_workspace.html#a5bc77206269e7abdd75085b90385e934":[0,0,112,27],
-"class_workspace.html#a5c7dcb5b022b37bce0647aab42bc764a":[0,0,112,57],
-"class_workspace.html#a61dd47c1c36cab51f67f6652e560b635":[0,0,112,36],
-"class_workspace.html#a6658ab0800105042a29b6fea1102f873":[0,0,112,50],
-"class_workspace.html#a691c80813f2f2f15bfb79db5edddf22a":[0,0,112,42],
-"class_workspace.html#a69ed8a7449993602944683f9a9584fe1":[0,0,112,45],
-"class_workspace.html#a6c024a0381b8515287ff82a0c135a285":[0,0,112,14],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914":[0,0,112,0],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a094a29399033e02e51fd013eac5f8bc3":[0,0,112,0,3],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a253dcdbf5c54e7de2489b54098e29161":[0,0,112,0,5],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a32cb1102be505f27ae0255d9e3834acc":[0,0,112,0,4],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a36270dbb58538c00a5b009916dda4748":[0,0,112,0,9],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a3e1fead750fbde2a9bf75f457f387e1c":[0,0,112,0,1],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a3f2c5b345a9ac7d8dfcd2b51a6becc2c":[0,0,112,0,0],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a48963bc6da69eeee46985e57383a6831":[0,0,112,0,10],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a92c16301deb027b1bad37c54f7432482":[0,0,112,0,6],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a94ed0030aad40a766af3d97b8cbb55df":[0,0,112,0,7],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a990ae713f0e72eab71de6b77c3bf412f":[0,0,112,0,11],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914ae98c91e3a672a7b48020d41234f65056":[0,0,112,0,2],
-"class_workspace.html#a6c46f1e54734c198b47134fa829f5914aff456a8f97d89f415295642cfc4e7411":[0,0,112,0,8],
-"class_workspace.html#a6d84b8d85526f1194667606429a3a315":[0,0,112,56],
-"class_workspace.html#a6e1788b16636c60be5bf0b0bbc0a3a26":[0,0,112,33],
-"class_workspace.html#a6e5a3440a86e3afc1336740aac1efbe1":[0,0,112,22],
-"class_workspace.html#a6f2dcf924f95cb2b2216057a0fc53f41":[0,0,112,10],
-"class_workspace.html#a709ba1bac8061b82a91e225effd22621":[0,0,112,15],
-"class_workspace.html#a735b10c59c133a6c81be7432a8978e8b":[0,0,112,13],
-"class_workspace.html#a758abd23ac6f327899e9761da653b40e":[0,0,112,17],
-"class_workspace.html#a773f2c59738a7b546e032509822aaba4":[0,0,112,61],
-"class_workspace.html#a7a940cc3edfa6da2ecc4f3555eb2259b":[0,0,112,46],
-"class_workspace.html#a810b16fadd522ab40335c7533e051d6f":[0,0,112,28],
-"class_workspace.html#a82d91c594e8ae5d2dc72ea4384abe24f":[0,0,112,12],
-"class_workspace.html#a8372edc7102baabc9170836c40548084":[0,0,112,38],
-"class_workspace.html#a8677426ffcd80c3fa76ba2f8d6c402d5":[0,0,112,11],
-"class_workspace.html#a8af383b55580f7b02eea83df03d125b9":[0,0,112,39],
-"class_workspace.html#a8b7645ec6641e9eff52f9d6b8e12b84e":[0,0,112,65],
-"class_workspace.html#a8cce4d1259bccce5f7b19ac3284be60e":[0,0,112,4],
-"class_workspace.html#a916173d5babcda8af782015e80e3e2ae":[0,0,112,51],
-"class_workspace.html#a92ddb55af7ffa45f050f46becb3f520b":[0,0,112,6],
-"class_workspace.html#a94db01244419924778d7578332415a97":[0,0,112,1],
-"class_workspace.html#a953a0a155f3363ea4834cd471287f7ec":[0,0,112,7],
-"class_workspace.html#a96e2691b76f78ca4f63013a299a2338a":[0,0,112,23],
-"class_workspace.html#aa072c180c3feee54ee84c13ce4ca9410":[0,0,112,55],
-"class_workspace.html#aa8a761564e7ba7820911373ea1990b88":[0,0,112,20],
-"class_workspace.html#aaef2ac88b0cb8e204c3bd59fd96eba32":[0,0,112,52],
-"class_workspace.html#ab0773cafa9c7127d8985256f0e3a394e":[0,0,112,40],
-"class_workspace.html#ab2e997f328f88889b3712bcd3d5d7310":[0,0,112,67],
-"class_workspace.html#abe29ae978b1c93569bf60e4d45f0050f":[0,0,112,29],
-"class_workspace.html#abf538431670cc5aa24d60393d259b48a":[0,0,112,24],
-"class_workspace.html#ac59319d3776983ae607a602d7588a0b9":[0,0,112,68],
-"class_workspace.html#acbc1a9429407f3e86da419639c974dc6":[0,0,112,66],
-"class_workspace.html#accb1b98baf52125dbc989784aac69074":[0,0,112,58],
-"class_workspace.html#acf4e1d561abc0667214619753789ba1c":[0,0,112,53],
-"class_workspace.html#acf9d7e1a32e3ba2714aad00558561164":[0,0,112,9],
-"class_workspace.html#ad966b16ef1d8216c69c577f17bad4361":[0,0,112,63],
-"class_workspace.html#adeefec5df5f908bed2b3c19b1fcd6f95":[0,0,112,41],
-"class_workspace.html#ae6537cdff1e5cfb7fea9b096fc8b2cb4":[0,0,112,16],
-"class_workspace.html#ae72fd97fa7abdce3615318b8dd5db122":[0,0,112,64],
-"class_workspace.html#ae88b97cdf57d4f078fa4c3da4321721f":[0,0,112,32],
-"class_workspace.html#aefd3e77c34bf4cd9c937f803c9bee813":[0,0,112,30],
-"class_workspace.html#af19b02bb34f824af0c0e736f95a96e51":[0,0,112,37],
-"class_workspace.html#af3d21e7fe9eb683b2b4e2c38ab8b1c66":[0,0,112,26],
-"class_workspace.html#af7692e86ad24285a8bf7865646e3b3e7":[0,0,112,34],
-"class_workspace.html#af7b9721a871221f9c534e7a5af482b8a":[0,0,112,60],
-"class_workspace.html#af7cf65a1be2daa086b74e152094a8da8":[0,0,112,44],
-"class_workspace.html#afa900c2ba854a6922ad2a28d5e28c4ac":[0,0,112,49],
-"class_workspace_base.html":[0,0,113],
-"class_workspace_base.html#a10f274f51010decd8dfd872880300c80":[0,0,113,10],
-"class_workspace_base.html#a43c2bddd523784d1373f4cfa3d232023":[0,0,113,3],
-"class_workspace_base.html#a44f48b6d1f1a412f397fda1cf500ef2f":[0,0,113,5],
-"class_workspace_base.html#a514bd173615bc2af5cce766a78c90678":[0,0,113,16],
-"class_workspace_base.html#a664285c92d2e58cffd2e0706f36a779c":[0,0,113,15],
-"class_workspace_base.html#a70d926c1f83f7510f487f9f1f474083f":[0,0,113,18],
-"class_workspace_base.html#a8b2d918751866735d2f8c957c85d5f8a":[0,0,113,11],
-"class_workspace_base.html#a8b4c940f21dfd8b6cf20ff6aa05604b3":[0,0,113,13],
-"class_workspace_base.html#a9001ad5fa6ab8fbc56efcdd4a79cdc5e":[0,0,113,6],
-"class_workspace_base.html#a90d56828276491b843e0da41a7103ce2":[0,0,113,9],
-"class_workspace_base.html#a99ad7de77199406140c440afeeb55901":[0,0,113,17],
-"class_workspace_base.html#aa7a7fdfc3469fbe895963d956baf7810":[0,0,113,1],
-"class_workspace_base.html#aae6d969022b9f998dbf8cb5c50e2ec20":[0,0,113,2],
-"class_workspace_base.html#ab025deb21418482cbe2555b1a06bb1a0":[0,0,113,0],
-"class_workspace_base.html#abb90fc90faa3b8570a90cc20ee6d1e91":[0,0,113,4],
-"class_workspace_base.html#abcf950107b3473a127bd50436529c500":[0,0,113,7],
-"class_workspace_base.html#acdab5799f4d3992f0039c39896d2f295":[0,0,113,14],
-"class_workspace_base.html#ae004b4c7aa73429ff04be1957c1d4f3d":[0,0,113,12],
-"class_workspace_base.html#ae5633aaebc0fcfefb8c404a0747cff73":[0,0,113,8],
-"classes.html":[0,1],
-"classwx_g_l_number_renderer.html":[0,0,114],
-"classwx_g_l_number_renderer.html#a2273ecc04f77d076df5352d2bdb4c3a8":[0,0,114,4],
-"classwx_g_l_number_renderer.html#a6ea7d396fd2f435a889ee05d8da67532":[0,0,114,0],
-"classwx_g_l_number_renderer.html#a857e30cb8a78f1e6197957110fc339d6":[0,0,114,5],
-"classwx_g_l_number_renderer.html#a9de7eec569a559adea04ab66b671ac62":[0,0,114,3],
-"classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4":[0,0,114,2],
-"classwx_g_l_number_renderer.html#af2a56e95687d52b3f59a27783eb049ec":[0,0,114,1],
-"classwx_g_l_string.html":[0,0,115],
-"classwx_g_l_string.html#a19e05beb1f5cbf905f4e1cdf5b566303":[0,0,115,0],
-"classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55":[0,0,115,5],
-"classwx_g_l_string.html#a5845eab608e6a8732ec33a5213eb8015":[0,0,115,8],
-"classwx_g_l_string.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,115,10],
-"classwx_g_l_string.html#a6dbedbac054d8835ff98e02b7a2c1801":[0,0,115,1],
-"classwx_g_l_string.html#a84cd1aef5211cb85405e7d96d6f2cd36":[0,0,115,11],
-"classwx_g_l_string.html#a8d08f71da3521f0a88b8625c348962b7":[0,0,115,4],
-"classwx_g_l_string.html#a99128628906c57841225e92b8a77b6dd":[0,0,115,7],
-"classwx_g_l_string.html#a9c3779f981d87d2b0707882057ba30c2":[0,0,115,12],
-"classwx_g_l_string.html#ab31442170832123f5a0afa2b15fb024a":[0,0,115,3],
-"classwx_g_l_string.html#ab7b55ee1f80a1ce7e74805225e747dab":[0,0,115,2],
-"classwx_g_l_string.html#ab923a7884ed7652bf0c89f7688671aa4":[0,0,115,6],
-"classwx_g_l_string.html#ac2b03c6b32121611472baf33e84fac24":[0,0,115,9],
-"classwx_g_l_string_array.html":[0,0,116],
-"classwx_g_l_string_array.html#a0c466a4b8f3d5ca954749f8440b5fa0f":[0,0,116,1],
-"classwx_g_l_string_array.html#a23176b0de1c1faf839cb9ea539cc1c06":[0,0,116,2],
-"classwx_g_l_string_array.html#a2aaa7b340ee571ca6405bbec28715430":[0,0,116,5],
-"classwx_g_l_string_array.html#a2ae0c1cffb2f54b66a170d1698ad62e0":[0,0,116,6]
+"class_text_form_base.html#a6e8c2c55fcac20adba14d0ee92ee6560":[0,0,103,7],
+"class_text_form_base.html#a6f796e5b87ec48aa812a401262a9fe93":[0,0,103,23],
+"class_text_form_base.html#a7334788ba4af44ccb01547c348d2310c":[0,0,103,21],
+"class_text_form_base.html#a73e92b286d13f68c697335df49c33b40":[0,0,103,29],
+"class_text_form_base.html#a7464a3fc135d9a85ecb75c42f50bef0e":[0,0,103,38],
+"class_text_form_base.html#a7edc22afae66bc4e91461584668a7d64":[0,0,103,42],
+"class_text_form_base.html#a87c7b2df984b9fa32c99bc18b6207342":[0,0,103,6],
+"class_text_form_base.html#a8d9c9eadf9e724d7c7c1fc9a6b5e09d6":[0,0,103,49],
+"class_text_form_base.html#a97e9f9088c396c51645763f65f1fcae9":[0,0,103,34],
+"class_text_form_base.html#a98382c1f1b903db868557cc3ab305143":[0,0,103,47],
+"class_text_form_base.html#a9a2f9ad1a172ffed751944231cf26332":[0,0,103,5],
+"class_text_form_base.html#a9e96d1d31cfb24ddb39ff24e366cbb1a":[0,0,103,26],
+"class_text_form_base.html#a9f865ba5241dc9ba607e514a4b5a0e0d":[0,0,103,32],
+"class_text_form_base.html#aa7bce0b447d510e11c52344e26019417":[0,0,103,0],
+"class_text_form_base.html#aadf4ac576b11c235b43359df5e298942":[0,0,103,3],
+"class_text_form_base.html#aaf38921dfe3bee5a769e906dbc6843f1":[0,0,103,19],
+"class_text_form_base.html#ab4220dcb19935bebb8aefb2c486378ef":[0,0,103,31],
+"class_text_form_base.html#ab486d5c675ebde25f89c763378b19f60":[0,0,103,2],
+"class_text_form_base.html#abcde3d462cfa4632198b2dd0f5835041":[0,0,103,50],
+"class_text_form_base.html#ac7dc780d44ca9c55d10a0d1012a1f8ba":[0,0,103,18],
+"class_text_form_base.html#ac88b09dd08a5b01b69c04e644d25163a":[0,0,103,46],
+"class_text_form_base.html#aca2e5f72c0d399f1e48f35f129b94b29":[0,0,103,1],
+"class_text_form_base.html#acc40a994d976ea04f66dbb6790b5d7a5":[0,0,103,12],
+"class_text_form_base.html#ad1edec95968fef33c94f96a2fe76e2e5":[0,0,103,33],
+"class_text_form_base.html#addfe9749ca7aa07c2d14bbddbe8417c5":[0,0,103,13],
+"class_text_form_base.html#adf2b35e57ba91096b1de72f761e95fa0":[0,0,103,28],
+"class_text_form_base.html#ae70c96bb398576eff2ad8d151833c179":[0,0,103,8],
+"class_text_form_base.html#ae723a4d74db7989a63ccd46eedc44bff":[0,0,103,45],
+"class_text_form_base.html#ae9e39d45b4754ff1df2c1e0e552dd982":[0,0,103,35],
+"class_text_form_base.html#af3457265fe6266b0ef61d30790fb33eb":[0,0,103,9],
+"class_text_form_base.html#af34bc2311411715448bd41378f8a6895":[0,0,103,36],
+"class_text_form_base.html#afc1a68f987a02df5df3c927351020450":[0,0,103,15],
+"class_text_g_l_drawable.html":[0,0,104],
+"class_text_g_l_drawable.html#a002950e57ddee2b366a428cf166d265a":[0,0,104,28],
+"class_text_g_l_drawable.html#a12875f8cc1cdb675353c6b12112d05fe":[0,0,104,18],
+"class_text_g_l_drawable.html#a25d765828a9ecd9629ff9ccd4a66fc43":[0,0,104,9],
+"class_text_g_l_drawable.html#a2a8aa1255ae9546618d8a30051882c18":[0,0,104,4],
+"class_text_g_l_drawable.html#a2df771de3dd7c16f1a88540ac6620ab4":[0,0,104,0],
+"class_text_g_l_drawable.html#a30803a43c1f1ee4ae35900bc4f6a5a3c":[0,0,104,16],
+"class_text_g_l_drawable.html#a30a8a416b10b04e877a0ae10528150d0":[0,0,104,26],
+"class_text_g_l_drawable.html#a328d55b4c8e3684a1093872cad1d41bb":[0,0,104,5],
+"class_text_g_l_drawable.html#a3694676b20848e16dedf11569639216c":[0,0,104,19],
+"class_text_g_l_drawable.html#a385db5bcf159982ba006a8dd97ee1383":[0,0,104,7],
+"class_text_g_l_drawable.html#a44b1a0129b8da33b2be9a1745415de93":[0,0,104,24],
+"class_text_g_l_drawable.html#a4894c656b1c7016c8c8176cff2f8c66f":[0,0,104,15],
+"class_text_g_l_drawable.html#a4a20344804fa6b34c02a7fd55ad96314":[0,0,104,10],
+"class_text_g_l_drawable.html#a51bdeb52e839fc941ed3803f557f7911":[0,0,104,1],
+"class_text_g_l_drawable.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,104,11],
+"class_text_g_l_drawable.html#a7beff45d550827ce4e2f3335585a4f42":[0,0,104,6],
+"class_text_g_l_drawable.html#a816623b682408889fa6893b41782453b":[0,0,104,14],
+"class_text_g_l_drawable.html#a847984364f55bfd063419a359d9acc91":[0,0,104,20],
+"class_text_g_l_drawable.html#a85eb711312c444322767319bd23a7795":[0,0,104,23],
+"class_text_g_l_drawable.html#a8894b391174ffe37d1d372b8c4a31fe7":[0,0,104,12],
+"class_text_g_l_drawable.html#a93b56ed45e3097129d4682c735a23fcf":[0,0,104,8],
+"class_text_g_l_drawable.html#a965ac9bf245f1979a080193986874f18":[0,0,104,2],
+"class_text_g_l_drawable.html#a9b461935514f4da4805889fdcff48be6":[0,0,104,25],
+"class_text_g_l_drawable.html#ab1b363afde75d9f53aedea103c24f287":[0,0,104,22],
+"class_text_g_l_drawable.html#acba312735b20ed532c80992e4777f262":[0,0,104,27],
+"class_text_g_l_drawable.html#ad84933ea0f396ee9c18d463d22e4c3f8":[0,0,104,21],
+"class_text_g_l_drawable.html#ae05f3bb671317d687421226c41277553":[0,0,104,13],
+"class_text_g_l_drawable.html#af24996577c26268a514f2ee43e72ff4d":[0,0,104,17],
+"class_text_g_l_drawable.html#af9bcd8c0e163302429ca8a17f587e8ec":[0,0,104,3],
+"class_text_texture.html":[0,0,105],
+"class_text_texture.html#a028855c450db4925652071c212cce8c7":[0,0,105,0],
+"class_text_texture.html#a13d64c6afe292be4ccca8294dd501f0f":[0,0,105,1],
+"class_text_texture.html#a4a20344804fa6b34c02a7fd55ad96314":[0,0,105,5],
+"class_text_texture.html#a5819c3917f7be6e1fdd1f5d1b617dd2a":[0,0,105,2],
+"class_text_texture.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,105,6],
+"class_text_texture.html#a8894b391174ffe37d1d372b8c4a31fe7":[0,0,105,7],
+"class_text_texture.html#aa7ab43a57d9767d92ee60933977d66ac":[0,0,105,3],
+"class_text_texture.html#ac663a01462a341a279cc4cdf0c500fba":[0,0,105,4],
+"class_transfer_function.html":[0,0,106],
+"class_transfer_function.html#a0bc542d565e75938699d5e03f3a5e6f0":[0,0,106,15],
+"class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e":[0,0,106,5],
+"class_transfer_function.html#a0cd48b67fbcc1afc400bdf6cadb824b4":[0,0,106,23],
+"class_transfer_function.html#a0d4b3da271ecef4ec764a9f26b1ee488":[0,0,106,28],
+"class_transfer_function.html#a3312f7e9499aa99742093d3b60547862":[0,0,106,6],
+"class_transfer_function.html#a39e20dc5b20657d882fb820ee1178eee":[0,0,106,8],
+"class_transfer_function.html#a39ec7eda2cc3737a1502af8bdf2a9bf5":[0,0,106,22],
+"class_transfer_function.html#a4d3e5afb04d7196647814339cd15bc3a":[0,0,106,24],
+"class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a":[0,0,106,3],
+"class_transfer_function.html#a630099b92667aa3e4b455fba234d4eda":[0,0,106,10],
+"class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd":[0,0,106,12],
+"class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187":[0,0,106,4],
+"class_transfer_function.html#a6b66df900c86cfb848d2e08591a4a0c9":[0,0,106,25],
+"class_transfer_function.html#a70e6b38f9b4a45a29b3b2eb4947e8e2f":[0,0,106,7],
+"class_transfer_function.html#a966c99fbd03b89662e0a340b7cffe717":[0,0,106,27],
+"class_transfer_function.html#a96c6acddec588288c5883416ec926abe":[0,0,106,31],
+"class_transfer_function.html#aa16c1f3e18149c153d78e0627a5e9972":[0,0,106,21],
+"class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798":[0,0,106,18],
+"class_transfer_function.html#ab736fb79486407e626364e1410c263f3":[0,0,106,1],
+"class_transfer_function.html#aba60b46f243b3b0c8e9ccdeb391cba27":[0,0,106,2],
+"class_transfer_function.html#ac6755bf723a1dfa90ee8254471136429":[0,0,106,29],
+"class_transfer_function.html#ad10adb7a94ebc62349cca7b56b7cadb9":[0,0,106,19],
+"class_transfer_function.html#ad5e7f4e17ce8ca7d3ab4a2ea2b688438":[0,0,106,14],
+"class_transfer_function.html#ad708802d32428ddb20d33910bf348b55":[0,0,106,26],
+"class_transfer_function.html#ae145b86db1450a19a3ed32084ee60423":[0,0,106,13],
+"class_transfer_function.html#ae1ea0f8351796e932609e1c9494b5e76":[0,0,106,16],
+"class_transfer_function.html#aec2d0676d112ccf849c0d3d6f3fee461":[0,0,106,11],
+"class_transfer_function.html#aee524d83c25209202ba2b1e8a600ef21":[0,0,106,30],
+"class_transfer_function.html#aee6c1440c4f527b7a839e07474a381f0":[0,0,106,9],
+"class_transfer_function.html#af8c3f06742a7ffc9dabc0d4f5dbc98c3":[0,0,106,20],
+"class_transfer_function.html#afe15de93ab4f93032560a6139091ef10":[0,0,106,17],
+"class_transfer_function_form.html":[0,0,107],
+"class_transfer_function_form.html#a1c565e92a52dd6e710db7ecf92083f37":[0,0,107,3],
+"class_transfer_function_form.html#a27c6a37b520b4e3043ae492d9112a9df":[0,0,107,4],
+"class_transfer_function_form.html#a38f692bf981cfb865a6d8d2528aa3b56":[0,0,107,6],
+"class_transfer_function_form.html#a45b34337d0dbef9df6e4b35f169ccf98":[0,0,107,1],
+"class_transfer_function_form.html#a546e732b865a8054231432df595246c2":[0,0,107,5],
+"class_transfer_function_form.html#a681698673fea3d716ee383ae3d9d28eb":[0,0,107,2],
+"class_transfer_function_form.html#a87648ffa2b1d88ff18135f1dce46ac97":[0,0,107,7],
+"class_transfer_function_form.html#ab3973fc6d0585be5570682674041d21d":[0,0,107,0],
+"class_transfer_function_form_base.html":[0,0,108],
+"class_transfer_function_form_base.html#a0016c5144bc331f6348bea935bb8cc55":[0,0,108,16],
+"class_transfer_function_form_base.html#a008be2fa5d9b01b841ae8689606d9b5b":[0,0,108,4],
+"class_transfer_function_form_base.html#a049b09e73946dcca6306d72770e097fd":[0,0,108,18],
+"class_transfer_function_form_base.html#a1be29f1cc2a4ecd64b5d368cb7a9dd8c":[0,0,108,14],
+"class_transfer_function_form_base.html#a1d5de82c329970e967c75de0f99778ef":[0,0,108,19],
+"class_transfer_function_form_base.html#a2be269d1b27821fd3bda48c34d2382be":[0,0,108,15],
+"class_transfer_function_form_base.html#a2f8ad120d19ede3c79a2dbee404927d7":[0,0,108,5],
+"class_transfer_function_form_base.html#a3dfe2400369e1ca1416b26f265f0ae4b":[0,0,108,3],
+"class_transfer_function_form_base.html#a47346c56b626d41c6ddec9fc26060f6d":[0,0,108,13],
+"class_transfer_function_form_base.html#a4ce3369a8557eced7b42b878016c9331":[0,0,108,0],
+"class_transfer_function_form_base.html#a7f5da321a6297086cc6f5c3ea85be7f0":[0,0,108,1],
+"class_transfer_function_form_base.html#a8618a2b5585ac0b665b8fdc3c9ceeae3":[0,0,108,6],
+"class_transfer_function_form_base.html#a93731803bc32f17be6ae889182ab5bee":[0,0,108,11],
+"class_transfer_function_form_base.html#aa4603a3f49179e61205862faa962ef4b":[0,0,108,8],
+"class_transfer_function_form_base.html#aa8839934e71bf16b63a5cff34679be4b":[0,0,108,10],
+"class_transfer_function_form_base.html#ab70bd59a35d2c588291e0fd65b7b043c":[0,0,108,9],
+"class_transfer_function_form_base.html#ae1a557b170a2966b73a87d6ffd6eaf0e":[0,0,108,12],
+"class_transfer_function_form_base.html#ae208b4b2e42f9d9e021e1db483b3c481":[0,0,108,2],
+"class_transfer_function_form_base.html#afba56679122dbb55dce1ebf34482e519":[0,0,108,7],
+"class_transfer_function_form_base.html#afca69d20a9b8f361e074ab5553f016b0":[0,0,108,17],
+"class_transformer.html":[0,0,109],
+"class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5":[0,0,109,21],
+"class_transformer.html#a169064f996341f8f8b6881c6a3909f0b":[0,0,109,10],
+"class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422":[0,0,109,5],
+"class_transformer.html#a286bcc94f7202a6ff81b66707424a9bd":[0,0,109,7],
+"class_transformer.html#a312583e28394926c746f133137345c9d":[0,0,109,1],
+"class_transformer.html#a31a3dc18c483d67b4a03038563ecce38":[0,0,109,16],
+"class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0":[0,0,109,4],
+"class_transformer.html#a328c419af15701734168c8db62eefa36":[0,0,109,19],
+"class_transformer.html#a39b58fcf230970601c5d77c088559731":[0,0,109,11],
+"class_transformer.html#a4e70f875967e60d8202fb6e3c6e3f79a":[0,0,109,9],
+"class_transformer.html#a4f9137e6190fb630167f671a0da51ab6":[0,0,109,17],
+"class_transformer.html#a504e72295ea190d9956c5055645a96d1":[0,0,109,8],
+"class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8":[0,0,109,12],
+"class_transformer.html#a7d56456dadf3aa0bc60f59e7e7eda7a2":[0,0,109,0],
+"class_transformer.html#a7e3cd54e20d795ab9b0b8533ce03b728":[0,0,109,18],
+"class_transformer.html#a9652232a076cca0fe3753477ec88f63a":[0,0,109,13],
+"class_transformer.html#aa1f87f24c062258b1437be648032bb6e":[0,0,109,22],
+"class_transformer.html#aaa6cc999eb77a94dafaec5debb4db3de":[0,0,109,14],
+"class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f":[0,0,109,20],
+"class_transformer.html#ad2f2bcd287bd3bb3221ab584f2c2fc90":[0,0,109,23],
+"class_transformer.html#adf0b20286f3de359346b8877d65c1996":[0,0,109,15],
+"class_transformer.html#adfe51a2198cfc10e1095af9c034681bd":[0,0,109,6],
+"class_transformer.html#ae2f7b06be0f585ab586ee501ad59285c":[0,0,109,2],
+"class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6":[0,0,109,3],
+"class_transformer_form.html":[0,0,111],
+"class_transformer_form.html#a10f5f72d1fc3882d229a54ba4522154a":[0,0,111,5],
+"class_transformer_form.html#a71966865b6a286c22034ef50849513ab":[0,0,111,4],
+"class_transformer_form.html#a72d54f5a59363d33b02e9467833c0b6b":[0,0,111,3],
+"class_transformer_form.html#a737b66275ba708412a06dd764510a968":[0,0,111,2],
+"class_transformer_form.html#a8cac1e9fdb77f140db36c4efe2e0555c":[0,0,111,0],
+"class_transformer_form.html#ac1db49bd821dd82b25737686ae394103":[0,0,111,6],
+"class_transformer_form.html#ad227425d57a1a8b8b6209cd55ebdbd80":[0,0,111,7],
+"class_transformer_form.html#af9ab8a52f336a931e5e690ad8f0fc903":[0,0,111,1],
+"class_transformer_form_base.html":[0,0,112],
+"class_transformer_form_base.html#a022d3748ff4c570aea35538a463b6773":[0,0,112,43],
+"class_transformer_form_base.html#a0284032d1298fb2ad4ac2eb427077914":[0,0,112,36],
+"class_transformer_form_base.html#a03bf43a865e368c51afeabd81bd5d8ee":[0,0,112,86],
+"class_transformer_form_base.html#a045b70a953da5049d4f5d853a9ec8ed4":[0,0,112,52],
+"class_transformer_form_base.html#a04c92b7d29cd3375a1415764aa536406":[0,0,112,51],
+"class_transformer_form_base.html#a0d466ffb4b1f4c1bd026c5f3f46a4c79":[0,0,112,21],
+"class_transformer_form_base.html#a0dd7a20e78c4effd68da4764109bb4f1":[0,0,112,29],
+"class_transformer_form_base.html#a113edf034a7f07f84bedf62bda482ddc":[0,0,112,24],
+"class_transformer_form_base.html#a13f64e73b1906163fd4faea4c76dda20":[0,0,112,5],
+"class_transformer_form_base.html#a1a021847167a55f2050d974fbe6529ae":[0,0,112,3],
+"class_transformer_form_base.html#a1b799c8717841772b84dbd4268b5d33f":[0,0,112,83],
+"class_transformer_form_base.html#a24caf79933c5ce7224e7787b9887ff80":[0,0,112,85],
+"class_transformer_form_base.html#a253fe9d0a6aac89813e38304a27e239f":[0,0,112,87],
+"class_transformer_form_base.html#a270bc4d0bbedcd942902757783643fe4":[0,0,112,76],
+"class_transformer_form_base.html#a2cc878c4779f0ba73d5deb700759ecb0":[0,0,112,1],
+"class_transformer_form_base.html#a2fde91e5014982d570274e407362dae4":[0,0,112,50],
+"class_transformer_form_base.html#a38c21aed3d1fd4fd4e1ba41f3a138d3e":[0,0,112,10],
+"class_transformer_form_base.html#a3f434986c270c39b3b68f359b0e9ee9a":[0,0,112,82],
+"class_transformer_form_base.html#a4487a3bc92e5539f19fd42c0d5506e3d":[0,0,112,58],
+"class_transformer_form_base.html#a49c8239313228c0843d089ef5d63dd55":[0,0,112,37],
+"class_transformer_form_base.html#a4d2e10a6c0358a578deb65acf6295b9d":[0,0,112,9],
+"class_transformer_form_base.html#a4f8d3c5594371b78264cbc159de95fbc":[0,0,112,62],
+"class_transformer_form_base.html#a50fc4ce1b4dda224a1a0f711bfc9f26c":[0,0,112,18],
+"class_transformer_form_base.html#a531e49e6a056144e2f5047286e8a16da":[0,0,112,32],
+"class_transformer_form_base.html#a55e86e376d766493f443fef08ff58fd8":[0,0,112,17],
+"class_transformer_form_base.html#a5706999e17e2932b972187736419d505":[0,0,112,57],
+"class_transformer_form_base.html#a5a687a0a567cc31b15b0adc96460079e":[0,0,112,66],
+"class_transformer_form_base.html#a5c748e72231caaa693337347a343ee64":[0,0,112,30],
+"class_transformer_form_base.html#a610937e52d3ca590618a992d33a0eeb6":[0,0,112,71],
+"class_transformer_form_base.html#a640f38342e6d516d172eef982e952a7f":[0,0,112,60],
+"class_transformer_form_base.html#a69e14483db595799ff4baf5cf1e23e59":[0,0,112,72],
+"class_transformer_form_base.html#a6b826cda74882238c54280b1b727fa5d":[0,0,112,46],
+"class_transformer_form_base.html#a6dbb4bd37b20982632dd728ff855b870":[0,0,112,27],
+"class_transformer_form_base.html#a70c25076ba3a28f31822cb2f1273fbb6":[0,0,112,2],
+"class_transformer_form_base.html#a714a3a0d023771c3dcee367b709a297e":[0,0,112,26],
+"class_transformer_form_base.html#a7870d1ac8852c45cc58fbd290a6acef3":[0,0,112,13],
+"class_transformer_form_base.html#a7bdcbe2ed487ba2da498d7a6c7ac8e7a":[0,0,112,14],
+"class_transformer_form_base.html#a7d718aac8c90366c98d7ee94f382d62f":[0,0,112,53],
+"class_transformer_form_base.html#a7e8def6859b1e38fd3c91bfe6288bb73":[0,0,112,56],
+"class_transformer_form_base.html#a7fe977bdfe8780749bc3ee987a7729b7":[0,0,112,40],
+"class_transformer_form_base.html#a807fc537dbf283a9b7ff6cbef2dbcc00":[0,0,112,34],
+"class_transformer_form_base.html#a811b577ff9fd83c437379455d7e52c53":[0,0,112,63],
+"class_transformer_form_base.html#a844597ca569fe6b06d77284c2f06b279":[0,0,112,61],
+"class_transformer_form_base.html#a85a92227216e9ce953b121c97f96c5f2":[0,0,112,42],
+"class_transformer_form_base.html#a88bd7d74f839e3cec36b15ebd7651948":[0,0,112,55],
+"class_transformer_form_base.html#a8df8a1bcbf215b3e466595beb30f68d8":[0,0,112,59],
+"class_transformer_form_base.html#a8e4d2a3046c69b01bd705ae652bdea86":[0,0,112,67],
+"class_transformer_form_base.html#a8ec2523003aa34d4f84a81de3cbbbdd5":[0,0,112,23],
+"class_transformer_form_base.html#a9307de748d184dc5f00bdaaa9a09fb6c":[0,0,112,48],
+"class_transformer_form_base.html#a9357f82f40ce6a73eb4bff990d5ccead":[0,0,112,88],
+"class_transformer_form_base.html#a96c25a55ea50c18e14022f2ff00a5051":[0,0,112,80],
+"class_transformer_form_base.html#a98efcfc4d7455dad70c87c9de30a26d0":[0,0,112,20],
+"class_transformer_form_base.html#a99f0a3d39c149d1d8ae1b478bb1ecce2":[0,0,112,22],
+"class_transformer_form_base.html#aa1c6bbea49f60eb9962b07146757da64":[0,0,112,65],
+"class_transformer_form_base.html#aa1e990df75f9e6025ed38b601851b914":[0,0,112,49],
+"class_transformer_form_base.html#aa665859e3b696bef4b146f1efbab0eca":[0,0,112,81],
+"class_transformer_form_base.html#aa69ec87ce83152dbf30ca86ef9a431c6":[0,0,112,8],
+"class_transformer_form_base.html#aabdd5f43e5379ecd03f6a01086fa8e98":[0,0,112,15],
+"class_transformer_form_base.html#ab31a2c526cb74f229e4340e01ab0e71e":[0,0,112,84],
+"class_transformer_form_base.html#ab3290af329387311274652c78e978512":[0,0,112,74],
+"class_transformer_form_base.html#ab3ab36d5d0be6e5cd6cd41b88616f8b4":[0,0,112,79],
+"class_transformer_form_base.html#ab88da886634ae9d6d0f010c80053d457":[0,0,112,31],
+"class_transformer_form_base.html#ac1cf3e353c40d74eeef6c3822a1c2c03":[0,0,112,11],
+"class_transformer_form_base.html#ac38779c0e258f370854243eb6b31986f":[0,0,112,6],
+"class_transformer_form_base.html#ac3d86f996ce77b7855b925c85c3f7317":[0,0,112,35],
+"class_transformer_form_base.html#ac506972ad5a38969111a0e23357fdfde":[0,0,112,16],
+"class_transformer_form_base.html#ac7e3d90ed49d3343237c7f170429e743":[0,0,112,28],
+"class_transformer_form_base.html#ac88dea58cbb0dd8a93f2e2e6040ec823":[0,0,112,4],
+"class_transformer_form_base.html#ac9880a1a9c0b6be177714b95396108de":[0,0,112,70],
+"class_transformer_form_base.html#acdd32c513f7d4a1eb23ac55ab3d28995":[0,0,112,45],
+"class_transformer_form_base.html#acfcddec0baebd8c6885c26224bbfa280":[0,0,112,12],
+"class_transformer_form_base.html#ad1425a7f7ab1862cafb87f08f364ba8e":[0,0,112,75],
+"class_transformer_form_base.html#ad1624c0498b54b5b0beb3f77d85f687d":[0,0,112,41],
+"class_transformer_form_base.html#ad3c02626ca03e34914137d1b41f530e6":[0,0,112,73],
+"class_transformer_form_base.html#ad3c3cfd26566f06a0c0fe9d116648e37":[0,0,112,68],
+"class_transformer_form_base.html#ad62929ebbf445d52d283f863a77ccd1b":[0,0,112,77],
+"class_transformer_form_base.html#ad96d875c08ef54e86ebccbf0c326598d":[0,0,112,33],
+"class_transformer_form_base.html#adc8d387589bb5acdd75d4bbd985ad243":[0,0,112,69],
+"class_transformer_form_base.html#ade4e3e90c5c0f4f0abe278ffba2443a0":[0,0,112,44],
+"class_transformer_form_base.html#ade72da576a6bcd2182798e449f8ce8d5":[0,0,112,38],
+"class_transformer_form_base.html#ae0c2fbf9475ee1e780896fa89c14b878":[0,0,112,0],
+"class_transformer_form_base.html#ae2196cf62a3c277247a112d7971872b0":[0,0,112,78]
};
diff --git a/docs/doxygen/html/navtreeindex12.js b/docs/doxygen/html/navtreeindex12.js
index 709bee7..ecbd50c 100644
--- a/docs/doxygen/html/navtreeindex12.js
+++ b/docs/doxygen/html/navtreeindex12.js
@@ -1,42 +1,183 @@
var NAVTREEINDEX12 =
{
-"classwx_g_l_string_array.html#a6923a709d67ada5b713549bc706bdddd":[0,0,116,7],
-"classwx_g_l_string_array.html#a692adb887740de68eaf6ca5f2e16e1f6":[0,0,116,4],
-"classwx_g_l_string_array.html#a9d0ea419b455d761b87c8d4262f84296":[0,0,116,0],
-"classwx_g_l_string_array.html#aad1fd8d228a9a09bd1e66734323a4ae9":[0,0,116,3],
-"classwx_ribbon_metro_art_provider.html":[0,0,117],
-"classwx_ribbon_metro_art_provider.html#a0250fb1979f81476371fc886b8755256":[0,0,117,12],
-"classwx_ribbon_metro_art_provider.html#a21c0087bfaeb96c12ce79a525ae28720":[0,0,117,6],
-"classwx_ribbon_metro_art_provider.html#a332747bb53451624c0dc43c52f841a63":[0,0,117,8],
-"classwx_ribbon_metro_art_provider.html#a345e45b2b6c57daf85bd76a239030a6f":[0,0,117,17],
-"classwx_ribbon_metro_art_provider.html#a34d74c8db77b5816d4abcc6ed5d59af1":[0,0,117,14],
-"classwx_ribbon_metro_art_provider.html#a35a27a5153c93e06e72bf9fdc04c6f1a":[0,0,117,19],
-"classwx_ribbon_metro_art_provider.html#a35ac28082f0511e0b64b25c40bd0afb0":[0,0,117,13],
-"classwx_ribbon_metro_art_provider.html#a4c387b3273a285e2b71870116b8c3f03":[0,0,117,11],
-"classwx_ribbon_metro_art_provider.html#a533d512aee4deca9811473b10a7323bb":[0,0,117,15],
-"classwx_ribbon_metro_art_provider.html#a574ce6f88f78c2e410d46092472d2a19":[0,0,117,0],
-"classwx_ribbon_metro_art_provider.html#a5e448d44cf6d30306a41af61b0ae274f":[0,0,117,2],
-"classwx_ribbon_metro_art_provider.html#a64892cbeb4809a944158eeeb64521992":[0,0,117,3],
-"classwx_ribbon_metro_art_provider.html#a759a02e3e441488c219d596ddb4c8786":[0,0,117,4],
-"classwx_ribbon_metro_art_provider.html#a7e53b3b4a62c47038101884810e596af":[0,0,117,18],
-"classwx_ribbon_metro_art_provider.html#a81144b6e0b02420483f278b00cfbe7b0":[0,0,117,16],
-"classwx_ribbon_metro_art_provider.html#a855f255d269011d9be59a13c564215a5":[0,0,117,5],
-"classwx_ribbon_metro_art_provider.html#a9cbceb0409721d370a292916bb402a9d":[0,0,117,9],
-"classwx_ribbon_metro_art_provider.html#a9f9d8ec71db1a8bbfab5a88b2ae16c76":[0,0,117,7],
-"classwx_ribbon_metro_art_provider.html#aa57e1377a49cca4b87f1673b2b70a371":[0,0,117,1],
-"classwx_ribbon_metro_art_provider.html#aa6e300b7a5419c7d429a26beed0c95a8":[0,0,117,10],
+"class_transformer_form_base.html#ae7a24e53da32b8caf67fc5ef39618743":[0,0,112,54],
+"class_transformer_form_base.html#aee0b43085f009f2517994967d080b794":[0,0,112,7],
+"class_transformer_form_base.html#aee7759b13cf93e4722e7514f4ddcfa8f":[0,0,112,39],
+"class_transformer_form_base.html#af01e4be05d790d0a2236846899418b53":[0,0,112,19],
+"class_transformer_form_base.html#af088bc27c75828d7829f18c4c4a5d7df":[0,0,112,64],
+"class_transformer_form_base.html#af1394f18900292398f9f317341f1e727":[0,0,112,25],
+"class_transformer_form_base.html#af65e4801b524b44b075a6218777777f0":[0,0,112,47],
+"class_workspace.html":[0,0,113],
+"class_workspace.html#a013bdfced9e47c0a11d378409cda1376":[0,0,113,62],
+"class_workspace.html#a057257829453518249ebc0fc971c2a68":[0,0,113,47],
+"class_workspace.html#a0f25d318ff7310d11e510239953b92fc":[0,0,113,8],
+"class_workspace.html#a10c751ef894a1ce02ca401a0a60b3333":[0,0,113,3],
+"class_workspace.html#a16047d114ac4c9708eccf87ddc93c57f":[0,0,113,59],
+"class_workspace.html#a16b55585d4fa51fc3a565df2ce16997e":[0,0,113,69],
+"class_workspace.html#a239e2b579a4c1b640b4f5e2640c61044":[0,0,113,70],
+"class_workspace.html#a259249b912ae1caae1c166eb2f9f4123":[0,0,113,25],
+"class_workspace.html#a26add99100a783d857b52fe497d5a209":[0,0,113,71],
+"class_workspace.html#a29e232a2810f36222f0b1ba2f775f606":[0,0,113,5],
+"class_workspace.html#a2c1f915ba189d1dc3b9088fd79b2f31a":[0,0,113,54],
+"class_workspace.html#a38a886655d99aae4dbaeec88e7f855ce":[0,0,113,19],
+"class_workspace.html#a3ffd9682e5898f467b54748c5277e239":[0,0,113,2],
+"class_workspace.html#a444c05695fd50548fa025a97567e8a55":[0,0,113,73],
+"class_workspace.html#a47405d47dd54d98cd0b5e323a5cf9071":[0,0,113,43],
+"class_workspace.html#a49bec4c0ddb83d1bcfe4bb6cdf688864":[0,0,113,21],
+"class_workspace.html#a4fa9ee617ed7da22b84eced403bb512e":[0,0,113,48],
+"class_workspace.html#a52b015440855fbab2ae1ba7a229a36c7":[0,0,113,31],
+"class_workspace.html#a5347e4a880ed744ef20da988aaac534f":[0,0,113,72],
+"class_workspace.html#a58e7526fe48d3fbff16c7bf7ac607b0c":[0,0,113,35],
+"class_workspace.html#a5b71e0ec48f1d9ae1ce9e01b546c01b1":[0,0,113,18],
+"class_workspace.html#a5bc77206269e7abdd75085b90385e934":[0,0,113,27],
+"class_workspace.html#a5c7dcb5b022b37bce0647aab42bc764a":[0,0,113,57],
+"class_workspace.html#a61dd47c1c36cab51f67f6652e560b635":[0,0,113,36],
+"class_workspace.html#a6658ab0800105042a29b6fea1102f873":[0,0,113,50],
+"class_workspace.html#a691c80813f2f2f15bfb79db5edddf22a":[0,0,113,42],
+"class_workspace.html#a69ed8a7449993602944683f9a9584fe1":[0,0,113,45],
+"class_workspace.html#a6c024a0381b8515287ff82a0c135a285":[0,0,113,14],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914":[0,0,113,0],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a094a29399033e02e51fd013eac5f8bc3":[0,0,113,0,3],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a253dcdbf5c54e7de2489b54098e29161":[0,0,113,0,5],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a32cb1102be505f27ae0255d9e3834acc":[0,0,113,0,4],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a36270dbb58538c00a5b009916dda4748":[0,0,113,0,9],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a3e1fead750fbde2a9bf75f457f387e1c":[0,0,113,0,1],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a3f2c5b345a9ac7d8dfcd2b51a6becc2c":[0,0,113,0,0],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a48963bc6da69eeee46985e57383a6831":[0,0,113,0,10],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a92c16301deb027b1bad37c54f7432482":[0,0,113,0,6],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a94ed0030aad40a766af3d97b8cbb55df":[0,0,113,0,7],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914a990ae713f0e72eab71de6b77c3bf412f":[0,0,113,0,11],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914ae98c91e3a672a7b48020d41234f65056":[0,0,113,0,2],
+"class_workspace.html#a6c46f1e54734c198b47134fa829f5914aff456a8f97d89f415295642cfc4e7411":[0,0,113,0,8],
+"class_workspace.html#a6d84b8d85526f1194667606429a3a315":[0,0,113,56],
+"class_workspace.html#a6e1788b16636c60be5bf0b0bbc0a3a26":[0,0,113,33],
+"class_workspace.html#a6e5a3440a86e3afc1336740aac1efbe1":[0,0,113,22],
+"class_workspace.html#a6f2dcf924f95cb2b2216057a0fc53f41":[0,0,113,10],
+"class_workspace.html#a709ba1bac8061b82a91e225effd22621":[0,0,113,15],
+"class_workspace.html#a735b10c59c133a6c81be7432a8978e8b":[0,0,113,13],
+"class_workspace.html#a758abd23ac6f327899e9761da653b40e":[0,0,113,17],
+"class_workspace.html#a773f2c59738a7b546e032509822aaba4":[0,0,113,61],
+"class_workspace.html#a7a940cc3edfa6da2ecc4f3555eb2259b":[0,0,113,46],
+"class_workspace.html#a810b16fadd522ab40335c7533e051d6f":[0,0,113,28],
+"class_workspace.html#a82d91c594e8ae5d2dc72ea4384abe24f":[0,0,113,12],
+"class_workspace.html#a8372edc7102baabc9170836c40548084":[0,0,113,38],
+"class_workspace.html#a8677426ffcd80c3fa76ba2f8d6c402d5":[0,0,113,11],
+"class_workspace.html#a8af383b55580f7b02eea83df03d125b9":[0,0,113,39],
+"class_workspace.html#a8b7645ec6641e9eff52f9d6b8e12b84e":[0,0,113,65],
+"class_workspace.html#a8cce4d1259bccce5f7b19ac3284be60e":[0,0,113,4],
+"class_workspace.html#a916173d5babcda8af782015e80e3e2ae":[0,0,113,51],
+"class_workspace.html#a92ddb55af7ffa45f050f46becb3f520b":[0,0,113,6],
+"class_workspace.html#a94db01244419924778d7578332415a97":[0,0,113,1],
+"class_workspace.html#a953a0a155f3363ea4834cd471287f7ec":[0,0,113,7],
+"class_workspace.html#a96e2691b76f78ca4f63013a299a2338a":[0,0,113,23],
+"class_workspace.html#aa072c180c3feee54ee84c13ce4ca9410":[0,0,113,55],
+"class_workspace.html#aa8a761564e7ba7820911373ea1990b88":[0,0,113,20],
+"class_workspace.html#aaef2ac88b0cb8e204c3bd59fd96eba32":[0,0,113,52],
+"class_workspace.html#ab0773cafa9c7127d8985256f0e3a394e":[0,0,113,40],
+"class_workspace.html#ab2e997f328f88889b3712bcd3d5d7310":[0,0,113,67],
+"class_workspace.html#abe29ae978b1c93569bf60e4d45f0050f":[0,0,113,29],
+"class_workspace.html#abf538431670cc5aa24d60393d259b48a":[0,0,113,24],
+"class_workspace.html#ac59319d3776983ae607a602d7588a0b9":[0,0,113,68],
+"class_workspace.html#acbc1a9429407f3e86da419639c974dc6":[0,0,113,66],
+"class_workspace.html#accb1b98baf52125dbc989784aac69074":[0,0,113,58],
+"class_workspace.html#acf4e1d561abc0667214619753789ba1c":[0,0,113,53],
+"class_workspace.html#acf9d7e1a32e3ba2714aad00558561164":[0,0,113,9],
+"class_workspace.html#ad966b16ef1d8216c69c577f17bad4361":[0,0,113,63],
+"class_workspace.html#adeefec5df5f908bed2b3c19b1fcd6f95":[0,0,113,41],
+"class_workspace.html#ae6537cdff1e5cfb7fea9b096fc8b2cb4":[0,0,113,16],
+"class_workspace.html#ae72fd97fa7abdce3615318b8dd5db122":[0,0,113,64],
+"class_workspace.html#ae88b97cdf57d4f078fa4c3da4321721f":[0,0,113,32],
+"class_workspace.html#aefd3e77c34bf4cd9c937f803c9bee813":[0,0,113,30],
+"class_workspace.html#af19b02bb34f824af0c0e736f95a96e51":[0,0,113,37],
+"class_workspace.html#af3d21e7fe9eb683b2b4e2c38ab8b1c66":[0,0,113,26],
+"class_workspace.html#af7692e86ad24285a8bf7865646e3b3e7":[0,0,113,34],
+"class_workspace.html#af7b9721a871221f9c534e7a5af482b8a":[0,0,113,60],
+"class_workspace.html#af7cf65a1be2daa086b74e152094a8da8":[0,0,113,44],
+"class_workspace.html#afa900c2ba854a6922ad2a28d5e28c4ac":[0,0,113,49],
+"class_workspace_base.html":[0,0,114],
+"class_workspace_base.html#a10f274f51010decd8dfd872880300c80":[0,0,114,10],
+"class_workspace_base.html#a43c2bddd523784d1373f4cfa3d232023":[0,0,114,3],
+"class_workspace_base.html#a44f48b6d1f1a412f397fda1cf500ef2f":[0,0,114,5],
+"class_workspace_base.html#a514bd173615bc2af5cce766a78c90678":[0,0,114,16],
+"class_workspace_base.html#a664285c92d2e58cffd2e0706f36a779c":[0,0,114,15],
+"class_workspace_base.html#a70d926c1f83f7510f487f9f1f474083f":[0,0,114,18],
+"class_workspace_base.html#a8b2d918751866735d2f8c957c85d5f8a":[0,0,114,11],
+"class_workspace_base.html#a8b4c940f21dfd8b6cf20ff6aa05604b3":[0,0,114,13],
+"class_workspace_base.html#a9001ad5fa6ab8fbc56efcdd4a79cdc5e":[0,0,114,6],
+"class_workspace_base.html#a90d56828276491b843e0da41a7103ce2":[0,0,114,9],
+"class_workspace_base.html#a99ad7de77199406140c440afeeb55901":[0,0,114,17],
+"class_workspace_base.html#aa7a7fdfc3469fbe895963d956baf7810":[0,0,114,1],
+"class_workspace_base.html#aae6d969022b9f998dbf8cb5c50e2ec20":[0,0,114,2],
+"class_workspace_base.html#ab025deb21418482cbe2555b1a06bb1a0":[0,0,114,0],
+"class_workspace_base.html#abb90fc90faa3b8570a90cc20ee6d1e91":[0,0,114,4],
+"class_workspace_base.html#abcf950107b3473a127bd50436529c500":[0,0,114,7],
+"class_workspace_base.html#acdab5799f4d3992f0039c39896d2f295":[0,0,114,14],
+"class_workspace_base.html#ae004b4c7aa73429ff04be1957c1d4f3d":[0,0,114,12],
+"class_workspace_base.html#ae5633aaebc0fcfefb8c404a0747cff73":[0,0,114,8],
+"classes.html":[0,1],
+"classwx_g_l_number_renderer.html":[0,0,115],
+"classwx_g_l_number_renderer.html#a2273ecc04f77d076df5352d2bdb4c3a8":[0,0,115,4],
+"classwx_g_l_number_renderer.html#a6ea7d396fd2f435a889ee05d8da67532":[0,0,115,0],
+"classwx_g_l_number_renderer.html#a857e30cb8a78f1e6197957110fc339d6":[0,0,115,5],
+"classwx_g_l_number_renderer.html#a9de7eec569a559adea04ab66b671ac62":[0,0,115,3],
+"classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4":[0,0,115,2],
+"classwx_g_l_number_renderer.html#af2a56e95687d52b3f59a27783eb049ec":[0,0,115,1],
+"classwx_g_l_string.html":[0,0,116],
+"classwx_g_l_string.html#a19e05beb1f5cbf905f4e1cdf5b566303":[0,0,116,0],
+"classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55":[0,0,116,5],
+"classwx_g_l_string.html#a5845eab608e6a8732ec33a5213eb8015":[0,0,116,8],
+"classwx_g_l_string.html#a61de4c6cec06534405b7ecc292b9bd28":[0,0,116,10],
+"classwx_g_l_string.html#a6dbedbac054d8835ff98e02b7a2c1801":[0,0,116,1],
+"classwx_g_l_string.html#a84cd1aef5211cb85405e7d96d6f2cd36":[0,0,116,11],
+"classwx_g_l_string.html#a8d08f71da3521f0a88b8625c348962b7":[0,0,116,4],
+"classwx_g_l_string.html#a99128628906c57841225e92b8a77b6dd":[0,0,116,7],
+"classwx_g_l_string.html#a9c3779f981d87d2b0707882057ba30c2":[0,0,116,12],
+"classwx_g_l_string.html#ab31442170832123f5a0afa2b15fb024a":[0,0,116,3],
+"classwx_g_l_string.html#ab7b55ee1f80a1ce7e74805225e747dab":[0,0,116,2],
+"classwx_g_l_string.html#ab923a7884ed7652bf0c89f7688671aa4":[0,0,116,6],
+"classwx_g_l_string.html#ac2b03c6b32121611472baf33e84fac24":[0,0,116,9],
+"classwx_g_l_string_array.html":[0,0,117],
+"classwx_g_l_string_array.html#a0c466a4b8f3d5ca954749f8440b5fa0f":[0,0,117,1],
+"classwx_g_l_string_array.html#a23176b0de1c1faf839cb9ea539cc1c06":[0,0,117,2],
+"classwx_g_l_string_array.html#a2aaa7b340ee571ca6405bbec28715430":[0,0,117,5],
+"classwx_g_l_string_array.html#a2ae0c1cffb2f54b66a170d1698ad62e0":[0,0,117,6],
+"classwx_g_l_string_array.html#a6923a709d67ada5b713549bc706bdddd":[0,0,117,7],
+"classwx_g_l_string_array.html#a692adb887740de68eaf6ca5f2e16e1f6":[0,0,117,4],
+"classwx_g_l_string_array.html#a9d0ea419b455d761b87c8d4262f84296":[0,0,117,0],
+"classwx_g_l_string_array.html#aad1fd8d228a9a09bd1e66734323a4ae9":[0,0,117,3],
+"classwx_ribbon_metro_art_provider.html":[0,0,118],
+"classwx_ribbon_metro_art_provider.html#a0250fb1979f81476371fc886b8755256":[0,0,118,12],
+"classwx_ribbon_metro_art_provider.html#a21c0087bfaeb96c12ce79a525ae28720":[0,0,118,6],
+"classwx_ribbon_metro_art_provider.html#a332747bb53451624c0dc43c52f841a63":[0,0,118,8],
+"classwx_ribbon_metro_art_provider.html#a345e45b2b6c57daf85bd76a239030a6f":[0,0,118,17],
+"classwx_ribbon_metro_art_provider.html#a34d74c8db77b5816d4abcc6ed5d59af1":[0,0,118,14],
+"classwx_ribbon_metro_art_provider.html#a35a27a5153c93e06e72bf9fdc04c6f1a":[0,0,118,19],
+"classwx_ribbon_metro_art_provider.html#a35ac28082f0511e0b64b25c40bd0afb0":[0,0,118,13],
+"classwx_ribbon_metro_art_provider.html#a4c387b3273a285e2b71870116b8c3f03":[0,0,118,11],
+"classwx_ribbon_metro_art_provider.html#a533d512aee4deca9811473b10a7323bb":[0,0,118,15],
+"classwx_ribbon_metro_art_provider.html#a574ce6f88f78c2e410d46092472d2a19":[0,0,118,0],
+"classwx_ribbon_metro_art_provider.html#a5e448d44cf6d30306a41af61b0ae274f":[0,0,118,2],
+"classwx_ribbon_metro_art_provider.html#a64892cbeb4809a944158eeeb64521992":[0,0,118,3],
+"classwx_ribbon_metro_art_provider.html#a759a02e3e441488c219d596ddb4c8786":[0,0,118,4],
+"classwx_ribbon_metro_art_provider.html#a7e53b3b4a62c47038101884810e596af":[0,0,118,18],
+"classwx_ribbon_metro_art_provider.html#a81144b6e0b02420483f278b00cfbe7b0":[0,0,118,16],
+"classwx_ribbon_metro_art_provider.html#a855f255d269011d9be59a13c564215a5":[0,0,118,5],
+"classwx_ribbon_metro_art_provider.html#a9cbceb0409721d370a292916bb402a9d":[0,0,118,9],
+"classwx_ribbon_metro_art_provider.html#a9f9d8ec71db1a8bbfab5a88b2ae16c76":[0,0,118,7],
+"classwx_ribbon_metro_art_provider.html#aa57e1377a49cca4b87f1673b2b70a371":[0,0,118,1],
+"classwx_ribbon_metro_art_provider.html#aa6e300b7a5419c7d429a26beed0c95a8":[0,0,118,10],
"dir_ffd1f789ec7bd0a45fc6ad92579c5070.html":[1,0,0],
"files.html":[1,0],
-"functions.html":[0,3,0,0],
"functions.html":[0,3,0],
-"functions_0x7e.html":[0,3,0,17],
+"functions.html":[0,3,0,0],
+"functions_0x7e.html":[0,3,0,18],
"functions_b.html":[0,3,0,1],
"functions_c.html":[0,3,0,2],
"functions_d.html":[0,3,0,3],
"functions_e.html":[0,3,0,4],
"functions_f.html":[0,3,0,5],
-"functions_func.html":[0,3,1,0],
"functions_func.html":[0,3,1],
+"functions_func.html":[0,3,1,0],
"functions_func_0x7e.html":[0,3,1,17],
"functions_func_b.html":[0,3,1,1],
"functions_func_c.html":[0,3,1,2],
@@ -66,6 +207,7 @@ var NAVTREEINDEX12 =
"functions_u.html":[0,3,0,15],
"functions_vars.html":[0,3,2],
"functions_w.html":[0,3,0,16],
+"functions_x.html":[0,3,0,17],
"globals.html":[1,1,0],
"globals_enum.html":[1,1,1],
"globals_eval.html":[1,1,2],
@@ -107,147 +249,5 @@ var NAVTREEINDEX12 =
"struct_elements_lists.html":[0,0,31],
"struct_elements_lists.html#aa6137d73278aeb5bab520411fb4444c8":[0,0,31,1],
"struct_elements_lists.html#abb2f2cb73aca2858cc9140040633b0ba":[0,0,31,0],
-"struct_general_data.html":[0,0,40],
-"struct_general_data.html#ab52356d45c62ade32d080b3244f0b3ef":[0,0,40,0],
-"struct_general_data.html#aff6d4b38646366581a264e66a0a8e6d0":[0,0,40,1],
-"struct_ind_motor_electrical_data.html":[0,0,47],
-"struct_ind_motor_electrical_data.html#a27de229ce7940bfc15afc3601801dc1a":[0,0,47,1],
-"struct_ind_motor_electrical_data.html#a638909bb25e0e0957799bce28db54bd0":[0,0,47,2],
-"struct_ind_motor_electrical_data.html#ac42218e06dcb3b4a5cf54ec9c5cd6cf5":[0,0,47,3],
-"struct_ind_motor_electrical_data.html#ad7ccd4886668a2e1fa94a14741966927":[0,0,47,0],
-"struct_ind_motor_electrical_data.html#ae44b69b6c535a61c979bc6e7bfc86a41":[0,0,47,4],
-"struct_inductor_electrical_data.html":[0,0,51],
-"struct_inductor_electrical_data.html#a351fa53fe312f5436f101e57dcf1dff6":[0,0,51,0],
-"struct_inductor_electrical_data.html#a930f07d78c71de5b0bf62f5e1c07987d":[0,0,51,2],
-"struct_inductor_electrical_data.html#ab7816f138d77f1396aebb20987385ed2":[0,0,51,1],
-"struct_integration_constant.html":[0,0,52],
-"struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65":[0,0,52,1],
-"struct_integration_constant.html#afc3598097377951b84492d087a06b455":[0,0,52,0],
-"struct_line_electrical_data.html":[0,0,60],
-"struct_line_electrical_data.html#a1056c7122fa5908c61e76ded862a31e5":[0,0,60,7],
-"struct_line_electrical_data.html#a30b887f127806b28ba96b7710f04ff3f":[0,0,60,14],
-"struct_line_electrical_data.html#a33cfcc0ab29d3be0fd6ddf8032805d1b":[0,0,60,0],
-"struct_line_electrical_data.html#a509ce35959baf0ce23f1db73cd7de6a6":[0,0,60,15],
-"struct_line_electrical_data.html#a57774b1ee3f36e450b7a80dca48d5bca":[0,0,60,4],
-"struct_line_electrical_data.html#a678eec3a4ecaf9dde526bcbc3f422c49":[0,0,60,3],
-"struct_line_electrical_data.html#a6bfc865edf42d04035a34a623a9664e0":[0,0,60,9],
-"struct_line_electrical_data.html#a6fca3b0840b2e2711b2065396e04977a":[0,0,60,10],
-"struct_line_electrical_data.html#a73510824a3d47cad10f6d4e47568d308":[0,0,60,8],
-"struct_line_electrical_data.html#a7ac07247cc0a8fb661dacf3caeb9276a":[0,0,60,2],
-"struct_line_electrical_data.html#a7f04322f6dfda0b47243e9f836728ada":[0,0,60,11],
-"struct_line_electrical_data.html#a8852b0441c519c8e8f2507a1b796123a":[0,0,60,6],
-"struct_line_electrical_data.html#a9a978a31a88e51f76cd481dd05c89c39":[0,0,60,17],
-"struct_line_electrical_data.html#ab26c2c88d5ced5a99a0df1670777d37b":[0,0,60,12],
-"struct_line_electrical_data.html#aba6808c87d6305c813ea12f022f03e43":[0,0,60,16],
-"struct_line_electrical_data.html#ad67a555abe1b5c45866ca98f549591fe":[0,0,60,13],
-"struct_line_electrical_data.html#ae02c7ccf7c5b34c3e026496235084fd6":[0,0,60,5],
-"struct_line_electrical_data.html#ae07e759b48bbf409fd796a7662b7e7fb":[0,0,60,1],
-"struct_line_electrical_data.html#ae0a5ff6c4bb36cd6b671d3b8ac95bcf2":[0,0,60,18],
-"struct_load_electrical_data.html":[0,0,64],
-"struct_load_electrical_data.html#a0d3eacb5817ec49d2894d3dfd12385ab":[0,0,64,1],
-"struct_load_electrical_data.html#a5bc888d7d2e6b4b4d43a4a7d5f05e69c":[0,0,64,0],
-"struct_load_electrical_data.html#a9026df8866348f10a154c5996700ab40":[0,0,64,3],
-"struct_load_electrical_data.html#acd145e04317402c89cc03ba258a61a98":[0,0,64,5],
-"struct_load_electrical_data.html#ad5541520b5febfc4111296e2c1b8862e":[0,0,64,2],
-"struct_load_electrical_data.html#af0ea7a82b7b7a99f29debc03b1f7fbd3":[0,0,64,4],
-"struct_reactive_limits.html":[0,0,81],
-"struct_reactive_limits.html#a75d18e88f580e6573923139fc7736f14":[0,0,81,2],
-"struct_reactive_limits.html#a91673f0f2c3d93f376265931ff2f6ee5":[0,0,81,4],
-"struct_reactive_limits.html#ab6b953f8c1dec53d2fe5d0e8ac8d42cd":[0,0,81,1],
-"struct_reactive_limits.html#ae74269f642fb45328b112762c39613c0":[0,0,81,3],
-"struct_reactive_limits.html#ae857e3f04853ff3a91f6876314a382e6":[0,0,81,0],
-"struct_simulation_data.html":[0,0,85],
-"struct_simulation_data.html#a10954746e67fdbc89860f3718ed23ee9":[0,0,85,4],
-"struct_simulation_data.html#a18355fc645416844735b2496700aefab":[0,0,85,15],
-"struct_simulation_data.html#a2b7408c3a9f2dacc35099bbce451c261":[0,0,85,11],
-"struct_simulation_data.html#a367edc643dd9b6eca8413c666d1a02c1":[0,0,85,9],
-"struct_simulation_data.html#a3cf2e7f71bf62e323b60e0ddb997266a":[0,0,85,5],
-"struct_simulation_data.html#a4caa71c540375ce8c86da5edbc0048c6":[0,0,85,8],
-"struct_simulation_data.html#a4f00f14bee3145127e12023088e92dcf":[0,0,85,2],
-"struct_simulation_data.html#a75d5bdfb0ad45f3e901b73877dd5d394":[0,0,85,0],
-"struct_simulation_data.html#a845385f5d00d4f2481782cbc5bb8d77f":[0,0,85,10],
-"struct_simulation_data.html#ab5a905d2b287348696596e9f07fcd552":[0,0,85,1],
-"struct_simulation_data.html#ab8e32dc510771960d6d6612e80ddbae6":[0,0,85,7],
-"struct_simulation_data.html#ac8073342d75faf98fb15ff5100fdc711":[0,0,85,13],
-"struct_simulation_data.html#ac9bad1814e79451a2fd2f6afcee7016b":[0,0,85,12],
-"struct_simulation_data.html#adf9aa7a02213374ac15439e8929f0179":[0,0,85,6],
-"struct_simulation_data.html#af0ca3cdcc810fcba377e5c6e2bcd71b5":[0,0,85,14],
-"struct_simulation_data.html#af5b66ffff262e5d7c49835c1fb57b302":[0,0,85,3],
-"struct_switching_data.html":[0,0,91],
-"struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df":[0,0,91,0],
-"struct_switching_data.html#af78fb958137a0532ea2a584810708574":[0,0,91,1],
-"struct_sync_generator_electrical_data.html":[0,0,95],
-"struct_sync_generator_electrical_data.html#a02ea43b57770200f43686b21d6f5bee7":[0,0,95,4],
-"struct_sync_generator_electrical_data.html#a039151f15d01a6b70c13674894034350":[0,0,95,14],
-"struct_sync_generator_electrical_data.html#a120f89adf2d52ae106e3d99fa7453a0d":[0,0,95,62],
-"struct_sync_generator_electrical_data.html#a124840d7c73161bb4187aa5215969647":[0,0,95,41],
-"struct_sync_generator_electrical_data.html#a13371480bdeca2be90140e3c168ee9a7":[0,0,95,21],
-"struct_sync_generator_electrical_data.html#a1405e96b81978e44e60dc535fbe08f47":[0,0,95,38],
-"struct_sync_generator_electrical_data.html#a16117d43dd668998854692abaf289c5f":[0,0,95,36],
-"struct_sync_generator_electrical_data.html#a19511b88d17a0046dcd5e94aa748a966":[0,0,95,34],
-"struct_sync_generator_electrical_data.html#a1a1224d8d980c1aa408acd0c731e73c1":[0,0,95,22],
-"struct_sync_generator_electrical_data.html#a1c21e18774280d7dc7378e39eeba04ff":[0,0,95,53],
-"struct_sync_generator_electrical_data.html#a20b583f81933f0f077fb78851b92e7f5":[0,0,95,10],
-"struct_sync_generator_electrical_data.html#a210c90fcf0cb602453758550f12fc625":[0,0,95,30],
-"struct_sync_generator_electrical_data.html#a235b1f71ead84082b1fce66bfd7a17fc":[0,0,95,66],
-"struct_sync_generator_electrical_data.html#a278df0fd573717f280a99a6e1ac5f688":[0,0,95,69],
-"struct_sync_generator_electrical_data.html#a2a21d204b68e1896bd2aae87ef9e6ec3":[0,0,95,28],
-"struct_sync_generator_electrical_data.html#a2a228ce1cc8ac26705da097326921e0f":[0,0,95,13],
-"struct_sync_generator_electrical_data.html#a32a4709d2efaa85914e1757077fa4b21":[0,0,95,9],
-"struct_sync_generator_electrical_data.html#a39a8fd0c1e59355cf72f4fbf274c1863":[0,0,95,1],
-"struct_sync_generator_electrical_data.html#a3fe501f6261730e18c4601cfdb7db680":[0,0,95,5],
-"struct_sync_generator_electrical_data.html#a452fd337c002c0872ee2f22f8eefeb14":[0,0,95,26],
-"struct_sync_generator_electrical_data.html#a4726eca1a20265688e6145f4f95885aa":[0,0,95,65],
-"struct_sync_generator_electrical_data.html#a539062122f9f437a40c4e50e17bb2a87":[0,0,95,8],
-"struct_sync_generator_electrical_data.html#a53edeaeb3361da40e3939bfffa401e6c":[0,0,95,45],
-"struct_sync_generator_electrical_data.html#a565358e9818ff25a4e96d50cade77be4":[0,0,95,11],
-"struct_sync_generator_electrical_data.html#a58c50a8e615dadef9353046329b829f9":[0,0,95,0],
-"struct_sync_generator_electrical_data.html#a58d893dcf9933cf73be0bb12d3472ac6":[0,0,95,29],
-"struct_sync_generator_electrical_data.html#a599699b6b55ca35dfec13f0a1d58dc37":[0,0,95,24],
-"struct_sync_generator_electrical_data.html#a5bfbef7dc02c36f5673ebd6c25f9a7a9":[0,0,95,52],
-"struct_sync_generator_electrical_data.html#a64003e1947c801662450bb04723e1696":[0,0,95,55],
-"struct_sync_generator_electrical_data.html#a6bd4994b89c6a338c7d51e875490a31f":[0,0,95,18],
-"struct_sync_generator_electrical_data.html#a73980536ff6e4485d4d71bf5407d9d8c":[0,0,95,47],
-"struct_sync_generator_electrical_data.html#a73b9df7db4f2d984fb5f976003122131":[0,0,95,57],
-"struct_sync_generator_electrical_data.html#a787696951a05eb8000c0495b018246e4":[0,0,95,50],
-"struct_sync_generator_electrical_data.html#a78ce2b0f1cb61c3e1d56796ffe7d2d11":[0,0,95,46],
-"struct_sync_generator_electrical_data.html#a78dbbb159874e5e4f3f889881fd50408":[0,0,95,16],
-"struct_sync_generator_electrical_data.html#a79529c49e1337863a2aca63b9c57c821":[0,0,95,48],
-"struct_sync_generator_electrical_data.html#a7c4224d05447c55c895fe164d09e0a8c":[0,0,95,54],
-"struct_sync_generator_electrical_data.html#a7d388c89ca828391d47df50172cd9da1":[0,0,95,61],
-"struct_sync_generator_electrical_data.html#a7f78dad336b743be9627377e015bff26":[0,0,95,63],
-"struct_sync_generator_electrical_data.html#a808dac6e3f783331633990b4ad18831a":[0,0,95,67],
-"struct_sync_generator_electrical_data.html#a80cc5ac62cbe7932c1f96be3843d0f38":[0,0,95,72],
-"struct_sync_generator_electrical_data.html#a82bc75dc1c81776dc2998803e0f62890":[0,0,95,49],
-"struct_sync_generator_electrical_data.html#a842fa25b7c6051b5b93cfc8fe28867d2":[0,0,95,2],
-"struct_sync_generator_electrical_data.html#a854269759e28f1bf4782fa23dcbbe811":[0,0,95,75],
-"struct_sync_generator_electrical_data.html#a89ccce917e842d4ad6f2f7c076a38a47":[0,0,95,15],
-"struct_sync_generator_electrical_data.html#a8f0d820f77f5cfd6f8ef2c53570422c7":[0,0,95,70],
-"struct_sync_generator_electrical_data.html#a930a0681c0c9cabd3d0a363e3bfae4d9":[0,0,95,58],
-"struct_sync_generator_electrical_data.html#a97c98fba9f73a7b70ac84e6e4dc7bd2f":[0,0,95,32],
-"struct_sync_generator_electrical_data.html#a9a534e4c50aba0e6a2cc6b5dbc2d2c03":[0,0,95,23],
-"struct_sync_generator_electrical_data.html#a9e97d6c96ba58cfb8dcc1d1293867ef1":[0,0,95,6],
-"struct_sync_generator_electrical_data.html#a9f351e057a8249ae2fcfdf7e102e4633":[0,0,95,68],
-"struct_sync_generator_electrical_data.html#ab261eec61032be2722ff2c6f7b2c7506":[0,0,95,60],
-"struct_sync_generator_electrical_data.html#ab4c9a79a39406b6e744ab4fb92e94750":[0,0,95,56],
-"struct_sync_generator_electrical_data.html#ab7faade6dd8c40554a82ade6e84730b3":[0,0,95,19],
-"struct_sync_generator_electrical_data.html#abb4e828c8091dd69e2535d72b51fc6e7":[0,0,95,44],
-"struct_sync_generator_electrical_data.html#abe8b5c90c1b330c2c340def3973694c6":[0,0,95,12],
-"struct_sync_generator_electrical_data.html#abe9f0c1ea9349fe319fefe804cfcf0bd":[0,0,95,7],
-"struct_sync_generator_electrical_data.html#abec98d3227f7c93d1caf05c3a885b097":[0,0,95,25],
-"struct_sync_generator_electrical_data.html#ac092cb3ba2be5fca9881fbaaa6d13ff1":[0,0,95,20],
-"struct_sync_generator_electrical_data.html#ac2b9ca7fa928dcc7c9ad5b3d90360784":[0,0,95,37],
-"struct_sync_generator_electrical_data.html#ac32b752bc6bc51a6adaf66e8a7cea895":[0,0,95,33],
-"struct_sync_generator_electrical_data.html#ac49316b6415fcb531df9f5ae5467ca20":[0,0,95,64],
-"struct_sync_generator_electrical_data.html#ac53d1a5127d7dcd5f8b94d2ca0cae4b7":[0,0,95,51],
-"struct_sync_generator_electrical_data.html#ac97b40c21bf8d411d2971c835d186a4a":[0,0,95,74],
-"struct_sync_generator_electrical_data.html#ad0217ad35b1964abffab864b0454717c":[0,0,95,31],
-"struct_sync_generator_electrical_data.html#ad5935c784af5f03f7c9cdba7df88f1de":[0,0,95,42],
-"struct_sync_generator_electrical_data.html#ad6cc9505241ac17f3ab1f6011aace0b8":[0,0,95,40],
-"struct_sync_generator_electrical_data.html#adc91d39da384d4caf81f50bc7bd56207":[0,0,95,59],
-"struct_sync_generator_electrical_data.html#ade7d762b92727bcc58821d3bf9a743ca":[0,0,95,43],
-"struct_sync_generator_electrical_data.html#adffc8e7c793c2f23dfd5b573a14aba24":[0,0,95,27],
-"struct_sync_generator_electrical_data.html#ae554e8863b29bf58119bad4e9b4eee52":[0,0,95,35],
-"struct_sync_generator_electrical_data.html#aeb8cc5e98f68e4a14febaa7436813f63":[0,0,95,17],
-"struct_sync_generator_electrical_data.html#aec21ca1955d3c33aa2d1fd4665f83261":[0,0,95,73]
+"struct_general_data.html":[0,0,40]
};
diff --git a/docs/doxygen/html/navtreeindex13.js b/docs/doxygen/html/navtreeindex13.js
index 048b951..43614a3 100644
--- a/docs/doxygen/html/navtreeindex13.js
+++ b/docs/doxygen/html/navtreeindex13.js
@@ -1,116 +1,253 @@
var NAVTREEINDEX13 =
{
-"struct_sync_generator_electrical_data.html#aef18b7163c5e2b9e6e2c671b3939480d":[0,0,95,39],
+"struct_general_data.html#ab52356d45c62ade32d080b3244f0b3ef":[0,0,40,0],
+"struct_general_data.html#aff6d4b38646366581a264e66a0a8e6d0":[0,0,40,1],
+"struct_ind_motor_electrical_data.html":[0,0,47],
+"struct_ind_motor_electrical_data.html#a27de229ce7940bfc15afc3601801dc1a":[0,0,47,1],
+"struct_ind_motor_electrical_data.html#a638909bb25e0e0957799bce28db54bd0":[0,0,47,2],
+"struct_ind_motor_electrical_data.html#ac42218e06dcb3b4a5cf54ec9c5cd6cf5":[0,0,47,3],
+"struct_ind_motor_electrical_data.html#ad7ccd4886668a2e1fa94a14741966927":[0,0,47,0],
+"struct_ind_motor_electrical_data.html#ae44b69b6c535a61c979bc6e7bfc86a41":[0,0,47,4],
+"struct_inductor_electrical_data.html":[0,0,51],
+"struct_inductor_electrical_data.html#a351fa53fe312f5436f101e57dcf1dff6":[0,0,51,0],
+"struct_inductor_electrical_data.html#a930f07d78c71de5b0bf62f5e1c07987d":[0,0,51,2],
+"struct_inductor_electrical_data.html#ab7816f138d77f1396aebb20987385ed2":[0,0,51,1],
+"struct_integration_constant.html":[0,0,52],
+"struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65":[0,0,52,1],
+"struct_integration_constant.html#afc3598097377951b84492d087a06b455":[0,0,52,0],
+"struct_line_electrical_data.html":[0,0,60],
+"struct_line_electrical_data.html#a1056c7122fa5908c61e76ded862a31e5":[0,0,60,7],
+"struct_line_electrical_data.html#a30b887f127806b28ba96b7710f04ff3f":[0,0,60,14],
+"struct_line_electrical_data.html#a33cfcc0ab29d3be0fd6ddf8032805d1b":[0,0,60,0],
+"struct_line_electrical_data.html#a509ce35959baf0ce23f1db73cd7de6a6":[0,0,60,15],
+"struct_line_electrical_data.html#a57774b1ee3f36e450b7a80dca48d5bca":[0,0,60,4],
+"struct_line_electrical_data.html#a678eec3a4ecaf9dde526bcbc3f422c49":[0,0,60,3],
+"struct_line_electrical_data.html#a6bfc865edf42d04035a34a623a9664e0":[0,0,60,9],
+"struct_line_electrical_data.html#a6fca3b0840b2e2711b2065396e04977a":[0,0,60,10],
+"struct_line_electrical_data.html#a73510824a3d47cad10f6d4e47568d308":[0,0,60,8],
+"struct_line_electrical_data.html#a7ac07247cc0a8fb661dacf3caeb9276a":[0,0,60,2],
+"struct_line_electrical_data.html#a7f04322f6dfda0b47243e9f836728ada":[0,0,60,11],
+"struct_line_electrical_data.html#a8852b0441c519c8e8f2507a1b796123a":[0,0,60,6],
+"struct_line_electrical_data.html#a9a978a31a88e51f76cd481dd05c89c39":[0,0,60,17],
+"struct_line_electrical_data.html#ab26c2c88d5ced5a99a0df1670777d37b":[0,0,60,12],
+"struct_line_electrical_data.html#aba6808c87d6305c813ea12f022f03e43":[0,0,60,16],
+"struct_line_electrical_data.html#ad67a555abe1b5c45866ca98f549591fe":[0,0,60,13],
+"struct_line_electrical_data.html#ae02c7ccf7c5b34c3e026496235084fd6":[0,0,60,5],
+"struct_line_electrical_data.html#ae07e759b48bbf409fd796a7662b7e7fb":[0,0,60,1],
+"struct_line_electrical_data.html#ae0a5ff6c4bb36cd6b671d3b8ac95bcf2":[0,0,60,18],
+"struct_load_electrical_data.html":[0,0,64],
+"struct_load_electrical_data.html#a0d3eacb5817ec49d2894d3dfd12385ab":[0,0,64,1],
+"struct_load_electrical_data.html#a5bc888d7d2e6b4b4d43a4a7d5f05e69c":[0,0,64,0],
+"struct_load_electrical_data.html#a9026df8866348f10a154c5996700ab40":[0,0,64,3],
+"struct_load_electrical_data.html#acd145e04317402c89cc03ba258a61a98":[0,0,64,5],
+"struct_load_electrical_data.html#ad5541520b5febfc4111296e2c1b8862e":[0,0,64,2],
+"struct_load_electrical_data.html#af0ea7a82b7b7a99f29debc03b1f7fbd3":[0,0,64,4],
+"struct_reactive_limits.html":[0,0,81],
+"struct_reactive_limits.html#a75d18e88f580e6573923139fc7736f14":[0,0,81,2],
+"struct_reactive_limits.html#a91673f0f2c3d93f376265931ff2f6ee5":[0,0,81,4],
+"struct_reactive_limits.html#ab6b953f8c1dec53d2fe5d0e8ac8d42cd":[0,0,81,1],
+"struct_reactive_limits.html#ae74269f642fb45328b112762c39613c0":[0,0,81,3],
+"struct_reactive_limits.html#ae857e3f04853ff3a91f6876314a382e6":[0,0,81,0],
+"struct_simulation_data.html":[0,0,85],
+"struct_simulation_data.html#a10954746e67fdbc89860f3718ed23ee9":[0,0,85,4],
+"struct_simulation_data.html#a18355fc645416844735b2496700aefab":[0,0,85,15],
+"struct_simulation_data.html#a2b7408c3a9f2dacc35099bbce451c261":[0,0,85,11],
+"struct_simulation_data.html#a367edc643dd9b6eca8413c666d1a02c1":[0,0,85,9],
+"struct_simulation_data.html#a3cf2e7f71bf62e323b60e0ddb997266a":[0,0,85,5],
+"struct_simulation_data.html#a4caa71c540375ce8c86da5edbc0048c6":[0,0,85,8],
+"struct_simulation_data.html#a4f00f14bee3145127e12023088e92dcf":[0,0,85,2],
+"struct_simulation_data.html#a75d5bdfb0ad45f3e901b73877dd5d394":[0,0,85,0],
+"struct_simulation_data.html#a845385f5d00d4f2481782cbc5bb8d77f":[0,0,85,10],
+"struct_simulation_data.html#ab5a905d2b287348696596e9f07fcd552":[0,0,85,1],
+"struct_simulation_data.html#ab8e32dc510771960d6d6612e80ddbae6":[0,0,85,7],
+"struct_simulation_data.html#ac8073342d75faf98fb15ff5100fdc711":[0,0,85,13],
+"struct_simulation_data.html#ac9bad1814e79451a2fd2f6afcee7016b":[0,0,85,12],
+"struct_simulation_data.html#adf9aa7a02213374ac15439e8929f0179":[0,0,85,6],
+"struct_simulation_data.html#af0ca3cdcc810fcba377e5c6e2bcd71b5":[0,0,85,14],
+"struct_simulation_data.html#af5b66ffff262e5d7c49835c1fb57b302":[0,0,85,3],
+"struct_switching_data.html":[0,0,91],
+"struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df":[0,0,91,0],
+"struct_switching_data.html#af78fb958137a0532ea2a584810708574":[0,0,91,1],
+"struct_sync_generator_electrical_data.html":[0,0,95],
+"struct_sync_generator_electrical_data.html#a02ea43b57770200f43686b21d6f5bee7":[0,0,95,4],
+"struct_sync_generator_electrical_data.html#a039151f15d01a6b70c13674894034350":[0,0,95,14],
+"struct_sync_generator_electrical_data.html#a120f89adf2d52ae106e3d99fa7453a0d":[0,0,95,68],
+"struct_sync_generator_electrical_data.html#a124840d7c73161bb4187aa5215969647":[0,0,95,43],
+"struct_sync_generator_electrical_data.html#a13371480bdeca2be90140e3c168ee9a7":[0,0,95,21],
+"struct_sync_generator_electrical_data.html#a1405e96b81978e44e60dc535fbe08f47":[0,0,95,40],
+"struct_sync_generator_electrical_data.html#a16117d43dd668998854692abaf289c5f":[0,0,95,38],
+"struct_sync_generator_electrical_data.html#a19511b88d17a0046dcd5e94aa748a966":[0,0,95,36],
+"struct_sync_generator_electrical_data.html#a1a1224d8d980c1aa408acd0c731e73c1":[0,0,95,22],
+"struct_sync_generator_electrical_data.html#a1c21e18774280d7dc7378e39eeba04ff":[0,0,95,58],
+"struct_sync_generator_electrical_data.html#a1d80742377fac4d719085c967d831608":[0,0,95,25],
+"struct_sync_generator_electrical_data.html#a20b583f81933f0f077fb78851b92e7f5":[0,0,95,10],
+"struct_sync_generator_electrical_data.html#a210c90fcf0cb602453758550f12fc625":[0,0,95,32],
+"struct_sync_generator_electrical_data.html#a235b1f71ead84082b1fce66bfd7a17fc":[0,0,95,72],
+"struct_sync_generator_electrical_data.html#a278df0fd573717f280a99a6e1ac5f688":[0,0,95,75],
+"struct_sync_generator_electrical_data.html#a2a21d204b68e1896bd2aae87ef9e6ec3":[0,0,95,30],
+"struct_sync_generator_electrical_data.html#a2a228ce1cc8ac26705da097326921e0f":[0,0,95,13],
+"struct_sync_generator_electrical_data.html#a32a4709d2efaa85914e1757077fa4b21":[0,0,95,9],
+"struct_sync_generator_electrical_data.html#a39a8fd0c1e59355cf72f4fbf274c1863":[0,0,95,1],
+"struct_sync_generator_electrical_data.html#a3fe501f6261730e18c4601cfdb7db680":[0,0,95,5],
+"struct_sync_generator_electrical_data.html#a452fd337c002c0872ee2f22f8eefeb14":[0,0,95,27],
+"struct_sync_generator_electrical_data.html#a4726eca1a20265688e6145f4f95885aa":[0,0,95,71],
+"struct_sync_generator_electrical_data.html#a539062122f9f437a40c4e50e17bb2a87":[0,0,95,8],
+"struct_sync_generator_electrical_data.html#a53edeaeb3361da40e3939bfffa401e6c":[0,0,95,49],
+"struct_sync_generator_electrical_data.html#a565358e9818ff25a4e96d50cade77be4":[0,0,95,11],
+"struct_sync_generator_electrical_data.html#a58c50a8e615dadef9353046329b829f9":[0,0,95,0],
+"struct_sync_generator_electrical_data.html#a58d893dcf9933cf73be0bb12d3472ac6":[0,0,95,31],
+"struct_sync_generator_electrical_data.html#a599699b6b55ca35dfec13f0a1d58dc37":[0,0,95,24],
+"struct_sync_generator_electrical_data.html#a5bfbef7dc02c36f5673ebd6c25f9a7a9":[0,0,95,57],
+"struct_sync_generator_electrical_data.html#a64003e1947c801662450bb04723e1696":[0,0,95,61],
+"struct_sync_generator_electrical_data.html#a6bd4994b89c6a338c7d51e875490a31f":[0,0,95,18],
+"struct_sync_generator_electrical_data.html#a73980536ff6e4485d4d71bf5407d9d8c":[0,0,95,51],
+"struct_sync_generator_electrical_data.html#a73b9df7db4f2d984fb5f976003122131":[0,0,95,63],
+"struct_sync_generator_electrical_data.html#a750898c7ac2b2612a3db657d5459626d":[0,0,95,45],
+"struct_sync_generator_electrical_data.html#a787696951a05eb8000c0495b018246e4":[0,0,95,54],
+"struct_sync_generator_electrical_data.html#a78ce2b0f1cb61c3e1d56796ffe7d2d11":[0,0,95,50],
+"struct_sync_generator_electrical_data.html#a78dbbb159874e5e4f3f889881fd50408":[0,0,95,16],
+"struct_sync_generator_electrical_data.html#a79529c49e1337863a2aca63b9c57c821":[0,0,95,52],
+"struct_sync_generator_electrical_data.html#a7c4224d05447c55c895fe164d09e0a8c":[0,0,95,59],
+"struct_sync_generator_electrical_data.html#a7d388c89ca828391d47df50172cd9da1":[0,0,95,67],
+"struct_sync_generator_electrical_data.html#a7f78dad336b743be9627377e015bff26":[0,0,95,69],
+"struct_sync_generator_electrical_data.html#a808dac6e3f783331633990b4ad18831a":[0,0,95,73],
+"struct_sync_generator_electrical_data.html#a80cc5ac62cbe7932c1f96be3843d0f38":[0,0,95,78],
+"struct_sync_generator_electrical_data.html#a82bc75dc1c81776dc2998803e0f62890":[0,0,95,53],
+"struct_sync_generator_electrical_data.html#a842fa25b7c6051b5b93cfc8fe28867d2":[0,0,95,2],
+"struct_sync_generator_electrical_data.html#a854269759e28f1bf4782fa23dcbbe811":[0,0,95,81],
+"struct_sync_generator_electrical_data.html#a8827b25efb3bb80e511412fcf2e63f42":[0,0,95,56],
+"struct_sync_generator_electrical_data.html#a89ccce917e842d4ad6f2f7c076a38a47":[0,0,95,15],
+"struct_sync_generator_electrical_data.html#a8f0d820f77f5cfd6f8ef2c53570422c7":[0,0,95,76],
+"struct_sync_generator_electrical_data.html#a930a0681c0c9cabd3d0a363e3bfae4d9":[0,0,95,64],
+"struct_sync_generator_electrical_data.html#a96752298c088dea20ecc690644ea3a86":[0,0,95,46],
+"struct_sync_generator_electrical_data.html#a97c98fba9f73a7b70ac84e6e4dc7bd2f":[0,0,95,34],
+"struct_sync_generator_electrical_data.html#a9a534e4c50aba0e6a2cc6b5dbc2d2c03":[0,0,95,23],
+"struct_sync_generator_electrical_data.html#a9e97d6c96ba58cfb8dcc1d1293867ef1":[0,0,95,6],
+"struct_sync_generator_electrical_data.html#a9f351e057a8249ae2fcfdf7e102e4633":[0,0,95,74],
+"struct_sync_generator_electrical_data.html#ab261eec61032be2722ff2c6f7b2c7506":[0,0,95,66],
+"struct_sync_generator_electrical_data.html#ab4c9a79a39406b6e744ab4fb92e94750":[0,0,95,62],
+"struct_sync_generator_electrical_data.html#ab7faade6dd8c40554a82ade6e84730b3":[0,0,95,19],
+"struct_sync_generator_electrical_data.html#abb4e828c8091dd69e2535d72b51fc6e7":[0,0,95,48],
+"struct_sync_generator_electrical_data.html#abe8b5c90c1b330c2c340def3973694c6":[0,0,95,12],
+"struct_sync_generator_electrical_data.html#abe9f0c1ea9349fe319fefe804cfcf0bd":[0,0,95,7],
+"struct_sync_generator_electrical_data.html#abec98d3227f7c93d1caf05c3a885b097":[0,0,95,26],
+"struct_sync_generator_electrical_data.html#ac092cb3ba2be5fca9881fbaaa6d13ff1":[0,0,95,20],
+"struct_sync_generator_electrical_data.html#ac2b9ca7fa928dcc7c9ad5b3d90360784":[0,0,95,39],
+"struct_sync_generator_electrical_data.html#ac32b752bc6bc51a6adaf66e8a7cea895":[0,0,95,35],
+"struct_sync_generator_electrical_data.html#ac49316b6415fcb531df9f5ae5467ca20":[0,0,95,70],
+"struct_sync_generator_electrical_data.html#ac53d1a5127d7dcd5f8b94d2ca0cae4b7":[0,0,95,55],
+"struct_sync_generator_electrical_data.html#ac97b40c21bf8d411d2971c835d186a4a":[0,0,95,80],
+"struct_sync_generator_electrical_data.html#ad0217ad35b1964abffab864b0454717c":[0,0,95,33],
+"struct_sync_generator_electrical_data.html#ad5935c784af5f03f7c9cdba7df88f1de":[0,0,95,44],
+"struct_sync_generator_electrical_data.html#ad6cc9505241ac17f3ab1f6011aace0b8":[0,0,95,42],
+"struct_sync_generator_electrical_data.html#adc91d39da384d4caf81f50bc7bd56207":[0,0,95,65],
+"struct_sync_generator_electrical_data.html#ade7d762b92727bcc58821d3bf9a743ca":[0,0,95,47],
+"struct_sync_generator_electrical_data.html#adffc8e7c793c2f23dfd5b573a14aba24":[0,0,95,29],
+"struct_sync_generator_electrical_data.html#ae06d59efebe1956a310dbc43e4780abe":[0,0,95,28],
+"struct_sync_generator_electrical_data.html#ae554e8863b29bf58119bad4e9b4eee52":[0,0,95,37],
+"struct_sync_generator_electrical_data.html#aeb8cc5e98f68e4a14febaa7436813f63":[0,0,95,17],
+"struct_sync_generator_electrical_data.html#aec21ca1955d3c33aa2d1fd4665f83261":[0,0,95,79],
+"struct_sync_generator_electrical_data.html#aef18b7163c5e2b9e6e2c671b3939480d":[0,0,95,41],
"struct_sync_generator_electrical_data.html#af0b3c5e37645d44e40add8fcf4bec7ea":[0,0,95,3],
-"struct_sync_generator_electrical_data.html#af659153561dff178ed4d3b87d79d05a0":[0,0,95,71],
-"struct_sync_motor_electrical_data.html":[0,0,99],
-"struct_sync_motor_electrical_data.html#a051aadc933064e1da5dbd9f74b81d170":[0,0,99,35],
-"struct_sync_motor_electrical_data.html#a063a404b21e2127a02648fcaf45a5262":[0,0,99,36],
-"struct_sync_motor_electrical_data.html#a0869e5e1534c10bd2d8b9597a6787a24":[0,0,99,7],
-"struct_sync_motor_electrical_data.html#a0b3104f4dd9e45e92205f2ae18498c5c":[0,0,99,22],
-"struct_sync_motor_electrical_data.html#a0f602e8d66656209e5ec223ba000ca55":[0,0,99,1],
-"struct_sync_motor_electrical_data.html#a0fbea6750a832909452d464b6ce5476a":[0,0,99,14],
-"struct_sync_motor_electrical_data.html#a1240daaa5654ca3a81e9351ece1be28c":[0,0,99,9],
-"struct_sync_motor_electrical_data.html#a12bf4ce083ab090ac9b34f948bf01d73":[0,0,99,72],
-"struct_sync_motor_electrical_data.html#a182463eaae4af8c639cff095ead39763":[0,0,99,51],
-"struct_sync_motor_electrical_data.html#a1909f35de18bc3ef4692b6b897e06fdb":[0,0,99,31],
-"struct_sync_motor_electrical_data.html#a1a1431ec9cbc6d7d443b2888cf21fe26":[0,0,99,15],
-"struct_sync_motor_electrical_data.html#a2002371fc5d5e83e8cd4f7ce24db430a":[0,0,99,73],
-"struct_sync_motor_electrical_data.html#a21533238587fde91b8655dd75f9d322c":[0,0,99,54],
-"struct_sync_motor_electrical_data.html#a2714d6f631dd24a1dd79a6dae0b3fe01":[0,0,99,43],
-"struct_sync_motor_electrical_data.html#a2a01010ebcc937abb94f936e0db1b295":[0,0,99,61],
-"struct_sync_motor_electrical_data.html#a3372b8b20483ca99d8b1a9c227b2f034":[0,0,99,27],
-"struct_sync_motor_electrical_data.html#a36a4cbab101c5fe573eafd75794d0cf3":[0,0,99,57],
-"struct_sync_motor_electrical_data.html#a3cac2eb4410c37e488a9359ef39c3b3b":[0,0,99,30],
-"struct_sync_motor_electrical_data.html#a4467a494945cd3da378d0f97039de94f":[0,0,99,70],
-"struct_sync_motor_electrical_data.html#a46c3e4a04013c37e4d77497bdcca2d7b":[0,0,99,13],
-"struct_sync_motor_electrical_data.html#a48e826b8bfaaea8391a67374349724dc":[0,0,99,34],
-"struct_sync_motor_electrical_data.html#a4c5361a270446607dabb2929a8854653":[0,0,99,6],
-"struct_sync_motor_electrical_data.html#a513c4e37f2f062ee8e5086a1d2fdf57a":[0,0,99,56],
-"struct_sync_motor_electrical_data.html#a540046b2272b75675181979dad8ccc8b":[0,0,99,52],
-"struct_sync_motor_electrical_data.html#a56b504d00007e15f0271c0702bfcf6cd":[0,0,99,17],
-"struct_sync_motor_electrical_data.html#a5bbc9459ac89c28089792ed76a2c01e5":[0,0,99,66],
-"struct_sync_motor_electrical_data.html#a64fe0337aa51aab1d0b11b72d6bb79c3":[0,0,99,46],
-"struct_sync_motor_electrical_data.html#a669d499150a715ad3ab2a1186fc2a22c":[0,0,99,4],
-"struct_sync_motor_electrical_data.html#a68a50d74cbe840e6f5ddde4d6568551e":[0,0,99,5],
-"struct_sync_motor_electrical_data.html#a6fd87a55210b48a4cdbb99a1a9a05ff2":[0,0,99,12],
-"struct_sync_motor_electrical_data.html#a71dfd4556a62431ab7657af1173cb29b":[0,0,99,58],
-"struct_sync_motor_electrical_data.html#a72a4c00574d24476341ce64b178b0917":[0,0,99,53],
-"struct_sync_motor_electrical_data.html#a72bca6a6528590d3a53ac0ff8557d9d0":[0,0,99,2],
-"struct_sync_motor_electrical_data.html#a732b333a510ef770abb9ae89003f2f60":[0,0,99,74],
-"struct_sync_motor_electrical_data.html#a7447305e5858f66fd7cab718e09cb5d0":[0,0,99,55],
-"struct_sync_motor_electrical_data.html#a8182fa185ba94200df9c76f27a7aa950":[0,0,99,32],
-"struct_sync_motor_electrical_data.html#a85ae173b59ea2f380786c36ec534743b":[0,0,99,38],
-"struct_sync_motor_electrical_data.html#a85bf9e6428f0cef5b3a4d6412185746b":[0,0,99,19],
-"struct_sync_motor_electrical_data.html#a8685294c4133ec612d4a3d3615240336":[0,0,99,59],
-"struct_sync_motor_electrical_data.html#a891dc4f1f52a9db079b3cf91707afca9":[0,0,99,49],
-"struct_sync_motor_electrical_data.html#a8f3571e353fe1d0678754fc2f203c1e7":[0,0,99,62],
-"struct_sync_motor_electrical_data.html#a90b20df7d8b2b09d95641c2574176153":[0,0,99,33],
-"struct_sync_motor_electrical_data.html#a94540978a1fdc557aaab60c2fc8c9a5d":[0,0,99,28],
-"struct_sync_motor_electrical_data.html#a98301a458887ef7cde8bab0095652ba4":[0,0,99,23],
-"struct_sync_motor_electrical_data.html#a9b953c627d870073f16595d6a0270f31":[0,0,99,44],
-"struct_sync_motor_electrical_data.html#a9e9e4e4687dbc2f4a0cc38ca5177079c":[0,0,99,75],
-"struct_sync_motor_electrical_data.html#aa734d7a7da312566c7ff3c224d932d72":[0,0,99,71],
-"struct_sync_motor_electrical_data.html#ab244f2e6f4149d7f4c85efb286e174ce":[0,0,99,39],
-"struct_sync_motor_electrical_data.html#ab5b8932c7b973cb7241acd0078276559":[0,0,99,50],
-"struct_sync_motor_electrical_data.html#ab807e7528d0ba01024ade3f5da560e56":[0,0,99,8],
-"struct_sync_motor_electrical_data.html#ab818b0778da594bf026c1c5f9f028444":[0,0,99,37],
-"struct_sync_motor_electrical_data.html#ac1984f28f4c9987bc9578150985c7d06":[0,0,99,47],
-"struct_sync_motor_electrical_data.html#ac2b1fd857d3fbd43d13c4f03d4998b0a":[0,0,99,42],
-"struct_sync_motor_electrical_data.html#ac2fd73dbd4897f7a47a13361022ee8b7":[0,0,99,48],
-"struct_sync_motor_electrical_data.html#ac570dda882a0360ba00bdac26666e1b6":[0,0,99,3],
-"struct_sync_motor_electrical_data.html#ac5dd2b71485b5ac3a515bfffe8660086":[0,0,99,40],
-"struct_sync_motor_electrical_data.html#ac6eec343f36f933a2d2c2858fb89f1e4":[0,0,99,24],
-"struct_sync_motor_electrical_data.html#acdf36a814a5dbc049a49d6a8a4a5dbf8":[0,0,99,69],
-"struct_sync_motor_electrical_data.html#ad1095e977927999800fa57a7251a9d50":[0,0,99,63],
-"struct_sync_motor_electrical_data.html#ad5be10659aa046767021eee8f17bc5f3":[0,0,99,26],
-"struct_sync_motor_electrical_data.html#ad63d9f8a9b8e87d3167e7110ba50ecdd":[0,0,99,67],
-"struct_sync_motor_electrical_data.html#ad7257fa4d7fd7e9b104a4d7076fde2fe":[0,0,99,21],
-"struct_sync_motor_electrical_data.html#adaadd65c21f57320599da2e87fd148f7":[0,0,99,0],
-"struct_sync_motor_electrical_data.html#add530e37d8821f30ec873a10c24d8c41":[0,0,99,68],
-"struct_sync_motor_electrical_data.html#ade1a3889071ddf1d02e7d21bc31e4566":[0,0,99,11],
-"struct_sync_motor_electrical_data.html#ae21827f6456277ca9b3b659dc1cc5181":[0,0,99,41],
-"struct_sync_motor_electrical_data.html#ae81cf3bd42b466d6450fa1de1896d5a0":[0,0,99,45],
-"struct_sync_motor_electrical_data.html#ae95f80f05a6f818ee15e04412223fcd7":[0,0,99,60],
-"struct_sync_motor_electrical_data.html#ae97bcbb0f856bd793315d2319572bdd4":[0,0,99,10],
-"struct_sync_motor_electrical_data.html#aed62412a84b5beefe7419b6441ce51a7":[0,0,99,16],
-"struct_sync_motor_electrical_data.html#aefbe9eb66cf3626fc03c4ffe6579ef34":[0,0,99,29],
-"struct_sync_motor_electrical_data.html#af01b0c7e5b48c4f6cef9775b627d98f2":[0,0,99,20],
-"struct_sync_motor_electrical_data.html#af96a383a7dfd859d9b2c6525a70ab96e":[0,0,99,25],
-"struct_sync_motor_electrical_data.html#afd1714dee3344dd0601dcfc074536da9":[0,0,99,18],
-"struct_sync_motor_electrical_data.html#afe07e31feeeea93e1df89feafd8ab791":[0,0,99,64],
-"struct_sync_motor_electrical_data.html#afe938f6d3c0b24d7881f6ec1f9d3bf87":[0,0,99,65],
-"struct_transfer_function_1_1_space_state.html":[0,0,105,0],
-"struct_transfer_function_1_1_space_state.html#a3e3bc8524eb751a1f243ee08a6eb7646":[0,0,105,0,0],
-"struct_transfer_function_1_1_space_state.html#a4c0bf33dd7a387aed5fd4f4919f15b85":[0,0,105,0,1],
-"struct_transfer_function_1_1_space_state.html#a4fc70fb0845c4541742ebd123373d4c7":[0,0,105,0,3],
-"struct_transfer_function_1_1_space_state.html#afda97fae8560f595948c810a8ae47202":[0,0,105,0,2],
-"struct_transformer_electrical_data.html":[0,0,109],
-"struct_transformer_electrical_data.html#a03331e5c4e0ad04c851fffabcc9936ec":[0,0,109,19],
-"struct_transformer_electrical_data.html#a1513d2efe2ee080359a6bb9f3177d7ee":[0,0,109,8],
-"struct_transformer_electrical_data.html#a21d613ccca353784d8adfd0bfdaca0ff":[0,0,109,22],
-"struct_transformer_electrical_data.html#a2d2883e680df2522b8517235b1345512":[0,0,109,1],
-"struct_transformer_electrical_data.html#a3101afa7a1e145675819742f05422e90":[0,0,109,13],
-"struct_transformer_electrical_data.html#a343366e4142013e724874e6bf79acc67":[0,0,109,10],
-"struct_transformer_electrical_data.html#a40158cfd130b05ab26e624395f32018b":[0,0,109,14],
-"struct_transformer_electrical_data.html#a469a24e58338613b620de352ea06c13d":[0,0,109,4],
-"struct_transformer_electrical_data.html#a520014be18decacdfec876f3a23b68ae":[0,0,109,18],
-"struct_transformer_electrical_data.html#a55492dae7b4489903bb5a45b4d3b093a":[0,0,109,12],
-"struct_transformer_electrical_data.html#a7cb4f1fbe494fa905c56d324a05a7b32":[0,0,109,5],
-"struct_transformer_electrical_data.html#a8a90bbbcefecfe59505d86003354afdc":[0,0,109,16],
-"struct_transformer_electrical_data.html#a900c1dfc24ebcca169fae8dfd4a3e6bd":[0,0,109,15],
-"struct_transformer_electrical_data.html#a913f0ad1ba90018a13d7930670438a89":[0,0,109,21],
-"struct_transformer_electrical_data.html#a9da8363e7eb19e805650db36d87fca93":[0,0,109,7],
-"struct_transformer_electrical_data.html#aa450538f0a29571bef6e2785d3544bb2":[0,0,109,6],
-"struct_transformer_electrical_data.html#aabe6d597ed902640f5c87f2cd2550364":[0,0,109,0],
-"struct_transformer_electrical_data.html#ab6606d2f93aa369b7a3173e61d44c8f3":[0,0,109,24],
-"struct_transformer_electrical_data.html#abae77eeb48d1a56cb10302f2b9aea38c":[0,0,109,17],
-"struct_transformer_electrical_data.html#ac954927451779be66154613475143dc9":[0,0,109,11],
-"struct_transformer_electrical_data.html#ad1a62e6b3f896f6a9d794f6b9e02f599":[0,0,109,9],
-"struct_transformer_electrical_data.html#add161341c5cdd9c9ce93c34f9ace2c08":[0,0,109,20],
-"struct_transformer_electrical_data.html#af19976dfba78777187211ab79581396e":[0,0,109,2],
-"struct_transformer_electrical_data.html#af4454c28f422632359573496c40b70e4":[0,0,109,3],
-"struct_transformer_electrical_data.html#afb45c8a86048551b51c399a1b72ff949":[0,0,109,23],
-"wx_g_l_string_8cpp_source.html":[1,0,0,156],
-"wx_g_l_string_8h_source.html":[1,0,0,157]
+"struct_sync_generator_electrical_data.html#af4177bcbee0f968986860e9294f70129":[0,0,95,60],
+"struct_sync_generator_electrical_data.html#af659153561dff178ed4d3b87d79d05a0":[0,0,95,77],
+"struct_sync_machine_model_data.html":[0,0,98],
+"struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076":[0,0,98,1],
+"struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6":[0,0,98,0],
+"struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330":[0,0,98,2],
+"struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc":[0,0,98,3],
+"struct_sync_motor_electrical_data.html":[0,0,100],
+"struct_sync_motor_electrical_data.html#a051aadc933064e1da5dbd9f74b81d170":[0,0,100,35],
+"struct_sync_motor_electrical_data.html#a063a404b21e2127a02648fcaf45a5262":[0,0,100,36],
+"struct_sync_motor_electrical_data.html#a0869e5e1534c10bd2d8b9597a6787a24":[0,0,100,7],
+"struct_sync_motor_electrical_data.html#a0b3104f4dd9e45e92205f2ae18498c5c":[0,0,100,22],
+"struct_sync_motor_electrical_data.html#a0f602e8d66656209e5ec223ba000ca55":[0,0,100,1],
+"struct_sync_motor_electrical_data.html#a0fbea6750a832909452d464b6ce5476a":[0,0,100,14],
+"struct_sync_motor_electrical_data.html#a1240daaa5654ca3a81e9351ece1be28c":[0,0,100,9],
+"struct_sync_motor_electrical_data.html#a12bf4ce083ab090ac9b34f948bf01d73":[0,0,100,72],
+"struct_sync_motor_electrical_data.html#a182463eaae4af8c639cff095ead39763":[0,0,100,51],
+"struct_sync_motor_electrical_data.html#a1909f35de18bc3ef4692b6b897e06fdb":[0,0,100,31],
+"struct_sync_motor_electrical_data.html#a1a1431ec9cbc6d7d443b2888cf21fe26":[0,0,100,15],
+"struct_sync_motor_electrical_data.html#a2002371fc5d5e83e8cd4f7ce24db430a":[0,0,100,73],
+"struct_sync_motor_electrical_data.html#a21533238587fde91b8655dd75f9d322c":[0,0,100,54],
+"struct_sync_motor_electrical_data.html#a2714d6f631dd24a1dd79a6dae0b3fe01":[0,0,100,43],
+"struct_sync_motor_electrical_data.html#a2a01010ebcc937abb94f936e0db1b295":[0,0,100,61],
+"struct_sync_motor_electrical_data.html#a3372b8b20483ca99d8b1a9c227b2f034":[0,0,100,27],
+"struct_sync_motor_electrical_data.html#a36a4cbab101c5fe573eafd75794d0cf3":[0,0,100,57],
+"struct_sync_motor_electrical_data.html#a3cac2eb4410c37e488a9359ef39c3b3b":[0,0,100,30],
+"struct_sync_motor_electrical_data.html#a4467a494945cd3da378d0f97039de94f":[0,0,100,70],
+"struct_sync_motor_electrical_data.html#a46c3e4a04013c37e4d77497bdcca2d7b":[0,0,100,13],
+"struct_sync_motor_electrical_data.html#a48e826b8bfaaea8391a67374349724dc":[0,0,100,34],
+"struct_sync_motor_electrical_data.html#a4c5361a270446607dabb2929a8854653":[0,0,100,6],
+"struct_sync_motor_electrical_data.html#a513c4e37f2f062ee8e5086a1d2fdf57a":[0,0,100,56],
+"struct_sync_motor_electrical_data.html#a540046b2272b75675181979dad8ccc8b":[0,0,100,52],
+"struct_sync_motor_electrical_data.html#a56b504d00007e15f0271c0702bfcf6cd":[0,0,100,17],
+"struct_sync_motor_electrical_data.html#a5bbc9459ac89c28089792ed76a2c01e5":[0,0,100,66],
+"struct_sync_motor_electrical_data.html#a64fe0337aa51aab1d0b11b72d6bb79c3":[0,0,100,46],
+"struct_sync_motor_electrical_data.html#a669d499150a715ad3ab2a1186fc2a22c":[0,0,100,4],
+"struct_sync_motor_electrical_data.html#a68a50d74cbe840e6f5ddde4d6568551e":[0,0,100,5],
+"struct_sync_motor_electrical_data.html#a6fd87a55210b48a4cdbb99a1a9a05ff2":[0,0,100,12],
+"struct_sync_motor_electrical_data.html#a71dfd4556a62431ab7657af1173cb29b":[0,0,100,58],
+"struct_sync_motor_electrical_data.html#a72a4c00574d24476341ce64b178b0917":[0,0,100,53],
+"struct_sync_motor_electrical_data.html#a72bca6a6528590d3a53ac0ff8557d9d0":[0,0,100,2],
+"struct_sync_motor_electrical_data.html#a732b333a510ef770abb9ae89003f2f60":[0,0,100,74],
+"struct_sync_motor_electrical_data.html#a7447305e5858f66fd7cab718e09cb5d0":[0,0,100,55],
+"struct_sync_motor_electrical_data.html#a8182fa185ba94200df9c76f27a7aa950":[0,0,100,32],
+"struct_sync_motor_electrical_data.html#a85ae173b59ea2f380786c36ec534743b":[0,0,100,38],
+"struct_sync_motor_electrical_data.html#a85bf9e6428f0cef5b3a4d6412185746b":[0,0,100,19],
+"struct_sync_motor_electrical_data.html#a8685294c4133ec612d4a3d3615240336":[0,0,100,59],
+"struct_sync_motor_electrical_data.html#a891dc4f1f52a9db079b3cf91707afca9":[0,0,100,49],
+"struct_sync_motor_electrical_data.html#a8f3571e353fe1d0678754fc2f203c1e7":[0,0,100,62],
+"struct_sync_motor_electrical_data.html#a90b20df7d8b2b09d95641c2574176153":[0,0,100,33],
+"struct_sync_motor_electrical_data.html#a94540978a1fdc557aaab60c2fc8c9a5d":[0,0,100,28],
+"struct_sync_motor_electrical_data.html#a98301a458887ef7cde8bab0095652ba4":[0,0,100,23],
+"struct_sync_motor_electrical_data.html#a9b953c627d870073f16595d6a0270f31":[0,0,100,44],
+"struct_sync_motor_electrical_data.html#a9e9e4e4687dbc2f4a0cc38ca5177079c":[0,0,100,75],
+"struct_sync_motor_electrical_data.html#aa734d7a7da312566c7ff3c224d932d72":[0,0,100,71],
+"struct_sync_motor_electrical_data.html#ab244f2e6f4149d7f4c85efb286e174ce":[0,0,100,39],
+"struct_sync_motor_electrical_data.html#ab5b8932c7b973cb7241acd0078276559":[0,0,100,50],
+"struct_sync_motor_electrical_data.html#ab807e7528d0ba01024ade3f5da560e56":[0,0,100,8],
+"struct_sync_motor_electrical_data.html#ab818b0778da594bf026c1c5f9f028444":[0,0,100,37],
+"struct_sync_motor_electrical_data.html#ac1984f28f4c9987bc9578150985c7d06":[0,0,100,47],
+"struct_sync_motor_electrical_data.html#ac2b1fd857d3fbd43d13c4f03d4998b0a":[0,0,100,42],
+"struct_sync_motor_electrical_data.html#ac2fd73dbd4897f7a47a13361022ee8b7":[0,0,100,48],
+"struct_sync_motor_electrical_data.html#ac570dda882a0360ba00bdac26666e1b6":[0,0,100,3],
+"struct_sync_motor_electrical_data.html#ac5dd2b71485b5ac3a515bfffe8660086":[0,0,100,40],
+"struct_sync_motor_electrical_data.html#ac6eec343f36f933a2d2c2858fb89f1e4":[0,0,100,24],
+"struct_sync_motor_electrical_data.html#acdf36a814a5dbc049a49d6a8a4a5dbf8":[0,0,100,69],
+"struct_sync_motor_electrical_data.html#ad1095e977927999800fa57a7251a9d50":[0,0,100,63],
+"struct_sync_motor_electrical_data.html#ad5be10659aa046767021eee8f17bc5f3":[0,0,100,26],
+"struct_sync_motor_electrical_data.html#ad63d9f8a9b8e87d3167e7110ba50ecdd":[0,0,100,67],
+"struct_sync_motor_electrical_data.html#ad7257fa4d7fd7e9b104a4d7076fde2fe":[0,0,100,21],
+"struct_sync_motor_electrical_data.html#adaadd65c21f57320599da2e87fd148f7":[0,0,100,0],
+"struct_sync_motor_electrical_data.html#add530e37d8821f30ec873a10c24d8c41":[0,0,100,68],
+"struct_sync_motor_electrical_data.html#ade1a3889071ddf1d02e7d21bc31e4566":[0,0,100,11],
+"struct_sync_motor_electrical_data.html#ae21827f6456277ca9b3b659dc1cc5181":[0,0,100,41],
+"struct_sync_motor_electrical_data.html#ae81cf3bd42b466d6450fa1de1896d5a0":[0,0,100,45],
+"struct_sync_motor_electrical_data.html#ae95f80f05a6f818ee15e04412223fcd7":[0,0,100,60],
+"struct_sync_motor_electrical_data.html#ae97bcbb0f856bd793315d2319572bdd4":[0,0,100,10],
+"struct_sync_motor_electrical_data.html#aed62412a84b5beefe7419b6441ce51a7":[0,0,100,16],
+"struct_sync_motor_electrical_data.html#aefbe9eb66cf3626fc03c4ffe6579ef34":[0,0,100,29],
+"struct_sync_motor_electrical_data.html#af01b0c7e5b48c4f6cef9775b627d98f2":[0,0,100,20],
+"struct_sync_motor_electrical_data.html#af96a383a7dfd859d9b2c6525a70ab96e":[0,0,100,25],
+"struct_sync_motor_electrical_data.html#afd1714dee3344dd0601dcfc074536da9":[0,0,100,18],
+"struct_sync_motor_electrical_data.html#afe07e31feeeea93e1df89feafd8ab791":[0,0,100,64],
+"struct_sync_motor_electrical_data.html#afe938f6d3c0b24d7881f6ec1f9d3bf87":[0,0,100,65],
+"struct_transfer_function_1_1_space_state.html":[0,0,106,0],
+"struct_transfer_function_1_1_space_state.html#a3e3bc8524eb751a1f243ee08a6eb7646":[0,0,106,0,0],
+"struct_transfer_function_1_1_space_state.html#a4c0bf33dd7a387aed5fd4f4919f15b85":[0,0,106,0,1],
+"struct_transfer_function_1_1_space_state.html#a4fc70fb0845c4541742ebd123373d4c7":[0,0,106,0,3],
+"struct_transfer_function_1_1_space_state.html#afda97fae8560f595948c810a8ae47202":[0,0,106,0,2],
+"struct_transformer_electrical_data.html":[0,0,110],
+"struct_transformer_electrical_data.html#a03331e5c4e0ad04c851fffabcc9936ec":[0,0,110,19],
+"struct_transformer_electrical_data.html#a1513d2efe2ee080359a6bb9f3177d7ee":[0,0,110,8],
+"struct_transformer_electrical_data.html#a21d613ccca353784d8adfd0bfdaca0ff":[0,0,110,22],
+"struct_transformer_electrical_data.html#a2d2883e680df2522b8517235b1345512":[0,0,110,1],
+"struct_transformer_electrical_data.html#a3101afa7a1e145675819742f05422e90":[0,0,110,13],
+"struct_transformer_electrical_data.html#a343366e4142013e724874e6bf79acc67":[0,0,110,10],
+"struct_transformer_electrical_data.html#a40158cfd130b05ab26e624395f32018b":[0,0,110,14],
+"struct_transformer_electrical_data.html#a469a24e58338613b620de352ea06c13d":[0,0,110,4],
+"struct_transformer_electrical_data.html#a520014be18decacdfec876f3a23b68ae":[0,0,110,18],
+"struct_transformer_electrical_data.html#a55492dae7b4489903bb5a45b4d3b093a":[0,0,110,12],
+"struct_transformer_electrical_data.html#a7cb4f1fbe494fa905c56d324a05a7b32":[0,0,110,5]
};
diff --git a/docs/doxygen/html/navtreeindex14.js b/docs/doxygen/html/navtreeindex14.js
new file mode 100644
index 0000000..8dfc542
--- /dev/null
+++ b/docs/doxygen/html/navtreeindex14.js
@@ -0,0 +1,19 @@
+var NAVTREEINDEX14 =
+{
+"struct_transformer_electrical_data.html#a8a90bbbcefecfe59505d86003354afdc":[0,0,110,16],
+"struct_transformer_electrical_data.html#a900c1dfc24ebcca169fae8dfd4a3e6bd":[0,0,110,15],
+"struct_transformer_electrical_data.html#a913f0ad1ba90018a13d7930670438a89":[0,0,110,21],
+"struct_transformer_electrical_data.html#a9da8363e7eb19e805650db36d87fca93":[0,0,110,7],
+"struct_transformer_electrical_data.html#aa450538f0a29571bef6e2785d3544bb2":[0,0,110,6],
+"struct_transformer_electrical_data.html#aabe6d597ed902640f5c87f2cd2550364":[0,0,110,0],
+"struct_transformer_electrical_data.html#ab6606d2f93aa369b7a3173e61d44c8f3":[0,0,110,24],
+"struct_transformer_electrical_data.html#abae77eeb48d1a56cb10302f2b9aea38c":[0,0,110,17],
+"struct_transformer_electrical_data.html#ac954927451779be66154613475143dc9":[0,0,110,11],
+"struct_transformer_electrical_data.html#ad1a62e6b3f896f6a9d794f6b9e02f599":[0,0,110,9],
+"struct_transformer_electrical_data.html#add161341c5cdd9c9ce93c34f9ace2c08":[0,0,110,20],
+"struct_transformer_electrical_data.html#af19976dfba78777187211ab79581396e":[0,0,110,2],
+"struct_transformer_electrical_data.html#af4454c28f422632359573496c40b70e4":[0,0,110,3],
+"struct_transformer_electrical_data.html#afb45c8a86048551b51c399a1b72ff949":[0,0,110,23],
+"wx_g_l_string_8cpp_source.html":[1,0,0,156],
+"wx_g_l_string_8h_source.html":[1,0,0,157]
+};
diff --git a/docs/doxygen/html/navtreeindex2.js b/docs/doxygen/html/navtreeindex2.js
index 188b224..01fc5c6 100644
--- a/docs/doxygen/html/navtreeindex2.js
+++ b/docs/doxygen/html/navtreeindex2.js
@@ -1,5 +1,140 @@
var NAVTREEINDEX2 =
{
+"class_bus_form_base.html#a8731cdb29c22002ed2d63bceaba322a5":[0,0,6,86],
+"class_bus_form_base.html#a8d5b1711fddb03dd93655a6427bdf482":[0,0,6,28],
+"class_bus_form_base.html#a9737e676f0eb420635a0acf49a0f7f2e":[0,0,6,43],
+"class_bus_form_base.html#a97c195c038c7bac1ec32d69c87d7f3b6":[0,0,6,38],
+"class_bus_form_base.html#a9852553d782d38de865ba5c5960983a4":[0,0,6,15],
+"class_bus_form_base.html#aa017dca9dccd43a28236173370b89bb3":[0,0,6,32],
+"class_bus_form_base.html#aa206919e95a050a9c9b2a471e6b5c4c9":[0,0,6,87],
+"class_bus_form_base.html#aa9546384b368a06197565391b6c38315":[0,0,6,49],
+"class_bus_form_base.html#aaac7957c8de855891e7e102562ca722f":[0,0,6,30],
+"class_bus_form_base.html#aac4df99b23e332ed5c950ddbc7247715":[0,0,6,41],
+"class_bus_form_base.html#aad9b945cf9842a88b1e61085963eab7a":[0,0,6,42],
+"class_bus_form_base.html#aae93403e83e2c7f5e2a769a2bffccd83":[0,0,6,40],
+"class_bus_form_base.html#ab29a9e37fdfa9b3c20ce6aad1191ee69":[0,0,6,63],
+"class_bus_form_base.html#ab4d194132dd3d327f33cbe91e324537a":[0,0,6,5],
+"class_bus_form_base.html#ab51f67bf4aa7de715e867203af072a05":[0,0,6,83],
+"class_bus_form_base.html#ab5b4dc715c6d9fde94f9cfa5a984bf11":[0,0,6,50],
+"class_bus_form_base.html#ab73005fe27a337b523a5f272d4b82bea":[0,0,6,20],
+"class_bus_form_base.html#abd3346fc4bdb1cf185138043359e324a":[0,0,6,19],
+"class_bus_form_base.html#abf7d8daf69f4133fc8175a7653b8ff99":[0,0,6,23],
+"class_bus_form_base.html#ac1120978e7aa07573b91813a8ae68a57":[0,0,6,0],
+"class_bus_form_base.html#ac64b7fddaa3ffe0e7671b920495cfa9f":[0,0,6,14],
+"class_bus_form_base.html#aca83346b86e9a3b13447111e109c99e3":[0,0,6,57],
+"class_bus_form_base.html#ace34b60ad7f00f16e1b75994326cab45":[0,0,6,29],
+"class_bus_form_base.html#acf8bd66a3a96a1eed23d011b987a0c3d":[0,0,6,2],
+"class_bus_form_base.html#ad21eac8e9b4bae9eeb6d6b74b0504917":[0,0,6,3],
+"class_bus_form_base.html#ad9c07ce14e481e6d20062ddeb3464675":[0,0,6,51],
+"class_bus_form_base.html#ada95b25afb1d645438a2d19e580c996d":[0,0,6,10],
+"class_bus_form_base.html#adac2978ce17e56e8ad03d2f7da7be343":[0,0,6,48],
+"class_bus_form_base.html#adc4f4cf29badd77f8e648fddeef4ce94":[0,0,6,75],
+"class_bus_form_base.html#ae423bd94fc53bce76329dcb7dafc524e":[0,0,6,31],
+"class_bus_form_base.html#ae452c5575974492125f1568338c8b9ae":[0,0,6,17],
+"class_bus_form_base.html#ae6c7cbbf7aa4fa53647b3a00f1c3fffc":[0,0,6,85],
+"class_bus_form_base.html#ae9d2477b6b6cfbb03af205a96d5c4928":[0,0,6,80],
+"class_bus_form_base.html#aedb47f128db9b468dd2a58ad73df74b1":[0,0,6,56],
+"class_bus_form_base.html#af0c5a0347c1b7fd2a5bdaad95e4574e1":[0,0,6,44],
+"class_bus_form_base.html#af259e49af9eaa04b29b193c73ba2d9de":[0,0,6,58],
+"class_bus_form_base.html#af5b28bc2cd481ebc7a3bb99261727683":[0,0,6,45],
+"class_bus_form_base.html#af5fbe5a2f9281bfaec01d0b6d158a71b":[0,0,6,73],
+"class_bus_form_base.html#af8503eb53503f90af53b8206c16e4629":[0,0,6,79],
+"class_bus_form_base.html#afb24ac3dd51199ac3984469bb7df3fce":[0,0,6,59],
+"class_bus_form_base.html#afb7b2bed6e9d25865022dfd10baadc58":[0,0,6,81],
+"class_bus_form_base.html#afc825c5f3a39d9853d82ae9f88a2b4c4":[0,0,6,4],
+"class_bus_form_base.html#aff5d6c90e212f2ca0fa4856b65dcdb15":[0,0,6,35],
+"class_bus_form_base.html#affaa6a2355ae588b3f6da69b92ba90b0":[0,0,6,34],
+"class_bus_form_base.html#affdfd06744bc4def0c85f658f4682d60":[0,0,6,66],
+"class_camera.html":[0,0,7],
+"class_camera.html#a01f94c3543f56ede7af49dc778f19331":[0,0,7,0],
+"class_camera.html#a0593049968c312454ac880588d6e4195":[0,0,7,7],
+"class_camera.html#a0ef3092f83fe959ac5939c75e910bb3e":[0,0,7,12],
+"class_camera.html#a2b81311bec97f4c7dfdd94c32416da85":[0,0,7,6],
+"class_camera.html#a2df233cd73c2ca8486dfac9a4aff27ef":[0,0,7,14],
+"class_camera.html#a3fb8d75e1dbaee73562a520eb0529d28":[0,0,7,5],
+"class_camera.html#a46434cdf939f99eb9d7b6a6260c6954a":[0,0,7,17],
+"class_camera.html#a464f3fde97dd3cf958a7152af31073f2":[0,0,7,2],
+"class_camera.html#a4ddf44273d5228cea6b4b9a27c08dd6d":[0,0,7,11],
+"class_camera.html#a4e9ee902f6c711187fb04ed7f90d2ef7":[0,0,7,3],
+"class_camera.html#a6e54494ab24eb601949faa55c1d1654f":[0,0,7,8],
+"class_camera.html#a7ea30c697691da07dd983c3395b210a8":[0,0,7,13],
+"class_camera.html#a9831a7fda14d39b2fb1ec6c1141d88fc":[0,0,7,16],
+"class_camera.html#abac6929baae257d9fb55e894371b140b":[0,0,7,10],
+"class_camera.html#ad092fd057fb12a1d73214ecd81f8cde3":[0,0,7,4],
+"class_camera.html#ad1897942d0ccf91052386388a497349f":[0,0,7,1],
+"class_camera.html#aeb4eb52f0f05f5641cd71e4b8505e50a":[0,0,7,18],
+"class_camera.html#aefeb0e4d35db499c1049173f1c0be1c2":[0,0,7,15],
+"class_camera.html#aefeec0ff0adf22ed4e26b0e3f0c7fb38":[0,0,7,9],
+"class_capacitor.html":[0,0,8],
+"class_capacitor.html#a00e808708e16b87c80fc650e5710b84e":[0,0,8,10],
+"class_capacitor.html#a05d5517b64dd8a8888817ca28b72294d":[0,0,8,6],
+"class_capacitor.html#a2c3f0949c2b791c6a0b69866e9aaff7a":[0,0,8,12],
+"class_capacitor.html#a422e353b594ac6e4ef34e1f613f7d580":[0,0,8,7],
+"class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6":[0,0,8,14],
+"class_capacitor.html#a503100032b983414ef469907e4f3fd6a":[0,0,8,8],
+"class_capacitor.html#a581f07c0fa802bbdd0f35a70cc79d3b4":[0,0,8,15],
+"class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a":[0,0,8,11],
+"class_capacitor.html#a94d378c922467214b394931ec0eb01c8":[0,0,8,5],
+"class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5":[0,0,8,4],
+"class_capacitor.html#ab2c5403403c3f8b4ee1ae737ece4e1cc":[0,0,8,13],
+"class_capacitor.html#ab7047062b5e731e86815fe5b61e622da":[0,0,8,1],
+"class_capacitor.html#ac5e08b3cca7884bb5f26a8ffcf8fcccf":[0,0,8,2],
+"class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf":[0,0,8,3],
+"class_capacitor.html#aeba70b8c4a1ed3609481b46c5ace8c6c":[0,0,8,0],
+"class_capacitor.html#aef6926699c93145d4b3c62efd942b269":[0,0,8,9],
+"class_chart_view.html":[0,0,10],
+"class_chart_view.html#a06514137ceea55c0fe387978ea13e214":[0,0,10,20],
+"class_chart_view.html#a0fe6be1c5bf29fd058787f1a47325c1a":[0,0,10,10],
+"class_chart_view.html#a143b7ffc99d2dbcc82ad4cf4b96d5db2":[0,0,10,22],
+"class_chart_view.html#a1e92dd6533c5ebcf6875cb9e517b7b4e":[0,0,10,19],
+"class_chart_view.html#a1fe1991c6239632b4af01186b05e062f":[0,0,10,35],
+"class_chart_view.html#a201c868954eb1c79dda37ffdcc2a0eeb":[0,0,10,36],
+"class_chart_view.html#a231d6a0f6298df0c764f0dcc601e9f9f":[0,0,10,28],
+"class_chart_view.html#a28da38ba24dad74b833b7bc5652358ed":[0,0,10,16],
+"class_chart_view.html#a293128b4b91a4a838a792076f87cde0a":[0,0,10,17],
+"class_chart_view.html#a2b74fcf37a33a8654c3c06008f4e9278":[0,0,10,37],
+"class_chart_view.html#a38699e754304878e9a589f730c027dec":[0,0,10,14],
+"class_chart_view.html#a4957f22dfe582cd2557b005a010cf2d2":[0,0,10,1],
+"class_chart_view.html#a4a2abddb77a734eeb7992ca8434bb358":[0,0,10,7],
+"class_chart_view.html#a4b43a87338084b4d163b1a2f002ff9d7":[0,0,10,15],
+"class_chart_view.html#a5111d9293952ca916aecd5ff7f597950":[0,0,10,21],
+"class_chart_view.html#a5666f8aedecd943ad19d72fc533dcfd9":[0,0,10,6],
+"class_chart_view.html#a597a1cde3693f14427a898b61bdc05a9":[0,0,10,9],
+"class_chart_view.html#a598645b015715cdc22d08d3875a0a5bb":[0,0,10,31],
+"class_chart_view.html#a6034bc00b41785d6003e499778a6a69f":[0,0,10,5],
+"class_chart_view.html#a621ebe0264d241f54cf4b65efe705618":[0,0,10,0],
+"class_chart_view.html#a6aacbc6267d7c01cc5b3f78fc4ba50fe":[0,0,10,40],
+"class_chart_view.html#a6e29b198271efa3c6d5ca9d5ae3ae773":[0,0,10,24],
+"class_chart_view.html#a70200389b94906b89d2454b27ac2469c":[0,0,10,30],
+"class_chart_view.html#a7e069208db024a903a90f72f9057b951":[0,0,10,29],
+"class_chart_view.html#a7f7e1d962ab76be37b89f05e6b97cfc0":[0,0,10,34],
+"class_chart_view.html#a877c14527e957c85037b7705d196733d":[0,0,10,18],
+"class_chart_view.html#a88dfb946342df7c344bd3578d207dcd9":[0,0,10,23],
+"class_chart_view.html#a89e198037f79887a33ce21c949021455":[0,0,10,32],
+"class_chart_view.html#a8a374b2c62da0ef13a7d292482abb845":[0,0,10,12],
+"class_chart_view.html#a8abb35d06074a8370b222fafae8db028":[0,0,10,8],
+"class_chart_view.html#a8f57c26ce982fcf91626e8121b625f70":[0,0,10,13],
+"class_chart_view.html#a91cae14a0b48e5755cb44f05e1d9c0b0":[0,0,10,27],
+"class_chart_view.html#a95e9181dd41eeff08964054746be305b":[0,0,10,26],
+"class_chart_view.html#a9b4099d6352e09be545265a7168860f2":[0,0,10,2],
+"class_chart_view.html#ac72c20e03443d91fca200305fc6bbad1":[0,0,10,4],
+"class_chart_view.html#ad174b0057b89c6dd4b6aed93a467acd1":[0,0,10,33],
+"class_chart_view.html#ad3a0740630473e266d6406a561053ef4":[0,0,10,3],
+"class_chart_view.html#ae6593489cbd815282f77f5a073c34e55":[0,0,10,25],
+"class_chart_view.html#aec5e3605401ad966f03113a60f05fe1c":[0,0,10,38],
+"class_chart_view.html#af9953c97ae04ccb534ee8d8f772330a4":[0,0,10,11],
+"class_chart_view.html#affb3ae7ee1147240f5180926a07425b5":[0,0,10,39],
+"class_chart_view_base.html":[0,0,11],
+"class_chart_view_base.html#a0ab362bd15f37bf94201b6e40d0ba3fa":[0,0,11,15],
+"class_chart_view_base.html#a0d66080c5a61b4a544111cd829cd88b8":[0,0,11,50],
+"class_chart_view_base.html#a237d5355111659d84fa4e61569deeecc":[0,0,11,30],
+"class_chart_view_base.html#a23f74f17c47b4352def0919e9efd3afa":[0,0,11,13],
+"class_chart_view_base.html#a250a4f7292e38ffadf609f07dbbc0323":[0,0,11,27],
+"class_chart_view_base.html#a27408a2fa4cc3c63a7655ddc6bca7412":[0,0,11,8],
+"class_chart_view_base.html#a27f1cf05d785e4f230b3093ab807972c":[0,0,11,26],
+"class_chart_view_base.html#a321240363d83ca86670fb4934f1d67f7":[0,0,11,5],
+"class_chart_view_base.html#a34f689775bc42f1f11a7b84067a98808":[0,0,11,37],
+"class_chart_view_base.html#a407b4fc3b5f891ff37cd8475f0f6ab19":[0,0,11,20],
"class_chart_view_base.html#a4083de6c29b7ab0997217c32e246ee0b":[0,0,11,34],
"class_chart_view_base.html#a43e25960f37484e564f8043b273760cd":[0,0,11,49],
"class_chart_view_base.html#a491fa99972b27860b94e78c6e1745216":[0,0,11,0],
@@ -114,140 +249,5 @@ var NAVTREEINDEX2 =
"class_constant_form_base.html#aa56d043968b6ebdfdafbe30ca6d02569":[0,0,15,11],
"class_constant_form_base.html#ab51a2d238d94e9e437af4eaf7e4d13f6":[0,0,15,1],
"class_constant_form_base.html#acc606e8951953ebde5bbceb507148141":[0,0,15,14],
-"class_constant_form_base.html#ad44906e7590449a0b71adcdc2c231422":[0,0,15,4],
-"class_constant_form_base.html#ad9296d05ec4b36ef59108bf72ddfdaca":[0,0,15,9],
-"class_constant_form_base.html#af77b45b748f679a1895c69578d0a62ce":[0,0,15,8],
-"class_control_editor.html":[0,0,16],
-"class_control_editor.html#a017c89c59e8a7cbd57468b7c9f20e4a1":[0,0,16,10],
-"class_control_editor.html#a059661d8a819d7e42b91653ad3bc7edf":[0,0,16,47],
-"class_control_editor.html#a0dce800f38cea7486f29b4b6b1ce07b4":[0,0,16,11],
-"class_control_editor.html#a1f01fdd06ab4e520a62af5fcab087302":[0,0,16,41],
-"class_control_editor.html#a1f12c0fcc5fe29c9c86a8af58bc78bb6":[0,0,16,20],
-"class_control_editor.html#a1ff32f01ab5c2c3aeaf78ce545805a29":[0,0,16,28],
-"class_control_editor.html#a212828bd1ce2012a6a5dc921f796a16e":[0,0,16,27],
-"class_control_editor.html#a26af0c6457a955453712fb096e49c368":[0,0,16,15],
-"class_control_editor.html#a27220dbc4068ed07d16331af81afb3ab":[0,0,16,1],
-"class_control_editor.html#a2bf5a46f065abe95251e30ea6006eca3":[0,0,16,31],
-"class_control_editor.html#a2f72be0c04ff7c86f227a1ed55c269fc":[0,0,16,30],
-"class_control_editor.html#a308c45508097115b327974543d13f7ac":[0,0,16,13],
-"class_control_editor.html#a369303f887fafe4ab0d7ef519cb52081":[0,0,16,16],
-"class_control_editor.html#a399ce8936bf198d0ade2b4adccac22c5":[0,0,16,6],
-"class_control_editor.html#a58321d531d6c368e00a6ada65d209343":[0,0,16,22],
-"class_control_editor.html#a6507f967ce7383e2c6ca21c1a3d20cf6":[0,0,16,2],
-"class_control_editor.html#a65eac228e45b35ea5e21b81a1633c08e":[0,0,16,17],
-"class_control_editor.html#a71c5da7fb7270b80e3b1e82e14317b46":[0,0,16,34],
-"class_control_editor.html#a76189d7ee879ef58c5b2d57dff2526cb":[0,0,16,48],
-"class_control_editor.html#a7e1f15ddaba866993fab86b70920765d":[0,0,16,38],
-"class_control_editor.html#a80699a8aa1b76917b108797c172cd680":[0,0,16,4],
-"class_control_editor.html#a85b81e5fb2f4c96116c2b3eeaa419552":[0,0,16,44],
-"class_control_editor.html#a8b951cd7445f6da64e85c2f8b524ff0f":[0,0,16,12],
-"class_control_editor.html#a8cc0accd97433980a0cf0da4b7761208":[0,0,16,26],
-"class_control_editor.html#a8f5a23ee9a041562aa1ef2337e117c0d":[0,0,16,18],
-"class_control_editor.html#a90a6ad770299c3ae0603ff138f688de8":[0,0,16,8],
-"class_control_editor.html#a925f1511d80b28c106b090eb4246d784":[0,0,16,25],
-"class_control_editor.html#aa18dfbaac2dd3d98cdf5dee0a324a15e":[0,0,16,21],
-"class_control_editor.html#aa48d04b70be526ffa03575ef60595566":[0,0,16,14],
-"class_control_editor.html#aa6b664ecb8872c1f20203d85436f7e20":[0,0,16,19],
-"class_control_editor.html#aa8582a8efc00e48fe96da0963c1cc18b":[0,0,16,46],
-"class_control_editor.html#ab49ffbb72b94f9fc84b7db61be5a9bca":[0,0,16,39],
-"class_control_editor.html#ab52287561b07d79f6a3c60b841790b91":[0,0,16,23],
-"class_control_editor.html#aba8a6d65786800247603cf40a6c92d47":[0,0,16,29],
-"class_control_editor.html#abc63499d3b4469db86a1f60c3260b8e6":[0,0,16,42],
-"class_control_editor.html#ac3778ec996cc76c4182700889d18440e":[0,0,16,5],
-"class_control_editor.html#ac3c08c1ee2f1d5d06bcc27925d5929bc":[0,0,16,35],
-"class_control_editor.html#ac4cacf9ca99d8027a72a720053b10b61":[0,0,16,9],
-"class_control_editor.html#ac6e551c5fee3258928f282981c289c1c":[0,0,16,36],
-"class_control_editor.html#ace7afe649cfaf3e233374764c7855cbf":[0,0,16,24],
-"class_control_editor.html#ad2f0a10ba40e0f0443919192c38f68ba":[0,0,16,45],
-"class_control_editor.html#ad4fb540024c0f19e09c6b177c40c7653":[0,0,16,49],
-"class_control_editor.html#ad525c39d3c545df03572971e6082b632":[0,0,16,37],
-"class_control_editor.html#ada45fc959e8d3e1078a57d2e48cf5766":[0,0,16,3],
-"class_control_editor.html#adade1f7f85eaf3406536371787aea54d":[0,0,16,32],
-"class_control_editor.html#ae02c4f6a57f265dca61b0d610c133045":[0,0,16,33],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8":[0,0,16,0],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a22dafcbdb1931bb48c86b7bd9d68dc75":[0,0,16,0,8],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a48253406e150aa9937e3550adcd8e21a":[0,0,16,0,2],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a49eb503591225443520212e1cbf82e96":[0,0,16,0,7],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a4f27d3a6e627373c6dab49206d3c5396":[0,0,16,0,0],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a539fa4f367d4a743a91449b5563c69cc":[0,0,16,0,1],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a56c3cfc721af75f0b0f97b3756e98b3c":[0,0,16,0,4],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a8067d7e02113c1a950938cc2c3ae36ee":[0,0,16,0,3],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8ad9848ec4aa8e8d35eca5b0ffe2fa5a8c":[0,0,16,0,5],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8ae6f5f5a536ef36085f4ed1737d04ea4b":[0,0,16,0,6],
-"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8af573caddb989c1933e55550dd547a832":[0,0,16,0,9],
-"class_control_editor.html#ae4b1d8d1b470336cce4183a1bbd5d068":[0,0,16,7],
-"class_control_editor.html#aea00a18800e7da75aecc926a9d0db3be":[0,0,16,43],
-"class_control_editor.html#aede55dc44f1bcc87ffd3e004dcb902be":[0,0,16,40],
-"class_control_editor_base.html":[0,0,17],
-"class_control_editor_base.html#a0cb93fb185a758f8da7419ac5d79aef3":[0,0,17,7],
-"class_control_editor_base.html#a123e5eb632e5fdb92962ab6d8fa6534d":[0,0,17,25],
-"class_control_editor_base.html#a167986f923077001a235f6dd57d25c62":[0,0,17,23],
-"class_control_editor_base.html#a175f41bf34d4b7a355b9e45b58863b3f":[0,0,17,16],
-"class_control_editor_base.html#a1ad8acf35865a65e9da27f72eb40f863":[0,0,17,12],
-"class_control_editor_base.html#a2597f41925fa2d560fd7edaa0f8b544f":[0,0,17,11],
-"class_control_editor_base.html#a322149e110f763fcbed7b58af8b1c605":[0,0,17,24],
-"class_control_editor_base.html#a3430458d81963a8fa14e7380bb1cb7cb":[0,0,17,20],
-"class_control_editor_base.html#a42c08a6003eb3953a7494d3e61290787":[0,0,17,22],
-"class_control_editor_base.html#a54eb878457bf24962a00e0b895f7ca1f":[0,0,17,26],
-"class_control_editor_base.html#a5cad91a2f77417d0a19e2c4585966ce2":[0,0,17,33],
-"class_control_editor_base.html#a6c7f0ed4ebe6afb448e3713afcd39078":[0,0,17,19],
-"class_control_editor_base.html#a7b19542b569c036a6bef179d918dfb5b":[0,0,17,4],
-"class_control_editor_base.html#a8b1a2dfef423479578fdc3eb086f2f4f":[0,0,17,10],
-"class_control_editor_base.html#a9078a25ee05b6eec3e874e4bf375aba7":[0,0,17,17],
-"class_control_editor_base.html#a93f2731c7c21cda28648bd561f4a1d2c":[0,0,17,21],
-"class_control_editor_base.html#a9988f3cd363ab1c4da96b3ccefa164a5":[0,0,17,29],
-"class_control_editor_base.html#aa2b2fe5ea81a3eb8c28ee9064773be93":[0,0,17,2],
-"class_control_editor_base.html#aa99174f98107c89bd6026579ec2f4343":[0,0,17,15],
-"class_control_editor_base.html#aac008c284d2bc841ed52bfaca84ee85a":[0,0,17,18],
-"class_control_editor_base.html#aac385a40c76a8036b07b6a7f08aeb062a5666c9d2fa9c12a8ba29af0534fcd9d5":[0,0,17,0],
-"class_control_editor_base.html#aac385a40c76a8036b07b6a7f08aeb062abdc9b82b5a3ad6189dc3437bc07cc0e3":[0,0,17,1],
-"class_control_editor_base.html#abc78a2b37d5ce3dda133a1a1243e7d0d":[0,0,17,5],
-"class_control_editor_base.html#abeeae17fcf7de0fd5a15377c3db05f34":[0,0,17,9],
-"class_control_editor_base.html#ac16f79d8c489e0d64a0ba2f8635c413a":[0,0,17,31],
-"class_control_editor_base.html#ac358a5750676e8204d1ad7a899195636":[0,0,17,34],
-"class_control_editor_base.html#ac5edc2aea7c9e063f1d36c06442792f4":[0,0,17,8],
-"class_control_editor_base.html#acdc078affdcc3daac68d8b83c630bfaf":[0,0,17,3],
-"class_control_editor_base.html#ad1f69087303790b7eedd86022cac6da4":[0,0,17,30],
-"class_control_editor_base.html#ad639d4afcd7f3b9eac6cd8a9f8a20ce6":[0,0,17,28],
-"class_control_editor_base.html#ae506926ab0a4f91dddb22e0e9fca4900":[0,0,17,27],
-"class_control_editor_base.html#aea5060f214daa10dbd7742f8169f97df":[0,0,17,6],
-"class_control_editor_base.html#af41c63751f51341e35a71ea5048244a4":[0,0,17,14],
-"class_control_editor_base.html#af8715ecc176911865823d2bc777e8501":[0,0,17,13],
-"class_control_editor_base.html#afeb914b18f305b1dedd01aae96c9a4d8":[0,0,17,32],
-"class_control_element.html":[0,0,18],
-"class_control_element.html#a038e940fc33ac3e443502169104d7ebd":[0,0,18,4],
-"class_control_element.html#a375be1f070c19579c27d381be2b09e4b":[0,0,18,8],
-"class_control_element.html#a559fa662c390b9257c2e23fabdfd1801":[0,0,18,9],
-"class_control_element.html#a61440a392d438de163bfe9ffb8e9efec":[0,0,18,12],
-"class_control_element.html#a802885ecd7464b6ae085da276be4d06c":[0,0,18,13],
-"class_control_element.html#a8958776ec4e32bc0b23f90f4ee9ea2e3":[0,0,18,5],
-"class_control_element.html#a899b994168cf0c98695e82a4f3e7c98b":[0,0,18,10],
-"class_control_element.html#a8f817b751c7766f070cee27d094a5499":[0,0,18,7],
-"class_control_element.html#aa03ed482f0f726e8b4724e815b1cdfb1":[0,0,18,0],
-"class_control_element.html#aac3aa20b1c5f9eb7e188298dda34600f":[0,0,18,3],
-"class_control_element.html#ab77716614985cab1c7f098af1603c2f1":[0,0,18,2],
-"class_control_element.html#abcd5f56c2c771a58b0f1ea80eb8c6a86":[0,0,18,16],
-"class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708":[0,0,18,6],
-"class_control_element.html#aeb164b935f9bdb0646b988782e979758":[0,0,18,1],
-"class_control_element.html#aeee4f373f0ebca4589b9ef77fe40c291":[0,0,18,11],
-"class_control_element.html#af1813931d9b51f5def437ba3c31e8aba":[0,0,18,14],
-"class_control_element.html#af669ba711650e3befaad4ed70d2776ab":[0,0,18,15],
-"class_control_element_button.html":[0,0,19],
-"class_control_element_button.html#a018b99c1b086125e7b728c2cc25b5ff5":[0,0,19,4],
-"class_control_element_button.html#a4ad1738a01a24c58cf0b21d8f3195da8":[0,0,19,11],
-"class_control_element_button.html#a4b1d55323d02bca75732b5e32878b1d0":[0,0,19,12],
-"class_control_element_button.html#a679fe222f172d35dc1a7e157a42a7dbf":[0,0,19,1],
-"class_control_element_button.html#a81773f33a05c2b976bef693604a3ca4b":[0,0,19,8],
-"class_control_element_button.html#a831ba4a73c4a8c281edb072f3f68eff8":[0,0,19,14],
-"class_control_element_button.html#a90252ea5c337a0836292a1154fc2fd8d":[0,0,19,15],
-"class_control_element_button.html#aa0d011f5dc84d644c10709116c82d8bf":[0,0,19,13],
-"class_control_element_button.html#ab53fa1072a78f8f2e81548bdb7edde4f":[0,0,19,3],
-"class_control_element_button.html#ab87a13cd01a3ac7222a1df2e5252a2ac":[0,0,19,10],
-"class_control_element_button.html#ac711aa61fe25de7f632a3f2f75fe4fae":[0,0,19,9],
-"class_control_element_button.html#ad45b776fd9046f11fe147e8145474478":[0,0,19,0],
-"class_control_element_button.html#ade13a62ffdb211d3851f653f2b3dd004":[0,0,19,5],
-"class_control_element_button.html#aea4e242359ba70bb26cd29b2bab7d7c8":[0,0,19,7],
-"class_control_element_button.html#aef6c1c0b63d71a9e1a99601946d6e0ff":[0,0,19,2],
-"class_control_element_button.html#af3ea4e284321f86aa12b98ac23ea2026":[0,0,19,16],
-"class_control_element_button.html#afa6effe38a6b8a4070d36dc09dfcd429":[0,0,19,6]
+"class_constant_form_base.html#ad44906e7590449a0b71adcdc2c231422":[0,0,15,4]
};
diff --git a/docs/doxygen/html/navtreeindex3.js b/docs/doxygen/html/navtreeindex3.js
index 134254e..c3dbac0 100644
--- a/docs/doxygen/html/navtreeindex3.js
+++ b/docs/doxygen/html/navtreeindex3.js
@@ -1,5 +1,140 @@
var NAVTREEINDEX3 =
{
+"class_constant_form_base.html#ad9296d05ec4b36ef59108bf72ddfdaca":[0,0,15,9],
+"class_constant_form_base.html#af77b45b748f679a1895c69578d0a62ce":[0,0,15,8],
+"class_control_editor.html":[0,0,16],
+"class_control_editor.html#a017c89c59e8a7cbd57468b7c9f20e4a1":[0,0,16,10],
+"class_control_editor.html#a059661d8a819d7e42b91653ad3bc7edf":[0,0,16,47],
+"class_control_editor.html#a0dce800f38cea7486f29b4b6b1ce07b4":[0,0,16,11],
+"class_control_editor.html#a1f01fdd06ab4e520a62af5fcab087302":[0,0,16,41],
+"class_control_editor.html#a1f12c0fcc5fe29c9c86a8af58bc78bb6":[0,0,16,20],
+"class_control_editor.html#a1ff32f01ab5c2c3aeaf78ce545805a29":[0,0,16,28],
+"class_control_editor.html#a212828bd1ce2012a6a5dc921f796a16e":[0,0,16,27],
+"class_control_editor.html#a26af0c6457a955453712fb096e49c368":[0,0,16,15],
+"class_control_editor.html#a27220dbc4068ed07d16331af81afb3ab":[0,0,16,1],
+"class_control_editor.html#a2bf5a46f065abe95251e30ea6006eca3":[0,0,16,31],
+"class_control_editor.html#a2f72be0c04ff7c86f227a1ed55c269fc":[0,0,16,30],
+"class_control_editor.html#a308c45508097115b327974543d13f7ac":[0,0,16,13],
+"class_control_editor.html#a369303f887fafe4ab0d7ef519cb52081":[0,0,16,16],
+"class_control_editor.html#a399ce8936bf198d0ade2b4adccac22c5":[0,0,16,6],
+"class_control_editor.html#a58321d531d6c368e00a6ada65d209343":[0,0,16,22],
+"class_control_editor.html#a6507f967ce7383e2c6ca21c1a3d20cf6":[0,0,16,2],
+"class_control_editor.html#a65eac228e45b35ea5e21b81a1633c08e":[0,0,16,17],
+"class_control_editor.html#a71c5da7fb7270b80e3b1e82e14317b46":[0,0,16,34],
+"class_control_editor.html#a76189d7ee879ef58c5b2d57dff2526cb":[0,0,16,48],
+"class_control_editor.html#a7e1f15ddaba866993fab86b70920765d":[0,0,16,38],
+"class_control_editor.html#a80699a8aa1b76917b108797c172cd680":[0,0,16,4],
+"class_control_editor.html#a85b81e5fb2f4c96116c2b3eeaa419552":[0,0,16,44],
+"class_control_editor.html#a8b951cd7445f6da64e85c2f8b524ff0f":[0,0,16,12],
+"class_control_editor.html#a8cc0accd97433980a0cf0da4b7761208":[0,0,16,26],
+"class_control_editor.html#a8f5a23ee9a041562aa1ef2337e117c0d":[0,0,16,18],
+"class_control_editor.html#a90a6ad770299c3ae0603ff138f688de8":[0,0,16,8],
+"class_control_editor.html#a925f1511d80b28c106b090eb4246d784":[0,0,16,25],
+"class_control_editor.html#aa18dfbaac2dd3d98cdf5dee0a324a15e":[0,0,16,21],
+"class_control_editor.html#aa48d04b70be526ffa03575ef60595566":[0,0,16,14],
+"class_control_editor.html#aa6b664ecb8872c1f20203d85436f7e20":[0,0,16,19],
+"class_control_editor.html#aa8582a8efc00e48fe96da0963c1cc18b":[0,0,16,46],
+"class_control_editor.html#ab49ffbb72b94f9fc84b7db61be5a9bca":[0,0,16,39],
+"class_control_editor.html#ab52287561b07d79f6a3c60b841790b91":[0,0,16,23],
+"class_control_editor.html#aba8a6d65786800247603cf40a6c92d47":[0,0,16,29],
+"class_control_editor.html#abc63499d3b4469db86a1f60c3260b8e6":[0,0,16,42],
+"class_control_editor.html#ac3778ec996cc76c4182700889d18440e":[0,0,16,5],
+"class_control_editor.html#ac3c08c1ee2f1d5d06bcc27925d5929bc":[0,0,16,35],
+"class_control_editor.html#ac4cacf9ca99d8027a72a720053b10b61":[0,0,16,9],
+"class_control_editor.html#ac6e551c5fee3258928f282981c289c1c":[0,0,16,36],
+"class_control_editor.html#ace7afe649cfaf3e233374764c7855cbf":[0,0,16,24],
+"class_control_editor.html#ad2f0a10ba40e0f0443919192c38f68ba":[0,0,16,45],
+"class_control_editor.html#ad4fb540024c0f19e09c6b177c40c7653":[0,0,16,49],
+"class_control_editor.html#ad525c39d3c545df03572971e6082b632":[0,0,16,37],
+"class_control_editor.html#ada45fc959e8d3e1078a57d2e48cf5766":[0,0,16,3],
+"class_control_editor.html#adade1f7f85eaf3406536371787aea54d":[0,0,16,32],
+"class_control_editor.html#ae02c4f6a57f265dca61b0d610c133045":[0,0,16,33],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8":[0,0,16,0],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a22dafcbdb1931bb48c86b7bd9d68dc75":[0,0,16,0,8],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a48253406e150aa9937e3550adcd8e21a":[0,0,16,0,2],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a49eb503591225443520212e1cbf82e96":[0,0,16,0,7],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a4f27d3a6e627373c6dab49206d3c5396":[0,0,16,0,0],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a539fa4f367d4a743a91449b5563c69cc":[0,0,16,0,1],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a56c3cfc721af75f0b0f97b3756e98b3c":[0,0,16,0,4],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8a8067d7e02113c1a950938cc2c3ae36ee":[0,0,16,0,3],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8ad9848ec4aa8e8d35eca5b0ffe2fa5a8c":[0,0,16,0,5],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8ae6f5f5a536ef36085f4ed1737d04ea4b":[0,0,16,0,6],
+"class_control_editor.html#ae3dacc5ee13ae3f550c91fe6fae628b8af573caddb989c1933e55550dd547a832":[0,0,16,0,9],
+"class_control_editor.html#ae4b1d8d1b470336cce4183a1bbd5d068":[0,0,16,7],
+"class_control_editor.html#aea00a18800e7da75aecc926a9d0db3be":[0,0,16,43],
+"class_control_editor.html#aede55dc44f1bcc87ffd3e004dcb902be":[0,0,16,40],
+"class_control_editor_base.html":[0,0,17],
+"class_control_editor_base.html#a0cb93fb185a758f8da7419ac5d79aef3":[0,0,17,7],
+"class_control_editor_base.html#a123e5eb632e5fdb92962ab6d8fa6534d":[0,0,17,25],
+"class_control_editor_base.html#a167986f923077001a235f6dd57d25c62":[0,0,17,23],
+"class_control_editor_base.html#a175f41bf34d4b7a355b9e45b58863b3f":[0,0,17,16],
+"class_control_editor_base.html#a1ad8acf35865a65e9da27f72eb40f863":[0,0,17,12],
+"class_control_editor_base.html#a2597f41925fa2d560fd7edaa0f8b544f":[0,0,17,11],
+"class_control_editor_base.html#a322149e110f763fcbed7b58af8b1c605":[0,0,17,24],
+"class_control_editor_base.html#a3430458d81963a8fa14e7380bb1cb7cb":[0,0,17,20],
+"class_control_editor_base.html#a42c08a6003eb3953a7494d3e61290787":[0,0,17,22],
+"class_control_editor_base.html#a54eb878457bf24962a00e0b895f7ca1f":[0,0,17,26],
+"class_control_editor_base.html#a5cad91a2f77417d0a19e2c4585966ce2":[0,0,17,33],
+"class_control_editor_base.html#a6c7f0ed4ebe6afb448e3713afcd39078":[0,0,17,19],
+"class_control_editor_base.html#a7b19542b569c036a6bef179d918dfb5b":[0,0,17,4],
+"class_control_editor_base.html#a8b1a2dfef423479578fdc3eb086f2f4f":[0,0,17,10],
+"class_control_editor_base.html#a9078a25ee05b6eec3e874e4bf375aba7":[0,0,17,17],
+"class_control_editor_base.html#a93f2731c7c21cda28648bd561f4a1d2c":[0,0,17,21],
+"class_control_editor_base.html#a9988f3cd363ab1c4da96b3ccefa164a5":[0,0,17,29],
+"class_control_editor_base.html#aa2b2fe5ea81a3eb8c28ee9064773be93":[0,0,17,2],
+"class_control_editor_base.html#aa99174f98107c89bd6026579ec2f4343":[0,0,17,15],
+"class_control_editor_base.html#aac008c284d2bc841ed52bfaca84ee85a":[0,0,17,18],
+"class_control_editor_base.html#aac385a40c76a8036b07b6a7f08aeb062a5666c9d2fa9c12a8ba29af0534fcd9d5":[0,0,17,0],
+"class_control_editor_base.html#aac385a40c76a8036b07b6a7f08aeb062abdc9b82b5a3ad6189dc3437bc07cc0e3":[0,0,17,1],
+"class_control_editor_base.html#abc78a2b37d5ce3dda133a1a1243e7d0d":[0,0,17,5],
+"class_control_editor_base.html#abeeae17fcf7de0fd5a15377c3db05f34":[0,0,17,9],
+"class_control_editor_base.html#ac16f79d8c489e0d64a0ba2f8635c413a":[0,0,17,31],
+"class_control_editor_base.html#ac358a5750676e8204d1ad7a899195636":[0,0,17,34],
+"class_control_editor_base.html#ac5edc2aea7c9e063f1d36c06442792f4":[0,0,17,8],
+"class_control_editor_base.html#acdc078affdcc3daac68d8b83c630bfaf":[0,0,17,3],
+"class_control_editor_base.html#ad1f69087303790b7eedd86022cac6da4":[0,0,17,30],
+"class_control_editor_base.html#ad639d4afcd7f3b9eac6cd8a9f8a20ce6":[0,0,17,28],
+"class_control_editor_base.html#ae506926ab0a4f91dddb22e0e9fca4900":[0,0,17,27],
+"class_control_editor_base.html#aea5060f214daa10dbd7742f8169f97df":[0,0,17,6],
+"class_control_editor_base.html#af41c63751f51341e35a71ea5048244a4":[0,0,17,14],
+"class_control_editor_base.html#af8715ecc176911865823d2bc777e8501":[0,0,17,13],
+"class_control_editor_base.html#afeb914b18f305b1dedd01aae96c9a4d8":[0,0,17,32],
+"class_control_element.html":[0,0,18],
+"class_control_element.html#a038e940fc33ac3e443502169104d7ebd":[0,0,18,4],
+"class_control_element.html#a375be1f070c19579c27d381be2b09e4b":[0,0,18,8],
+"class_control_element.html#a559fa662c390b9257c2e23fabdfd1801":[0,0,18,9],
+"class_control_element.html#a61440a392d438de163bfe9ffb8e9efec":[0,0,18,12],
+"class_control_element.html#a802885ecd7464b6ae085da276be4d06c":[0,0,18,13],
+"class_control_element.html#a8958776ec4e32bc0b23f90f4ee9ea2e3":[0,0,18,5],
+"class_control_element.html#a899b994168cf0c98695e82a4f3e7c98b":[0,0,18,10],
+"class_control_element.html#a8f817b751c7766f070cee27d094a5499":[0,0,18,7],
+"class_control_element.html#aa03ed482f0f726e8b4724e815b1cdfb1":[0,0,18,0],
+"class_control_element.html#aac3aa20b1c5f9eb7e188298dda34600f":[0,0,18,3],
+"class_control_element.html#ab77716614985cab1c7f098af1603c2f1":[0,0,18,2],
+"class_control_element.html#abcd5f56c2c771a58b0f1ea80eb8c6a86":[0,0,18,16],
+"class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708":[0,0,18,6],
+"class_control_element.html#aeb164b935f9bdb0646b988782e979758":[0,0,18,1],
+"class_control_element.html#aeee4f373f0ebca4589b9ef77fe40c291":[0,0,18,11],
+"class_control_element.html#af1813931d9b51f5def437ba3c31e8aba":[0,0,18,14],
+"class_control_element.html#af669ba711650e3befaad4ed70d2776ab":[0,0,18,15],
+"class_control_element_button.html":[0,0,19],
+"class_control_element_button.html#a018b99c1b086125e7b728c2cc25b5ff5":[0,0,19,4],
+"class_control_element_button.html#a4ad1738a01a24c58cf0b21d8f3195da8":[0,0,19,11],
+"class_control_element_button.html#a4b1d55323d02bca75732b5e32878b1d0":[0,0,19,12],
+"class_control_element_button.html#a679fe222f172d35dc1a7e157a42a7dbf":[0,0,19,1],
+"class_control_element_button.html#a81773f33a05c2b976bef693604a3ca4b":[0,0,19,8],
+"class_control_element_button.html#a831ba4a73c4a8c281edb072f3f68eff8":[0,0,19,14],
+"class_control_element_button.html#a90252ea5c337a0836292a1154fc2fd8d":[0,0,19,15],
+"class_control_element_button.html#aa0d011f5dc84d644c10709116c82d8bf":[0,0,19,13],
+"class_control_element_button.html#ab53fa1072a78f8f2e81548bdb7edde4f":[0,0,19,3],
+"class_control_element_button.html#ab87a13cd01a3ac7222a1df2e5252a2ac":[0,0,19,10],
+"class_control_element_button.html#ac711aa61fe25de7f632a3f2f75fe4fae":[0,0,19,9],
+"class_control_element_button.html#ad45b776fd9046f11fe147e8145474478":[0,0,19,0],
+"class_control_element_button.html#ade13a62ffdb211d3851f653f2b3dd004":[0,0,19,5],
+"class_control_element_button.html#aea4e242359ba70bb26cd29b2bab7d7c8":[0,0,19,7],
+"class_control_element_button.html#aef6c1c0b63d71a9e1a99601946d6e0ff":[0,0,19,2],
+"class_control_element_button.html#af3ea4e284321f86aa12b98ac23ea2026":[0,0,19,16],
+"class_control_element_button.html#afa6effe38a6b8a4070d36dc09dfcd429":[0,0,19,6],
"class_control_element_container.html":[0,0,20],
"class_control_element_container.html#a0471ac31855189485313268d0b3a53db":[0,0,20,4],
"class_control_element_container.html#a0bb9367530c05a868d51ca8ad73ad023":[0,0,20,13],
@@ -114,140 +249,5 @@ var NAVTREEINDEX3 =
"class_data_report.html#a42406bbfed5f6582226d527469361c6fab2b6e1490ef7e51c6128eefd8d666021":[0,0,24,0,7],
"class_data_report.html#a42406bbfed5f6582226d527469361c6fae5523daf39a5206d2e7f23245fe1c22a":[0,0,24,0,0],
"class_data_report.html#a4dbeb487be271380b23e860ec072f422":[0,0,24,11],
-"class_data_report.html#a54606d99aae00983756299810bdf0801":[0,0,24,1],
-"class_data_report.html#a65ae7767572792800630dbff4e1c0de7":[0,0,24,15],
-"class_data_report.html#a669136a644ddad8558909c3d96a30a92":[0,0,24,22],
-"class_data_report.html#a67144860d6d8aeaf03da3b2763d01134":[0,0,24,18],
-"class_data_report.html#a6c91b45fa5dcd3b9b4f12416969a5f6d":[0,0,24,4],
-"class_data_report.html#a6d0ac6a4ce3a000004099f933ca84d10":[0,0,24,25],
-"class_data_report.html#a798f52eb95ec670aab01efa337e2cbaa":[0,0,24,26],
-"class_data_report.html#a81b1ac0b4cffd3be147f4200b495035d":[0,0,24,17],
-"class_data_report.html#a978c2c5c3d7a699183a3b65f0662e4ae":[0,0,24,19],
-"class_data_report.html#aacd63ed5b36f20064cc47a2c98240541":[0,0,24,20],
-"class_data_report.html#ab3f06b29024da52ede77391d13ed70ef":[0,0,24,3],
-"class_data_report.html#abc6aae9ace104a0354d23825dd9b5c63":[0,0,24,8],
-"class_data_report.html#ac1e9af69d11e7d2cac0ef308ed18453e":[0,0,24,5],
-"class_data_report.html#ac8859079218e3058ad720ea8c95cc693":[0,0,24,13],
-"class_data_report.html#ad731fd57a87b49904e5124a4d7a4ac8c":[0,0,24,14],
-"class_data_report.html#ade9429ea8946d61811133f5ee19d71c1":[0,0,24,21],
-"class_data_report.html#ae22805620b84389e3fb3b46a913fed60":[0,0,24,6],
-"class_data_report.html#af420c9927f033d520d0af758f8fb2b55":[0,0,24,24],
-"class_data_report_base.html":[0,0,25],
-"class_data_report_base.html#a05f8face44508d1aeaed74bd90aedc5f":[0,0,25,8],
-"class_data_report_base.html#a0e86c0b6571f9f9faf0c984f9e07cfcb":[0,0,25,37],
-"class_data_report_base.html#a0eebacaa633b613bdd649bdbcb422410":[0,0,25,9],
-"class_data_report_base.html#a17b7e28b5cd82ed304267d08e3c9920f":[0,0,25,33],
-"class_data_report_base.html#a1eb8b9a1b5592a217093d68482e6749b":[0,0,25,27],
-"class_data_report_base.html#a35d383e43aa6cca57929da8d7292d2fe":[0,0,25,6],
-"class_data_report_base.html#a3fefcee0754a6fca728462af3e1fb39d":[0,0,25,20],
-"class_data_report_base.html#a4d17d1f30cbd2df6f616af95ec5a9167":[0,0,25,14],
-"class_data_report_base.html#a501768c9af2f296192aa03f1f66c34b3":[0,0,25,30],
-"class_data_report_base.html#a53257937c0aa833fd866c638c8ef91a2":[0,0,25,44],
-"class_data_report_base.html#a56555ee9e6cac86175348d0a4670bfcd":[0,0,25,25],
-"class_data_report_base.html#a59da9a86fc1aefd31959f17072df25db":[0,0,25,38],
-"class_data_report_base.html#a5c5ddcf31cf589e98322f6e027db4a92":[0,0,25,40],
-"class_data_report_base.html#a5e2843bb13d0258a71da822929bd8da9":[0,0,25,10],
-"class_data_report_base.html#a5e91f382af53613cfb0300c2139b63f8":[0,0,25,22],
-"class_data_report_base.html#a60502b5242b655ff40ab06c9bc1e7412":[0,0,25,32],
-"class_data_report_base.html#a61b00ca0503ae498b9f069ba912c7dcd":[0,0,25,15],
-"class_data_report_base.html#a6475523c24ccedd1e0f24d8441157e51":[0,0,25,23],
-"class_data_report_base.html#a65f3d4b84a45a7a150231d4778af2f12":[0,0,25,29],
-"class_data_report_base.html#a6bb9df3992f47c01a9eb7a35b7029dfb":[0,0,25,45],
-"class_data_report_base.html#a7cbb8a6abf561e298207aa9df4c693de":[0,0,25,19],
-"class_data_report_base.html#a81d634255632c7bee811c87231315a71":[0,0,25,26],
-"class_data_report_base.html#a8bc1d7673467f44105675823edead52c":[0,0,25,16],
-"class_data_report_base.html#a8ea052770a22ff2b2703f5b054c7fbfa":[0,0,25,1],
-"class_data_report_base.html#a99a52a84c556ece7ac063c6886fea050":[0,0,25,39],
-"class_data_report_base.html#aad916336d9ce8e14d9e28d3b84b657b0":[0,0,25,11],
-"class_data_report_base.html#aaeb78a77e3dc7fc84539c94b7b5062ac":[0,0,25,17],
-"class_data_report_base.html#aaf57262097ab280f3a4038bc5f189597":[0,0,25,2],
-"class_data_report_base.html#abae4be0c78bc5e3378349377228b2197":[0,0,25,24],
-"class_data_report_base.html#abc8a2b756618d3a885172e056605f1ef":[0,0,25,41],
-"class_data_report_base.html#abcf9302bd7d4b02ec6820626c19c1dec":[0,0,25,43],
-"class_data_report_base.html#ac29ac3c92b4a1cf54b4d0d80576e21b4":[0,0,25,18],
-"class_data_report_base.html#ac81eb9b33dbf722a58ccde2baddc6620":[0,0,25,0],
-"class_data_report_base.html#ac851a5d9a1a5ddb5cd7221a3dc32275d":[0,0,25,4],
-"class_data_report_base.html#ac85f9742c6b150684c00b87aee50e63d":[0,0,25,35],
-"class_data_report_base.html#acddd56e459bf7f0a42335158046e9a70":[0,0,25,34],
-"class_data_report_base.html#acee6b32d5bc31c1307db454a2de69ee5":[0,0,25,5],
-"class_data_report_base.html#ad2cc797e25ef56a3885421f72b32dda8":[0,0,25,21],
-"class_data_report_base.html#ad7ab5d13a86ba6d8beb3a2c39a5c3bdd":[0,0,25,28],
-"class_data_report_base.html#adac5a461ed09a4ac36202a0016707e11":[0,0,25,31],
-"class_data_report_base.html#adc786b8343022dafbaf53d4e431a090d":[0,0,25,13],
-"class_data_report_base.html#adf8b55cd980934b9d5f6582493b688a0":[0,0,25,36],
-"class_data_report_base.html#aee8021cec2e859cca2318801449222ea":[0,0,25,46],
-"class_data_report_base.html#aeffec8eaed4992ba98bb3edd40a684d8":[0,0,25,42],
-"class_data_report_base.html#af14bc6a653ffa84a301d6a2ceb4a9d04":[0,0,25,3],
-"class_data_report_base.html#af7230eab205cf660e465b5a4ed36f41c":[0,0,25,7],
-"class_data_report_base.html#affdc5a9cd95a50e6438becb1d13015ed":[0,0,25,12],
-"class_electric_calculation.html":[0,0,26],
-"class_electric_calculation.html#a044a85b589d5eee879de3348248fc612":[0,0,26,3],
-"class_electric_calculation.html#a06ce7fe37ee6cc2c786573f094493659":[0,0,26,26],
-"class_electric_calculation.html#a0c88feb4f01309795e8a0cf5064a7d90":[0,0,26,28],
-"class_electric_calculation.html#a0eeb4b5afc082617247351857af26c22":[0,0,26,22],
-"class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049":[0,0,26,21],
-"class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7":[0,0,26,1],
-"class_electric_calculation.html#a370884bcb0b406d8c9151ed064620a86":[0,0,26,27],
-"class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e":[0,0,26,17],
-"class_electric_calculation.html#a458ecbb5afd86d9049ed3508256d8fe1":[0,0,26,2],
-"class_electric_calculation.html#a4bf7c82e4e8bc87a4e42ad9b124ea9e5":[0,0,26,23],
-"class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd":[0,0,26,7],
-"class_electric_calculation.html#a55cd49ca9c2771533e6e2f16bb9ec1fc":[0,0,26,20],
-"class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70":[0,0,26,0],
-"class_electric_calculation.html#a689622805bdea60428e6eea19795dff9":[0,0,26,24],
-"class_electric_calculation.html#a6cca6be3c0b79741a49b1631e38fc3be":[0,0,26,31],
-"class_electric_calculation.html#a72386789cd0ff595e937d70e18cad697":[0,0,26,29],
-"class_electric_calculation.html#a7c01b0f6b2f656db999ff4933d86d19d":[0,0,26,5],
-"class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed":[0,0,26,10],
-"class_electric_calculation.html#a8dcbf4f2468a5b55680ba4c17d909102":[0,0,26,30],
-"class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b":[0,0,26,9],
-"class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d":[0,0,26,18],
-"class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4":[0,0,26,12],
-"class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24":[0,0,26,6],
-"class_electric_calculation.html#ad7bfee2d7cba726ff6aa7605a969d49a":[0,0,26,25],
-"class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840":[0,0,26,15],
-"class_electric_calculation.html#ade330c7267088dcbdd7c8e7f8c302da3":[0,0,26,14],
-"class_electric_calculation.html#ae721d26e05b66887bfb7125f76ec9e9c":[0,0,26,13],
-"class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e":[0,0,26,16],
-"class_electric_calculation.html#aed4e5f37f8a06d0ad305334d2847cd7f":[0,0,26,4],
-"class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c":[0,0,26,19],
-"class_electric_calculation.html#af8eff271de83898c536deda1aab22d48":[0,0,26,11],
-"class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92":[0,0,26,8],
-"class_electromechanical.html":[0,0,27],
-"class_electromechanical.html#a000d1cd6ac54aa864c9de3ee9015a17a":[0,0,27,21],
-"class_electromechanical.html#a001abfe3809e6425f7f0bd67adaf28f4":[0,0,27,1],
-"class_electromechanical.html#a03939bf250c99309cdf90c3bda4911d4":[0,0,27,23],
-"class_electromechanical.html#a1070faed7544316f653e1a09fcccf475":[0,0,27,36],
-"class_electromechanical.html#a10b7ceb1a8066461c5369d210cff48d5":[0,0,27,6],
-"class_electromechanical.html#a110cd09af0070718c95d5300adcf754f":[0,0,27,35],
-"class_electromechanical.html#a159776bb812bc74d94c8abe5bb8b3e10":[0,0,27,39],
-"class_electromechanical.html#a18e698b73396100928175811236eebf4":[0,0,27,32],
-"class_electromechanical.html#a1e7fff4570b7a983f79a22aafed2112d":[0,0,27,29],
-"class_electromechanical.html#a23d720e7a18a781b808cc7ca0f130ceb":[0,0,27,43],
-"class_electromechanical.html#a28873d1ce6c1bbee57a07dabc5053423":[0,0,27,44],
-"class_electromechanical.html#a30ecddf5249f545e73b2aaaf19cbec50":[0,0,27,0],
-"class_electromechanical.html#a3e7a7dfe02d9277957552f5a46f96dd1":[0,0,27,37],
-"class_electromechanical.html#a488985a77171f915145ecc5d891db04f":[0,0,27,2],
-"class_electromechanical.html#a4ccf60ce21c83ff757e1a7de99a00704":[0,0,27,13],
-"class_electromechanical.html#a4e3c1766ff06883a681f39d536a41136":[0,0,27,3],
-"class_electromechanical.html#a4eacb39ac3ab6b4fd3e0cf963f030ce2":[0,0,27,40],
-"class_electromechanical.html#a4fe6bcd83ae05c0cf6827eed9d0eb029":[0,0,27,28],
-"class_electromechanical.html#a6192a9b4152353c983b623048b1da460":[0,0,27,10],
-"class_electromechanical.html#a69b4bec62476de94bf823714972edd68":[0,0,27,20],
-"class_electromechanical.html#a6c016a1470a0d910e4522b6027f3b95c":[0,0,27,31],
-"class_electromechanical.html#a790c142f8d9db534c7e368711e84f61e":[0,0,27,14],
-"class_electromechanical.html#a7972213c6043ca7c890b9f15d3e4162f":[0,0,27,8],
-"class_electromechanical.html#a7cce38fb26c4e1e6a70bd605285848e8":[0,0,27,19],
-"class_electromechanical.html#a827e9862cf10ebdc65c50f7542b67020":[0,0,27,34],
-"class_electromechanical.html#a82b5c5c2aeefd49706199d0ba140d300":[0,0,27,5],
-"class_electromechanical.html#a8668c1b2881d2f2a173d15c46c8efb9d":[0,0,27,18],
-"class_electromechanical.html#a8fc1d8f7b697f8383681e3d3e7d66c72":[0,0,27,12],
-"class_electromechanical.html#a9b076237d26ff011552ed624a5d9bbe2":[0,0,27,7],
-"class_electromechanical.html#a9d030ba42b2f8f2ba129797c061d71cb":[0,0,27,15],
-"class_electromechanical.html#aa00d6b356a74649a12fbdd06d44b1d28":[0,0,27,33],
-"class_electromechanical.html#aad655c165bc53cce5d5fdd8ae9339ba2":[0,0,27,9],
-"class_electromechanical.html#ab0d7d031ccc501d5101fabc7b48eb70e":[0,0,27,11],
-"class_electromechanical.html#abedf14a8b4d2c9914c972d9bdf3463c6":[0,0,27,24],
-"class_electromechanical.html#ac0dfbab6529f02705d1c66bda5cac704":[0,0,27,41],
-"class_electromechanical.html#ac1d6b85d886abd344d8b12d6d8665f1f":[0,0,27,22]
+"class_data_report.html#a54606d99aae00983756299810bdf0801":[0,0,24,1]
};
diff --git a/docs/doxygen/html/navtreeindex4.js b/docs/doxygen/html/navtreeindex4.js
index 09640ed..2e9fc0f 100644
--- a/docs/doxygen/html/navtreeindex4.js
+++ b/docs/doxygen/html/navtreeindex4.js
@@ -1,17 +1,158 @@
var NAVTREEINDEX4 =
{
-"class_electromechanical.html#ac51fdb6f0ae13514b6986f99a782532a":[0,0,27,45],
-"class_electromechanical.html#ac627a99f958656bb2385fef5f7101018":[0,0,27,38],
-"class_electromechanical.html#aceaa86ce0dfc1842420568db7037fb12":[0,0,27,42],
-"class_electromechanical.html#ad78da79b4af8651eae3e4d8800f57d2b":[0,0,27,47],
-"class_electromechanical.html#ad963e529cd06cf42a9eef98dbbf04edb":[0,0,27,27],
-"class_electromechanical.html#adb77fe8bf93882f3cd039c126ab79f7d":[0,0,27,25],
-"class_electromechanical.html#ade07879f964c541bbf92970d1fcd090a":[0,0,27,26],
-"class_electromechanical.html#ae359ee1a06f1bcefbf03e3d0f4f7d10a":[0,0,27,30],
-"class_electromechanical.html#ae5f5162b53e8969fd933af2ef80d1b67":[0,0,27,16],
-"class_electromechanical.html#ae8bf375c5f8bf38a66e57eee3b7e46ca":[0,0,27,46],
+"class_data_report.html#a65ae7767572792800630dbff4e1c0de7":[0,0,24,15],
+"class_data_report.html#a669136a644ddad8558909c3d96a30a92":[0,0,24,22],
+"class_data_report.html#a67144860d6d8aeaf03da3b2763d01134":[0,0,24,18],
+"class_data_report.html#a6c91b45fa5dcd3b9b4f12416969a5f6d":[0,0,24,4],
+"class_data_report.html#a6d0ac6a4ce3a000004099f933ca84d10":[0,0,24,25],
+"class_data_report.html#a798f52eb95ec670aab01efa337e2cbaa":[0,0,24,26],
+"class_data_report.html#a81b1ac0b4cffd3be147f4200b495035d":[0,0,24,17],
+"class_data_report.html#a978c2c5c3d7a699183a3b65f0662e4ae":[0,0,24,19],
+"class_data_report.html#aacd63ed5b36f20064cc47a2c98240541":[0,0,24,20],
+"class_data_report.html#ab3f06b29024da52ede77391d13ed70ef":[0,0,24,3],
+"class_data_report.html#abc6aae9ace104a0354d23825dd9b5c63":[0,0,24,8],
+"class_data_report.html#ac1e9af69d11e7d2cac0ef308ed18453e":[0,0,24,5],
+"class_data_report.html#ac8859079218e3058ad720ea8c95cc693":[0,0,24,13],
+"class_data_report.html#ad731fd57a87b49904e5124a4d7a4ac8c":[0,0,24,14],
+"class_data_report.html#ade9429ea8946d61811133f5ee19d71c1":[0,0,24,21],
+"class_data_report.html#ae22805620b84389e3fb3b46a913fed60":[0,0,24,6],
+"class_data_report.html#af420c9927f033d520d0af758f8fb2b55":[0,0,24,24],
+"class_data_report_base.html":[0,0,25],
+"class_data_report_base.html#a05f8face44508d1aeaed74bd90aedc5f":[0,0,25,8],
+"class_data_report_base.html#a0e86c0b6571f9f9faf0c984f9e07cfcb":[0,0,25,37],
+"class_data_report_base.html#a0eebacaa633b613bdd649bdbcb422410":[0,0,25,9],
+"class_data_report_base.html#a17b7e28b5cd82ed304267d08e3c9920f":[0,0,25,33],
+"class_data_report_base.html#a1eb8b9a1b5592a217093d68482e6749b":[0,0,25,27],
+"class_data_report_base.html#a35d383e43aa6cca57929da8d7292d2fe":[0,0,25,6],
+"class_data_report_base.html#a3fefcee0754a6fca728462af3e1fb39d":[0,0,25,20],
+"class_data_report_base.html#a4d17d1f30cbd2df6f616af95ec5a9167":[0,0,25,14],
+"class_data_report_base.html#a501768c9af2f296192aa03f1f66c34b3":[0,0,25,30],
+"class_data_report_base.html#a53257937c0aa833fd866c638c8ef91a2":[0,0,25,44],
+"class_data_report_base.html#a56555ee9e6cac86175348d0a4670bfcd":[0,0,25,25],
+"class_data_report_base.html#a59da9a86fc1aefd31959f17072df25db":[0,0,25,38],
+"class_data_report_base.html#a5c5ddcf31cf589e98322f6e027db4a92":[0,0,25,40],
+"class_data_report_base.html#a5e2843bb13d0258a71da822929bd8da9":[0,0,25,10],
+"class_data_report_base.html#a5e91f382af53613cfb0300c2139b63f8":[0,0,25,22],
+"class_data_report_base.html#a60502b5242b655ff40ab06c9bc1e7412":[0,0,25,32],
+"class_data_report_base.html#a61b00ca0503ae498b9f069ba912c7dcd":[0,0,25,15],
+"class_data_report_base.html#a6475523c24ccedd1e0f24d8441157e51":[0,0,25,23],
+"class_data_report_base.html#a65f3d4b84a45a7a150231d4778af2f12":[0,0,25,29],
+"class_data_report_base.html#a6bb9df3992f47c01a9eb7a35b7029dfb":[0,0,25,45],
+"class_data_report_base.html#a7cbb8a6abf561e298207aa9df4c693de":[0,0,25,19],
+"class_data_report_base.html#a81d634255632c7bee811c87231315a71":[0,0,25,26],
+"class_data_report_base.html#a8bc1d7673467f44105675823edead52c":[0,0,25,16],
+"class_data_report_base.html#a8ea052770a22ff2b2703f5b054c7fbfa":[0,0,25,1],
+"class_data_report_base.html#a99a52a84c556ece7ac063c6886fea050":[0,0,25,39],
+"class_data_report_base.html#aad916336d9ce8e14d9e28d3b84b657b0":[0,0,25,11],
+"class_data_report_base.html#aaeb78a77e3dc7fc84539c94b7b5062ac":[0,0,25,17],
+"class_data_report_base.html#aaf57262097ab280f3a4038bc5f189597":[0,0,25,2],
+"class_data_report_base.html#abae4be0c78bc5e3378349377228b2197":[0,0,25,24],
+"class_data_report_base.html#abc8a2b756618d3a885172e056605f1ef":[0,0,25,41],
+"class_data_report_base.html#abcf9302bd7d4b02ec6820626c19c1dec":[0,0,25,43],
+"class_data_report_base.html#ac29ac3c92b4a1cf54b4d0d80576e21b4":[0,0,25,18],
+"class_data_report_base.html#ac81eb9b33dbf722a58ccde2baddc6620":[0,0,25,0],
+"class_data_report_base.html#ac851a5d9a1a5ddb5cd7221a3dc32275d":[0,0,25,4],
+"class_data_report_base.html#ac85f9742c6b150684c00b87aee50e63d":[0,0,25,35],
+"class_data_report_base.html#acddd56e459bf7f0a42335158046e9a70":[0,0,25,34],
+"class_data_report_base.html#acee6b32d5bc31c1307db454a2de69ee5":[0,0,25,5],
+"class_data_report_base.html#ad2cc797e25ef56a3885421f72b32dda8":[0,0,25,21],
+"class_data_report_base.html#ad7ab5d13a86ba6d8beb3a2c39a5c3bdd":[0,0,25,28],
+"class_data_report_base.html#adac5a461ed09a4ac36202a0016707e11":[0,0,25,31],
+"class_data_report_base.html#adc786b8343022dafbaf53d4e431a090d":[0,0,25,13],
+"class_data_report_base.html#adf8b55cd980934b9d5f6582493b688a0":[0,0,25,36],
+"class_data_report_base.html#aee8021cec2e859cca2318801449222ea":[0,0,25,46],
+"class_data_report_base.html#aeffec8eaed4992ba98bb3edd40a684d8":[0,0,25,42],
+"class_data_report_base.html#af14bc6a653ffa84a301d6a2ceb4a9d04":[0,0,25,3],
+"class_data_report_base.html#af7230eab205cf660e465b5a4ed36f41c":[0,0,25,7],
+"class_data_report_base.html#affdc5a9cd95a50e6438becb1d13015ed":[0,0,25,12],
+"class_electric_calculation.html":[0,0,26],
+"class_electric_calculation.html#a044a85b589d5eee879de3348248fc612":[0,0,26,3],
+"class_electric_calculation.html#a06ce7fe37ee6cc2c786573f094493659":[0,0,26,26],
+"class_electric_calculation.html#a0c88feb4f01309795e8a0cf5064a7d90":[0,0,26,28],
+"class_electric_calculation.html#a0eeb4b5afc082617247351857af26c22":[0,0,26,22],
+"class_electric_calculation.html#a1d417da6eeb8c12f7be6501fff6f7049":[0,0,26,21],
+"class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7":[0,0,26,1],
+"class_electric_calculation.html#a370884bcb0b406d8c9151ed064620a86":[0,0,26,27],
+"class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e":[0,0,26,17],
+"class_electric_calculation.html#a458ecbb5afd86d9049ed3508256d8fe1":[0,0,26,2],
+"class_electric_calculation.html#a4bf7c82e4e8bc87a4e42ad9b124ea9e5":[0,0,26,23],
+"class_electric_calculation.html#a4ddabc6210146ae1ccae5f6911095bfd":[0,0,26,7],
+"class_electric_calculation.html#a55cd49ca9c2771533e6e2f16bb9ec1fc":[0,0,26,20],
+"class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70":[0,0,26,0],
+"class_electric_calculation.html#a689622805bdea60428e6eea19795dff9":[0,0,26,24],
+"class_electric_calculation.html#a6cca6be3c0b79741a49b1631e38fc3be":[0,0,26,31],
+"class_electric_calculation.html#a72386789cd0ff595e937d70e18cad697":[0,0,26,29],
+"class_electric_calculation.html#a7c01b0f6b2f656db999ff4933d86d19d":[0,0,26,5],
+"class_electric_calculation.html#a8709a452d684d4224d32591c281ae0ed":[0,0,26,10],
+"class_electric_calculation.html#a8dcbf4f2468a5b55680ba4c17d909102":[0,0,26,30],
+"class_electric_calculation.html#a906ce639a5d6c5d7946fe8824f1b4f1b":[0,0,26,9],
+"class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d":[0,0,26,18],
+"class_electric_calculation.html#aa5e278a1c5ba1b6159c21ae2ff2b23b4":[0,0,26,12],
+"class_electric_calculation.html#aca3381e8f6663394e4d257a54e4e2a24":[0,0,26,6],
+"class_electric_calculation.html#ad7bfee2d7cba726ff6aa7605a969d49a":[0,0,26,25],
+"class_electric_calculation.html#ad8719b10c3c4b85b316d3daa71064840":[0,0,26,15],
+"class_electric_calculation.html#ade330c7267088dcbdd7c8e7f8c302da3":[0,0,26,14],
+"class_electric_calculation.html#ae721d26e05b66887bfb7125f76ec9e9c":[0,0,26,13],
+"class_electric_calculation.html#ae9b5e9b51615141e88de0a0f99a7741e":[0,0,26,16],
+"class_electric_calculation.html#aed4e5f37f8a06d0ad305334d2847cd7f":[0,0,26,4],
+"class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c":[0,0,26,19],
+"class_electric_calculation.html#af8eff271de83898c536deda1aab22d48":[0,0,26,11],
+"class_electric_calculation.html#aff1a62936d87e61764b13f3b0212cf92":[0,0,26,8],
+"class_electromechanical.html":[0,0,27],
+"class_electromechanical.html#a000d1cd6ac54aa864c9de3ee9015a17a":[0,0,27,22],
+"class_electromechanical.html#a001abfe3809e6425f7f0bd67adaf28f4":[0,0,27,1],
+"class_electromechanical.html#a03939bf250c99309cdf90c3bda4911d4":[0,0,27,24],
+"class_electromechanical.html#a1070faed7544316f653e1a09fcccf475":[0,0,27,42],
+"class_electromechanical.html#a110cd09af0070718c95d5300adcf754f":[0,0,27,41],
+"class_electromechanical.html#a159776bb812bc74d94c8abe5bb8b3e10":[0,0,27,45],
+"class_electromechanical.html#a18e698b73396100928175811236eebf4":[0,0,27,33],
+"class_electromechanical.html#a1e7fff4570b7a983f79a22aafed2112d":[0,0,27,30],
+"class_electromechanical.html#a237471acf9a372a9b1cd1481803571d5":[0,0,27,40],
+"class_electromechanical.html#a23d720e7a18a781b808cc7ca0f130ceb":[0,0,27,49],
+"class_electromechanical.html#a28873d1ce6c1bbee57a07dabc5053423":[0,0,27,50],
+"class_electromechanical.html#a30ecddf5249f545e73b2aaaf19cbec50":[0,0,27,0],
+"class_electromechanical.html#a3a7d7043e936b7649a741cf9d39e01b9":[0,0,27,36],
+"class_electromechanical.html#a3e7a7dfe02d9277957552f5a46f96dd1":[0,0,27,43],
+"class_electromechanical.html#a4029ebc888d91ec49b9bdf9f7cdf2631":[0,0,27,35],
+"class_electromechanical.html#a488985a77171f915145ecc5d891db04f":[0,0,27,2],
+"class_electromechanical.html#a4c82ed8fc748149bb116ee532e6ee978":[0,0,27,37],
+"class_electromechanical.html#a4ccf60ce21c83ff757e1a7de99a00704":[0,0,27,14],
+"class_electromechanical.html#a4eacb39ac3ab6b4fd3e0cf963f030ce2":[0,0,27,46],
+"class_electromechanical.html#a4fe6bcd83ae05c0cf6827eed9d0eb029":[0,0,27,29],
+"class_electromechanical.html#a6192a9b4152353c983b623048b1da460":[0,0,27,10],
+"class_electromechanical.html#a69b4bec62476de94bf823714972edd68":[0,0,27,21],
+"class_electromechanical.html#a6c016a1470a0d910e4522b6027f3b95c":[0,0,27,32],
+"class_electromechanical.html#a790c142f8d9db534c7e368711e84f61e":[0,0,27,15],
+"class_electromechanical.html#a7972213c6043ca7c890b9f15d3e4162f":[0,0,27,9],
+"class_electromechanical.html#a7cce38fb26c4e1e6a70bd605285848e8":[0,0,27,20],
+"class_electromechanical.html#a827e9862cf10ebdc65c50f7542b67020":[0,0,27,38],
+"class_electromechanical.html#a8668c1b2881d2f2a173d15c46c8efb9d":[0,0,27,19],
+"class_electromechanical.html#a8ca8ab15ead93ee615277698bf0b3867":[0,0,27,6],
+"class_electromechanical.html#a8fc1d8f7b697f8383681e3d3e7d66c72":[0,0,27,13],
+"class_electromechanical.html#a900832be747b8b3e41e901235012bf87":[0,0,27,7],
+"class_electromechanical.html#a9b076237d26ff011552ed624a5d9bbe2":[0,0,27,8],
+"class_electromechanical.html#a9d030ba42b2f8f2ba129797c061d71cb":[0,0,27,16],
+"class_electromechanical.html#aa00d6b356a74649a12fbdd06d44b1d28":[0,0,27,34],
+"class_electromechanical.html#aa191e34b2a6cbfd0d89c78da14f1d7f7":[0,0,27,11],
+"class_electromechanical.html#aa59f55e739c674f4ede073eadbb79ac0":[0,0,27,3],
+"class_electromechanical.html#ab0d7d031ccc501d5101fabc7b48eb70e":[0,0,27,12],
+"class_electromechanical.html#abedf14a8b4d2c9914c972d9bdf3463c6":[0,0,27,25],
+"class_electromechanical.html#ac0dfbab6529f02705d1c66bda5cac704":[0,0,27,47],
+"class_electromechanical.html#ac185e65f3073319fc4ac4ec11c328337":[0,0,27,5],
+"class_electromechanical.html#ac1d6b85d886abd344d8b12d6d8665f1f":[0,0,27,23],
+"class_electromechanical.html#ac51fdb6f0ae13514b6986f99a782532a":[0,0,27,51],
+"class_electromechanical.html#ac627a99f958656bb2385fef5f7101018":[0,0,27,44],
+"class_electromechanical.html#ac684393f47d36a6038d562e92df56ab6":[0,0,27,39],
+"class_electromechanical.html#aceaa86ce0dfc1842420568db7037fb12":[0,0,27,48],
+"class_electromechanical.html#ad78da79b4af8651eae3e4d8800f57d2b":[0,0,27,53],
+"class_electromechanical.html#ad963e529cd06cf42a9eef98dbbf04edb":[0,0,27,28],
+"class_electromechanical.html#adb77fe8bf93882f3cd039c126ab79f7d":[0,0,27,26],
+"class_electromechanical.html#ade07879f964c541bbf92970d1fcd090a":[0,0,27,27],
+"class_electromechanical.html#ae359ee1a06f1bcefbf03e3d0f4f7d10a":[0,0,27,31],
+"class_electromechanical.html#ae5f5162b53e8969fd933af2ef80d1b67":[0,0,27,17],
+"class_electromechanical.html#ae8bf375c5f8bf38a66e57eee3b7e46ca":[0,0,27,52],
"class_electromechanical.html#af02c1382b8a7d3085831d3a1e89526f6":[0,0,27,4],
-"class_electromechanical.html#affca5cc58794d76c6f195f74406d2214":[0,0,27,17],
+"class_electromechanical.html#affca5cc58794d76c6f195f74406d2214":[0,0,27,18],
"class_element.html":[0,0,28],
"class_element.html#a01563b5b2fed2860132f4dd1593f9eea":[0,0,28,51],
"class_element.html#a038dfd8452fe48ab04bc4e47820c148e":[0,0,28,32],
@@ -108,146 +249,5 @@ var NAVTREEINDEX4 =
"class_element.html#aff2870f5979a84a30c27917cb33271f9":[0,0,28,26],
"class_element_data_object.html":[0,0,29],
"class_element_data_object.html#a03443d03ab000804032c59031f09e99a":[0,0,29,2],
-"class_element_data_object.html#a062f11db713de77f36e98a3d79e25aad":[0,0,29,3],
-"class_element_data_object.html#a19995ba1b03a9566352e5bdf44d1370b":[0,0,29,6],
-"class_element_data_object.html#a19dc80f27c83408b72c9c87ce15ac228":[0,0,29,4],
-"class_element_data_object.html#a3da83a9dbd280969d26bee208e2566ac":[0,0,29,7],
-"class_element_data_object.html#a470f40ac636d52bea0325192b44424a9":[0,0,29,1],
-"class_element_data_object.html#a732347b84c15fdca2f10639c8a8345e4":[0,0,29,5],
-"class_element_data_object.html#afd2fde28c57246b673322b8b630ff1e0":[0,0,29,0],
-"class_element_plot_data.html":[0,0,30],
-"class_element_plot_data.html#a245c2baf5822b5350ab4b42cb3c8c4d4":[0,0,30,7],
-"class_element_plot_data.html#a24f2d0ec6e24db875913154cea9b6495":[0,0,30,15],
-"class_element_plot_data.html#a26d9efeccd36ac4d3b77e9ccd7b07acb":[0,0,30,16],
-"class_element_plot_data.html#a2a73f2f0bebe16f8ee0ebe21ac76a917":[0,0,30,4],
-"class_element_plot_data.html#a3262fabe578847d44e7822cc697111b4":[0,0,30,17],
-"class_element_plot_data.html#a383fedeea054f6115c999ffc93a0eb35":[0,0,30,23],
-"class_element_plot_data.html#a3f2b3675a82f456df02efab7c69e4ec3":[0,0,30,1],
-"class_element_plot_data.html#a522fea0dfaca21e17948a03a3bd3cc1e":[0,0,30,9],
-"class_element_plot_data.html#a52621408fd886256e3f93970920bc840":[0,0,30,22],
-"class_element_plot_data.html#a5618ae04d96b16e90cc54b97304e2d5c":[0,0,30,25],
-"class_element_plot_data.html#a56e431bfc0e1074ce3b1ffd36a066271":[0,0,30,11],
-"class_element_plot_data.html#a7157de114641e494358a21d0fd061e1a":[0,0,30,20],
-"class_element_plot_data.html#a78e53dfd0407e5a006a1a46d0a0e7cfc":[0,0,30,12],
-"class_element_plot_data.html#a7b7a5834b0cad53e84c9bd6cf86aa6ea":[0,0,30,18],
-"class_element_plot_data.html#a8fa649bde6d4166329aa9d8c0d2eb39e":[0,0,30,14],
-"class_element_plot_data.html#a9b103e1e9483b550200d87991d618615":[0,0,30,5],
-"class_element_plot_data.html#aa0889ca6cb11f4f5b391d0dea9f97e8f":[0,0,30,21],
-"class_element_plot_data.html#aa13b4ada1ce748bb6b622fa2f7da97b8":[0,0,30,24],
-"class_element_plot_data.html#aa1bc5d5a782caf9c7f7a55db4387da26":[0,0,30,19],
-"class_element_plot_data.html#aa52cd4374e4b1a3fd27010481d898982":[0,0,30,13],
-"class_element_plot_data.html#aaaad30139bbd8a1b0e714bb7d1d8a85d":[0,0,30,26],
-"class_element_plot_data.html#aadcb36aed66c077a44e321dd39e40192":[0,0,30,8],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6":[0,0,30,0],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a195e99d96b8ceb74b935610c8613ead8":[0,0,30,0,10],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a3ff875a4cab8537f81c71991cb130916":[0,0,30,0,11],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a40c3284dc7fe0008a9150b06c9971c21":[0,0,30,0,2],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a61df757e093501b573e4da76a652fa22":[0,0,30,0,1],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a64e18a4c6fab57ebacf178826a6b19f7":[0,0,30,0,3],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a75f81e37494ce492bff49fa4677dcddf":[0,0,30,0,0],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a97d4ddc3864572ad7ed8304b287aab61":[0,0,30,0,4],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aac77aeb1a647c940d4e1e17a477126d0":[0,0,30,0,6],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aadd1fc1983995b983485223be3b14916":[0,0,30,0,8],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6ad0415dca75f4048c1a66d736e0ed4d4e":[0,0,30,0,7],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aed23fc5b7a7f072cb7d2c3e440a6531c":[0,0,30,0,5],
-"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6af2e7b8e623153ce32d4a34ea80b6c7d2":[0,0,30,0,9],
-"class_element_plot_data.html#acedb6f0b5c545e1bd9c12370adb1ffc7":[0,0,30,6],
-"class_element_plot_data.html#aeb26f918104c765ceaa29947008c349e":[0,0,30,2],
-"class_element_plot_data.html#af1ee05ddb475ff46af376fe212148c01":[0,0,30,3],
-"class_element_plot_data.html#af71ccdc0beaf0acc8da959bab83ad9ed":[0,0,30,10],
-"class_exponential.html":[0,0,32],
-"class_exponential.html#a0714869ee8815119a6d76431bac767ea":[0,0,32,7],
-"class_exponential.html#a0ebfd386bebb9a1f9d41a3eca0daed3b":[0,0,32,8],
-"class_exponential.html#a0fcb1dfec0c927a22abab7135f6c3a00":[0,0,32,13],
-"class_exponential.html#a38559206dd99fae84d4ed4dd7996dd8f":[0,0,32,11],
-"class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e":[0,0,32,6],
-"class_exponential.html#a568f1cb2a910d054b67ffbef74c8c196":[0,0,32,12],
-"class_exponential.html#a7961aca3918368d3778aa5866a14cbec":[0,0,32,5],
-"class_exponential.html#a79eabfca357002f160b082a6df9f6f2b":[0,0,32,2],
-"class_exponential.html#a851717c2bb412dfddea8a96ad7344ef0":[0,0,32,0],
-"class_exponential.html#a85cda0dba6549828a9045e478e24609f":[0,0,32,4],
-"class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d":[0,0,32,9],
-"class_exponential.html#adf997c8c44ac0a3e0d76ba9e32ebb5ec":[0,0,32,1],
-"class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f":[0,0,32,10],
-"class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339":[0,0,32,3],
-"class_exponential_form.html":[0,0,33],
-"class_exponential_form.html#a04ab824bc029df387aa38ca8b379206f":[0,0,33,5],
-"class_exponential_form.html#a3c0b865be48a390d39b42a552afdd711":[0,0,33,1],
-"class_exponential_form.html#a4c3cd70d6128d58f330a0f992a91da1a":[0,0,33,0],
-"class_exponential_form.html#a8d3175dc7543f5612dcb04acf5e8fa0c":[0,0,33,3],
-"class_exponential_form.html#ac4f9664d3e884b5ff8f18fddea362b63":[0,0,33,6],
-"class_exponential_form.html#ae59514a694933a77cd7d7a1a9096b713":[0,0,33,4],
-"class_exponential_form.html#af741be36de488170a80c88df01e17667":[0,0,33,2],
-"class_exponential_form_base.html":[0,0,34],
-"class_exponential_form_base.html#a01c6236bffb9620ff2ef2a0afcbc7408":[0,0,34,0],
-"class_exponential_form_base.html#a13c869c29285c1e04def44db6aa4e364":[0,0,34,21],
-"class_exponential_form_base.html#a2973b411828496b3c07bcc465f11cfb1":[0,0,34,11],
-"class_exponential_form_base.html#a2b4013cf5e588a510eee19de6a63812d":[0,0,34,6],
-"class_exponential_form_base.html#a44197d79b2c8138b56820eeb5407876b":[0,0,34,17],
-"class_exponential_form_base.html#a6ea718012d6396390e94d9423edc2ae1":[0,0,34,4],
-"class_exponential_form_base.html#a6eb4ee27335ee6f5b43da075cf5d1c5f":[0,0,34,7],
-"class_exponential_form_base.html#a709bad49cc8e8bc61b36757c6b9d612b":[0,0,34,10],
-"class_exponential_form_base.html#a70ec52bb9f74b69d138b76393f231478":[0,0,34,19],
-"class_exponential_form_base.html#a753ef8e6ee247a215c523442f51db2a0":[0,0,34,8],
-"class_exponential_form_base.html#a754e757add7b6b599be289087b833d01":[0,0,34,14],
-"class_exponential_form_base.html#a7aac97383b6d0af90199ead7c3ec1fdc":[0,0,34,3],
-"class_exponential_form_base.html#a7d56bcf4a7fda1e40b0eb2f08ba751ab":[0,0,34,18],
-"class_exponential_form_base.html#a7d6e9e849659fc66e4c6ec3031570032":[0,0,34,13],
-"class_exponential_form_base.html#a99b0bf1a17ef2680ee09fac4dca01ccf":[0,0,34,20],
-"class_exponential_form_base.html#a9b0573a2065f0bbaf8048e2f78618a36":[0,0,34,1],
-"class_exponential_form_base.html#a9b1312da21b4d6ec8f2d79ae64c31d57":[0,0,34,2],
-"class_exponential_form_base.html#a9e2feaac372a2e3ecf69ea8c46f32c52":[0,0,34,12],
-"class_exponential_form_base.html#ac0f0130cf92f784b7ff098e42c84005e":[0,0,34,5],
-"class_exponential_form_base.html#ae0a60ea98d18aa91e5388fee9131eaeb":[0,0,34,9],
-"class_exponential_form_base.html#ae4e8752bf0bb718b4aabc54400e997c7":[0,0,34,15],
-"class_exponential_form_base.html#ae8659fd109e33fbea9627ed4c885d6d8":[0,0,34,16],
-"class_fault.html":[0,0,35],
-"class_fault.html#a100c6aac1a159eade54dfdab15717018":[0,0,35,14],
-"class_fault.html#a293915690d60c4fea81038d535866d1c":[0,0,35,18],
-"class_fault.html#a2beb820c91f139c64bac413520540f8b":[0,0,35,13],
-"class_fault.html#a2f9c9605c49dd7761a9b8470913f6eea":[0,0,35,11],
-"class_fault.html#a3bbbe363bbda4ab262cf9ff9ef8d283e":[0,0,35,8],
-"class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0":[0,0,35,3],
-"class_fault.html#a4120f861b073783b4fb82385171fbd0f":[0,0,35,4],
-"class_fault.html#a42019654142cd8187b314e43d70262eb":[0,0,35,2],
-"class_fault.html#a6f0ad59005f42db46899c54bd0bb2451":[0,0,35,9],
-"class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef":[0,0,35,1],
-"class_fault.html#a8ec9ef08820a9e0b6ef64c6a11f17214":[0,0,35,20],
-"class_fault.html#a8fbe3ce9f7288c4f8261db2d9a89adbb":[0,0,35,0],
-"class_fault.html#a900ca28916f6b5d1920916da364792ac":[0,0,35,7],
-"class_fault.html#aa42a2ef6e0de6a0afd7b90e5f5d71d7f":[0,0,35,12],
-"class_fault.html#aaf57534c2f6f2f1105ef5b8fab1c7af5":[0,0,35,10],
-"class_fault.html#ab273c91b6be44a546faf8dac1c5a548c":[0,0,35,15],
-"class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a":[0,0,35,5],
-"class_fault.html#ae280475abbb392e1db237feaacf3c8a7":[0,0,35,16],
-"class_fault.html#ae5875b1e3ee6ea4a4748759a996ad37f":[0,0,35,19],
-"class_fault.html#aec2ca2d73097eab3dc3f368bf656602c":[0,0,35,17],
-"class_fault.html#af1bb91359dfe8df0251a2031957d3ddf":[0,0,35,6],
-"class_file_handing.html":[0,0,36],
-"class_file_handing.html#a16130b13435ef1cc90268599c4e9cc5a":[0,0,36,3],
-"class_file_handing.html#a29d0af971b7a6810224c504ac072903a":[0,0,36,13],
-"class_file_handing.html#a2d7ad3fb6f8f920aa6f0c720cc4852f1":[0,0,36,23],
-"class_file_handing.html#a315b88e9e9bd75cb45794bf9f52a7925":[0,0,36,4],
-"class_file_handing.html#a34539e10caa48ede6a3e9ac64b89e0d5":[0,0,36,15],
-"class_file_handing.html#a3ca9be771b02e58e554dc7a45a11e510":[0,0,36,6],
-"class_file_handing.html#a4444e602d96ed6817e9ad2838e4d57a5":[0,0,36,25],
-"class_file_handing.html#a46142226e6ce37032008523a3095bba8":[0,0,36,26],
-"class_file_handing.html#a54d666757710bc163141674c9efb576e":[0,0,36,17],
-"class_file_handing.html#a561b1bc5807aeb4424f0047b003b9238":[0,0,36,11],
-"class_file_handing.html#a6b5b47dd26a56ee2f8f2ac74f25d6811":[0,0,36,27],
-"class_file_handing.html#a7b5ac3287c11ee33c0e802dd60e07e68":[0,0,36,24],
-"class_file_handing.html#a815fb97269b3755ac1a00cb196ee226c":[0,0,36,22],
-"class_file_handing.html#a8948e014c857b698b3ae204fd7bd8d1a":[0,0,36,14],
-"class_file_handing.html#a8951c02ab38f7922e96de8024189a2b0":[0,0,36,19],
-"class_file_handing.html#a96c5ba440caa8b0ab44a01e2bfd63f51":[0,0,36,12],
-"class_file_handing.html#aa3719ae58a4b0072667a3b42c8d4d50d":[0,0,36,1],
-"class_file_handing.html#aa3c18af0d859b78bf7d117c85e85a628":[0,0,36,10],
-"class_file_handing.html#ab4f68fcd9986188a476cad92a9238d30":[0,0,36,0],
-"class_file_handing.html#abe3af403418c668035bb38e6e6428f04":[0,0,36,20],
-"class_file_handing.html#aca642a587c19e07a16cf65cb06f78950":[0,0,36,21],
-"class_file_handing.html#ad334c006a4d5ae7ef15dd6b426bcbfa8":[0,0,36,2],
-"class_file_handing.html#ad3880248f7fa8c93c765a4408ca33893":[0,0,36,9],
-"class_file_handing.html#ad880af02d674437811fec077a84a7909":[0,0,36,5],
-"class_file_handing.html#adde631f17207ec5744c0dbdfe79d45d3":[0,0,36,8],
-"class_file_handing.html#ae3d0597f99b08eb29188f9565e036060":[0,0,36,18]
+"class_element_data_object.html#a062f11db713de77f36e98a3d79e25aad":[0,0,29,3]
};
diff --git a/docs/doxygen/html/navtreeindex5.js b/docs/doxygen/html/navtreeindex5.js
index a027e14..7066e5b 100644
--- a/docs/doxygen/html/navtreeindex5.js
+++ b/docs/doxygen/html/navtreeindex5.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX5 =
{
+"class_element_data_object.html#a19995ba1b03a9566352e5bdf44d1370b":[0,0,29,6],
+"class_element_data_object.html#a19dc80f27c83408b72c9c87ce15ac228":[0,0,29,4],
+"class_element_data_object.html#a3da83a9dbd280969d26bee208e2566ac":[0,0,29,7],
+"class_element_data_object.html#a470f40ac636d52bea0325192b44424a9":[0,0,29,1],
+"class_element_data_object.html#a732347b84c15fdca2f10639c8a8345e4":[0,0,29,5],
+"class_element_data_object.html#afd2fde28c57246b673322b8b630ff1e0":[0,0,29,0],
+"class_element_plot_data.html":[0,0,30],
+"class_element_plot_data.html#a245c2baf5822b5350ab4b42cb3c8c4d4":[0,0,30,7],
+"class_element_plot_data.html#a24f2d0ec6e24db875913154cea9b6495":[0,0,30,15],
+"class_element_plot_data.html#a26d9efeccd36ac4d3b77e9ccd7b07acb":[0,0,30,16],
+"class_element_plot_data.html#a2a73f2f0bebe16f8ee0ebe21ac76a917":[0,0,30,4],
+"class_element_plot_data.html#a3262fabe578847d44e7822cc697111b4":[0,0,30,17],
+"class_element_plot_data.html#a383fedeea054f6115c999ffc93a0eb35":[0,0,30,23],
+"class_element_plot_data.html#a3f2b3675a82f456df02efab7c69e4ec3":[0,0,30,1],
+"class_element_plot_data.html#a522fea0dfaca21e17948a03a3bd3cc1e":[0,0,30,9],
+"class_element_plot_data.html#a52621408fd886256e3f93970920bc840":[0,0,30,22],
+"class_element_plot_data.html#a5618ae04d96b16e90cc54b97304e2d5c":[0,0,30,25],
+"class_element_plot_data.html#a56e431bfc0e1074ce3b1ffd36a066271":[0,0,30,11],
+"class_element_plot_data.html#a7157de114641e494358a21d0fd061e1a":[0,0,30,20],
+"class_element_plot_data.html#a78e53dfd0407e5a006a1a46d0a0e7cfc":[0,0,30,12],
+"class_element_plot_data.html#a7b7a5834b0cad53e84c9bd6cf86aa6ea":[0,0,30,18],
+"class_element_plot_data.html#a8fa649bde6d4166329aa9d8c0d2eb39e":[0,0,30,14],
+"class_element_plot_data.html#a9b103e1e9483b550200d87991d618615":[0,0,30,5],
+"class_element_plot_data.html#aa0889ca6cb11f4f5b391d0dea9f97e8f":[0,0,30,21],
+"class_element_plot_data.html#aa13b4ada1ce748bb6b622fa2f7da97b8":[0,0,30,24],
+"class_element_plot_data.html#aa1bc5d5a782caf9c7f7a55db4387da26":[0,0,30,19],
+"class_element_plot_data.html#aa52cd4374e4b1a3fd27010481d898982":[0,0,30,13],
+"class_element_plot_data.html#aaaad30139bbd8a1b0e714bb7d1d8a85d":[0,0,30,26],
+"class_element_plot_data.html#aadcb36aed66c077a44e321dd39e40192":[0,0,30,8],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6":[0,0,30,0],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a195e99d96b8ceb74b935610c8613ead8":[0,0,30,0,10],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a3ff875a4cab8537f81c71991cb130916":[0,0,30,0,11],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a40c3284dc7fe0008a9150b06c9971c21":[0,0,30,0,2],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a61df757e093501b573e4da76a652fa22":[0,0,30,0,1],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a64e18a4c6fab57ebacf178826a6b19f7":[0,0,30,0,3],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a75f81e37494ce492bff49fa4677dcddf":[0,0,30,0,0],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6a97d4ddc3864572ad7ed8304b287aab61":[0,0,30,0,4],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aac77aeb1a647c940d4e1e17a477126d0":[0,0,30,0,6],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aadd1fc1983995b983485223be3b14916":[0,0,30,0,8],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6ad0415dca75f4048c1a66d736e0ed4d4e":[0,0,30,0,7],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6aed23fc5b7a7f072cb7d2c3e440a6531c":[0,0,30,0,5],
+"class_element_plot_data.html#acbc71f28886fca6d20f9410ab455e5e6af2e7b8e623153ce32d4a34ea80b6c7d2":[0,0,30,0,9],
+"class_element_plot_data.html#acedb6f0b5c545e1bd9c12370adb1ffc7":[0,0,30,6],
+"class_element_plot_data.html#aeb26f918104c765ceaa29947008c349e":[0,0,30,2],
+"class_element_plot_data.html#af1ee05ddb475ff46af376fe212148c01":[0,0,30,3],
+"class_element_plot_data.html#af71ccdc0beaf0acc8da959bab83ad9ed":[0,0,30,10],
+"class_exponential.html":[0,0,32],
+"class_exponential.html#a0714869ee8815119a6d76431bac767ea":[0,0,32,7],
+"class_exponential.html#a0ebfd386bebb9a1f9d41a3eca0daed3b":[0,0,32,8],
+"class_exponential.html#a0fcb1dfec0c927a22abab7135f6c3a00":[0,0,32,13],
+"class_exponential.html#a38559206dd99fae84d4ed4dd7996dd8f":[0,0,32,11],
+"class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e":[0,0,32,6],
+"class_exponential.html#a568f1cb2a910d054b67ffbef74c8c196":[0,0,32,12],
+"class_exponential.html#a7961aca3918368d3778aa5866a14cbec":[0,0,32,5],
+"class_exponential.html#a79eabfca357002f160b082a6df9f6f2b":[0,0,32,2],
+"class_exponential.html#a851717c2bb412dfddea8a96ad7344ef0":[0,0,32,0],
+"class_exponential.html#a85cda0dba6549828a9045e478e24609f":[0,0,32,4],
+"class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d":[0,0,32,9],
+"class_exponential.html#adf997c8c44ac0a3e0d76ba9e32ebb5ec":[0,0,32,1],
+"class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f":[0,0,32,10],
+"class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339":[0,0,32,3],
+"class_exponential_form.html":[0,0,33],
+"class_exponential_form.html#a04ab824bc029df387aa38ca8b379206f":[0,0,33,5],
+"class_exponential_form.html#a3c0b865be48a390d39b42a552afdd711":[0,0,33,1],
+"class_exponential_form.html#a4c3cd70d6128d58f330a0f992a91da1a":[0,0,33,0],
+"class_exponential_form.html#a8d3175dc7543f5612dcb04acf5e8fa0c":[0,0,33,3],
+"class_exponential_form.html#ac4f9664d3e884b5ff8f18fddea362b63":[0,0,33,6],
+"class_exponential_form.html#ae59514a694933a77cd7d7a1a9096b713":[0,0,33,4],
+"class_exponential_form.html#af741be36de488170a80c88df01e17667":[0,0,33,2],
+"class_exponential_form_base.html":[0,0,34],
+"class_exponential_form_base.html#a01c6236bffb9620ff2ef2a0afcbc7408":[0,0,34,0],
+"class_exponential_form_base.html#a13c869c29285c1e04def44db6aa4e364":[0,0,34,21],
+"class_exponential_form_base.html#a2973b411828496b3c07bcc465f11cfb1":[0,0,34,11],
+"class_exponential_form_base.html#a2b4013cf5e588a510eee19de6a63812d":[0,0,34,6],
+"class_exponential_form_base.html#a44197d79b2c8138b56820eeb5407876b":[0,0,34,17],
+"class_exponential_form_base.html#a6ea718012d6396390e94d9423edc2ae1":[0,0,34,4],
+"class_exponential_form_base.html#a6eb4ee27335ee6f5b43da075cf5d1c5f":[0,0,34,7],
+"class_exponential_form_base.html#a709bad49cc8e8bc61b36757c6b9d612b":[0,0,34,10],
+"class_exponential_form_base.html#a70ec52bb9f74b69d138b76393f231478":[0,0,34,19],
+"class_exponential_form_base.html#a753ef8e6ee247a215c523442f51db2a0":[0,0,34,8],
+"class_exponential_form_base.html#a754e757add7b6b599be289087b833d01":[0,0,34,14],
+"class_exponential_form_base.html#a7aac97383b6d0af90199ead7c3ec1fdc":[0,0,34,3],
+"class_exponential_form_base.html#a7d56bcf4a7fda1e40b0eb2f08ba751ab":[0,0,34,18],
+"class_exponential_form_base.html#a7d6e9e849659fc66e4c6ec3031570032":[0,0,34,13],
+"class_exponential_form_base.html#a99b0bf1a17ef2680ee09fac4dca01ccf":[0,0,34,20],
+"class_exponential_form_base.html#a9b0573a2065f0bbaf8048e2f78618a36":[0,0,34,1],
+"class_exponential_form_base.html#a9b1312da21b4d6ec8f2d79ae64c31d57":[0,0,34,2],
+"class_exponential_form_base.html#a9e2feaac372a2e3ecf69ea8c46f32c52":[0,0,34,12],
+"class_exponential_form_base.html#ac0f0130cf92f784b7ff098e42c84005e":[0,0,34,5],
+"class_exponential_form_base.html#ae0a60ea98d18aa91e5388fee9131eaeb":[0,0,34,9],
+"class_exponential_form_base.html#ae4e8752bf0bb718b4aabc54400e997c7":[0,0,34,15],
+"class_exponential_form_base.html#ae8659fd109e33fbea9627ed4c885d6d8":[0,0,34,16],
+"class_fault.html":[0,0,35],
+"class_fault.html#a100c6aac1a159eade54dfdab15717018":[0,0,35,14],
+"class_fault.html#a293915690d60c4fea81038d535866d1c":[0,0,35,18],
+"class_fault.html#a2beb820c91f139c64bac413520540f8b":[0,0,35,13],
+"class_fault.html#a2f9c9605c49dd7761a9b8470913f6eea":[0,0,35,11],
+"class_fault.html#a3bbbe363bbda4ab262cf9ff9ef8d283e":[0,0,35,8],
+"class_fault.html#a3c2f14cd1da46cb88109fdb172d959b0":[0,0,35,3],
+"class_fault.html#a4120f861b073783b4fb82385171fbd0f":[0,0,35,4],
+"class_fault.html#a42019654142cd8187b314e43d70262eb":[0,0,35,2],
+"class_fault.html#a6f0ad59005f42db46899c54bd0bb2451":[0,0,35,9],
+"class_fault.html#a77baeae2c3388de3f7bbeabf52c99bef":[0,0,35,1],
+"class_fault.html#a8ec9ef08820a9e0b6ef64c6a11f17214":[0,0,35,20],
+"class_fault.html#a8fbe3ce9f7288c4f8261db2d9a89adbb":[0,0,35,0],
+"class_fault.html#a900ca28916f6b5d1920916da364792ac":[0,0,35,7],
+"class_fault.html#aa42a2ef6e0de6a0afd7b90e5f5d71d7f":[0,0,35,12],
+"class_fault.html#aaf57534c2f6f2f1105ef5b8fab1c7af5":[0,0,35,10],
+"class_fault.html#ab273c91b6be44a546faf8dac1c5a548c":[0,0,35,15],
+"class_fault.html#ac7942a558f3ecdb8c06ddb49567c487a":[0,0,35,5],
+"class_fault.html#ae280475abbb392e1db237feaacf3c8a7":[0,0,35,16],
+"class_fault.html#ae5875b1e3ee6ea4a4748759a996ad37f":[0,0,35,19],
+"class_fault.html#aec2ca2d73097eab3dc3f368bf656602c":[0,0,35,17],
+"class_fault.html#af1bb91359dfe8df0251a2031957d3ddf":[0,0,35,6],
+"class_file_handing.html":[0,0,36],
+"class_file_handing.html#a16130b13435ef1cc90268599c4e9cc5a":[0,0,36,3],
+"class_file_handing.html#a29d0af971b7a6810224c504ac072903a":[0,0,36,13],
+"class_file_handing.html#a2d7ad3fb6f8f920aa6f0c720cc4852f1":[0,0,36,23],
+"class_file_handing.html#a315b88e9e9bd75cb45794bf9f52a7925":[0,0,36,4],
+"class_file_handing.html#a34539e10caa48ede6a3e9ac64b89e0d5":[0,0,36,15],
+"class_file_handing.html#a3ca9be771b02e58e554dc7a45a11e510":[0,0,36,6],
+"class_file_handing.html#a4444e602d96ed6817e9ad2838e4d57a5":[0,0,36,25],
+"class_file_handing.html#a46142226e6ce37032008523a3095bba8":[0,0,36,26],
+"class_file_handing.html#a54d666757710bc163141674c9efb576e":[0,0,36,17],
+"class_file_handing.html#a561b1bc5807aeb4424f0047b003b9238":[0,0,36,11],
+"class_file_handing.html#a6b5b47dd26a56ee2f8f2ac74f25d6811":[0,0,36,27],
+"class_file_handing.html#a7b5ac3287c11ee33c0e802dd60e07e68":[0,0,36,24],
+"class_file_handing.html#a815fb97269b3755ac1a00cb196ee226c":[0,0,36,22],
+"class_file_handing.html#a8948e014c857b698b3ae204fd7bd8d1a":[0,0,36,14],
+"class_file_handing.html#a8951c02ab38f7922e96de8024189a2b0":[0,0,36,19],
+"class_file_handing.html#a96c5ba440caa8b0ab44a01e2bfd63f51":[0,0,36,12],
+"class_file_handing.html#aa3719ae58a4b0072667a3b42c8d4d50d":[0,0,36,1],
+"class_file_handing.html#aa3c18af0d859b78bf7d117c85e85a628":[0,0,36,10],
+"class_file_handing.html#ab4f68fcd9986188a476cad92a9238d30":[0,0,36,0],
+"class_file_handing.html#abe3af403418c668035bb38e6e6428f04":[0,0,36,20],
+"class_file_handing.html#aca642a587c19e07a16cf65cb06f78950":[0,0,36,21],
+"class_file_handing.html#ad334c006a4d5ae7ef15dd6b426bcbfa8":[0,0,36,2],
+"class_file_handing.html#ad3880248f7fa8c93c765a4408ca33893":[0,0,36,9],
+"class_file_handing.html#ad880af02d674437811fec077a84a7909":[0,0,36,5],
+"class_file_handing.html#adde631f17207ec5744c0dbdfe79d45d3":[0,0,36,8],
+"class_file_handing.html#ae3d0597f99b08eb29188f9565e036060":[0,0,36,18],
"class_file_handing.html#ae85e5c9173a850b8165939fef18c8c88":[0,0,36,16],
"class_file_handing.html#afd02764e9227133832464b2a7cb10952":[0,0,36,7],
"class_gain.html":[0,0,37],
@@ -108,146 +249,5 @@ var NAVTREEINDEX5 =
"class_generator_stab_form_base.html#a28a2efcd2bad7faf6fb4d34139abbaa8":[0,0,44,111],
"class_generator_stab_form_base.html#a29dfd5dbc8f0d30226ed3ce16d20fe33":[0,0,44,16],
"class_generator_stab_form_base.html#a29e6fa3dc40f638b5d327373ac0e408f":[0,0,44,59],
-"class_generator_stab_form_base.html#a2b5171368b74b27070df3b53254d7745":[0,0,44,78],
-"class_generator_stab_form_base.html#a2bda5575654a49d342aefb1e4c8fbaef":[0,0,44,12],
-"class_generator_stab_form_base.html#a2cb537d38520f0f1951ccc2026f527a3":[0,0,44,37],
-"class_generator_stab_form_base.html#a2d96514e85ce3c427208d4f7bb945c1a":[0,0,44,46],
-"class_generator_stab_form_base.html#a2e9f50b3aa0a7ecf5ff8b79b0c056906":[0,0,44,102],
-"class_generator_stab_form_base.html#a3276da36307ca5cd6d2e2e5410682301":[0,0,44,31],
-"class_generator_stab_form_base.html#a376d129380304880b44e8b8f7c119c1f":[0,0,44,9],
-"class_generator_stab_form_base.html#a38089e4a120f059032ff94e1222b03c4":[0,0,44,48],
-"class_generator_stab_form_base.html#a386ad0fb02ddfeb050a6d5d4e899fc09":[0,0,44,109],
-"class_generator_stab_form_base.html#a3a049ab1330bc7b8c485ce33cd6e8836":[0,0,44,71],
-"class_generator_stab_form_base.html#a404ef29f1248d852da321d6c4027538a":[0,0,44,74],
-"class_generator_stab_form_base.html#a41b7f2e6af6c6ee9a95b0947034a8ec0":[0,0,44,22],
-"class_generator_stab_form_base.html#a4295c5ea7291078a186bdf40095d666e":[0,0,44,113],
-"class_generator_stab_form_base.html#a43477cec5f18d7fa8cfc4cbb6871a172":[0,0,44,73],
-"class_generator_stab_form_base.html#a460c8176a0e5ae6e569bc129a2988960":[0,0,44,77],
-"class_generator_stab_form_base.html#a4825041ea73a8e0345388c6e0e71cf74":[0,0,44,62],
-"class_generator_stab_form_base.html#a4890f2b954164acc59d59487cce29a70":[0,0,44,72],
-"class_generator_stab_form_base.html#a4b05d7737e0cf2307cb2d6e37145cf1f":[0,0,44,30],
-"class_generator_stab_form_base.html#a4b225606d57d39e4a371fa27e275a1f9":[0,0,44,5],
-"class_generator_stab_form_base.html#a5004f24c73c95336a92640180031b692":[0,0,44,69],
-"class_generator_stab_form_base.html#a506d888c08b4cc1f727aa986fdf86ceb":[0,0,44,49],
-"class_generator_stab_form_base.html#a51fdd73d564ca1cf1fa87ce39431da70":[0,0,44,3],
-"class_generator_stab_form_base.html#a5473539c798b4eca8ae20a13d07708f0":[0,0,44,19],
-"class_generator_stab_form_base.html#a57b954413ac47c20fb79434947e71e67":[0,0,44,64],
-"class_generator_stab_form_base.html#a59b8c38ec0e7e1f547cb558952612b55":[0,0,44,24],
-"class_generator_stab_form_base.html#a59e210f644c44c275b652d0b39e26fc8":[0,0,44,103],
-"class_generator_stab_form_base.html#a5aac0bb16470ef6443c99585c8445b09":[0,0,44,55],
-"class_generator_stab_form_base.html#a5e42cf0b5632665dd94a2df16c99c519":[0,0,44,21],
-"class_generator_stab_form_base.html#a5fce6f358f2acb7403030ec01b2df79f":[0,0,44,14],
-"class_generator_stab_form_base.html#a617a814f876388c5cf2770b71e0d036d":[0,0,44,66],
-"class_generator_stab_form_base.html#a65422dbbdac862940d3c645dc32a8f60":[0,0,44,114],
-"class_generator_stab_form_base.html#a672e1b7b873b9a5b4ae45e1131a31cd3":[0,0,44,56],
-"class_generator_stab_form_base.html#a67931a6253aca464e3ea64653156a4ad":[0,0,44,83],
-"class_generator_stab_form_base.html#a70320edb367b9b5fd356690f503a7773":[0,0,44,25],
-"class_generator_stab_form_base.html#a72412627afc1f12e1fb1627a17052bb1":[0,0,44,95],
-"class_generator_stab_form_base.html#a7248d2e4d7430738f48737e4fecc0b9b":[0,0,44,32],
-"class_generator_stab_form_base.html#a72f8e66e91538326eb815371b4d6e967":[0,0,44,63],
-"class_generator_stab_form_base.html#a73926cf9ccc7b6806732778637aa8b30":[0,0,44,18],
-"class_generator_stab_form_base.html#a763fac09f09ea56005c2206b1c30d733":[0,0,44,0],
-"class_generator_stab_form_base.html#a79c1373f45cf399bceb757dae8060d19":[0,0,44,87],
-"class_generator_stab_form_base.html#a7db301857f418902cfacbbed747ee69a":[0,0,44,60],
-"class_generator_stab_form_base.html#a7dcb3b5df3ca7a2465db8c2b610f1f8d":[0,0,44,100],
-"class_generator_stab_form_base.html#a84873dfc35006449ef4fcba4ed7d0f4e":[0,0,44,67],
-"class_generator_stab_form_base.html#a86a945f0ae8ad5be9402ddfdccf847f8":[0,0,44,23],
-"class_generator_stab_form_base.html#a882959b444c06441832c6348c372d809":[0,0,44,70],
-"class_generator_stab_form_base.html#a89e55bdba11ed2593788f08d477c68e8":[0,0,44,38],
-"class_generator_stab_form_base.html#a8d5119db0ee2159313954c5af2f98583":[0,0,44,105],
-"class_generator_stab_form_base.html#a90c3165863fac740d7120366741b394c":[0,0,44,42],
-"class_generator_stab_form_base.html#a93c719731f4ef67cde780def182ccd53":[0,0,44,28],
-"class_generator_stab_form_base.html#a96d2037062bf935f4be7b067d45e3259":[0,0,44,36],
-"class_generator_stab_form_base.html#a97249e0a9b9157536230961874f39790":[0,0,44,39],
-"class_generator_stab_form_base.html#a99b17f90dc5aaee56ba4c694b496da15":[0,0,44,10],
-"class_generator_stab_form_base.html#a9b13914de4a6009967892e1f5182047f":[0,0,44,2],
-"class_generator_stab_form_base.html#a9ff21aa7428e8e1fe9982b0f8e26cbff":[0,0,44,13],
-"class_generator_stab_form_base.html#aa24e99dfa3412c3d2255feed1ef13263":[0,0,44,11],
-"class_generator_stab_form_base.html#aa3e34810e40f7e6ba9c80a4f7476a6a8":[0,0,44,94],
-"class_generator_stab_form_base.html#aa43448fc7590f38486ecb2c8ce866862":[0,0,44,98],
-"class_generator_stab_form_base.html#aa93d0231fd249c7580da09370cf457f9":[0,0,44,43],
-"class_generator_stab_form_base.html#aa956c76d8b62aed8a46baf6c4c89e875":[0,0,44,104],
-"class_generator_stab_form_base.html#aaacb2de6430b853cc03f7b124294a227":[0,0,44,92],
-"class_generator_stab_form_base.html#aad04072958142f172f665606f1ea7852":[0,0,44,116],
-"class_generator_stab_form_base.html#aade642097ee0b63eedda4e551d69cbf8":[0,0,44,26],
-"class_generator_stab_form_base.html#ab173aad50e838ed3a62be75fedb60e92":[0,0,44,81],
-"class_generator_stab_form_base.html#ab176d40b9540799cd1e8fce5320fe1f1":[0,0,44,108],
-"class_generator_stab_form_base.html#ab83eed913a74588eeaec593e777d6903":[0,0,44,33],
-"class_generator_stab_form_base.html#ab95b366c7aa4649cea574ff416de5c7b":[0,0,44,4],
-"class_generator_stab_form_base.html#ab97d99294656418a22473bc428010df5":[0,0,44,57],
-"class_generator_stab_form_base.html#abb8626324d185a50ea1afb531acc7556":[0,0,44,51],
-"class_generator_stab_form_base.html#abc3ac82c1793612e706ad8570d2485e2":[0,0,44,99],
-"class_generator_stab_form_base.html#abc69d8331bc4a67f474dcd8d784e67b0":[0,0,44,80],
-"class_generator_stab_form_base.html#abc75b52265409993c5961b05c72c0dbd":[0,0,44,15],
-"class_generator_stab_form_base.html#abcd9ca2e90630de68c36a80fc94e84d7":[0,0,44,54],
-"class_generator_stab_form_base.html#abd8d9528a7bb1a0e42cb4e410f96a8da":[0,0,44,34],
-"class_generator_stab_form_base.html#abe5a2f8a8699b436ebde263613da9e41":[0,0,44,65],
-"class_generator_stab_form_base.html#abec18f9a5bf99c4e94dc1b416eb527cd":[0,0,44,7],
-"class_generator_stab_form_base.html#abf75abd9efd94f6df0d98583cd54011a":[0,0,44,1],
-"class_generator_stab_form_base.html#ac124e324cb4a4a5f2c9d6e8b8ac9219d":[0,0,44,85],
-"class_generator_stab_form_base.html#ac3e60ba5d2b4d80889805ca6a74ddacc":[0,0,44,89],
-"class_generator_stab_form_base.html#ac819e946ed8c89f7be8af3d8659f0215":[0,0,44,20],
-"class_generator_stab_form_base.html#aca6bebda04654a89a1ab9b0eb99cb297":[0,0,44,96],
-"class_generator_stab_form_base.html#acb429d36652f171301f8006a00db8697":[0,0,44,112],
-"class_generator_stab_form_base.html#ad16f4c2ac4f8e579a807d87f9d2727af":[0,0,44,82],
-"class_generator_stab_form_base.html#adaa265bc1d9756eb75628c983107adec":[0,0,44,101],
-"class_generator_stab_form_base.html#add9da345bd8c5a3a84c7e54aba9c0aff":[0,0,44,53],
-"class_generator_stab_form_base.html#ade55f7fcf88393571e23342a6e3640c2":[0,0,44,27],
-"class_generator_stab_form_base.html#adf24eaddce5f2a357ad80a9776b12d3e":[0,0,44,84],
-"class_generator_stab_form_base.html#ae34a23fbe6b549cee19cc4095c5d94c7":[0,0,44,107],
-"class_generator_stab_form_base.html#ae6bd7cfd4d167b5e1bc474d426ca8a30":[0,0,44,6],
-"class_generator_stab_form_base.html#ae85799c9d8bb89c92029f2da7678c1f7":[0,0,44,50],
-"class_generator_stab_form_base.html#aed066d5bfa8dcfada7d2ed21aa567b8a":[0,0,44,45],
-"class_generator_stab_form_base.html#af03772fb1570ab9d80f1690acc52e102":[0,0,44,58],
-"class_generator_stab_form_base.html#af07424f07933b3dfd9ddcf49786655ae":[0,0,44,52],
-"class_generator_stab_form_base.html#af330bc8f2bd282323a32a2a86c914d15":[0,0,44,110],
-"class_generator_stab_form_base.html#af57074a4e2f1c071619da1511af5a580":[0,0,44,75],
-"class_generator_stab_form_base.html#af76e11df631da956e8bbb8c981bd919b":[0,0,44,76],
-"class_generator_stab_form_base.html#af9582a84717c6e87d16842825093eb34":[0,0,44,8],
-"class_generator_stab_form_base.html#afb924c441142358b2a1a4aacb0182d5c":[0,0,44,86],
-"class_graphical_element.html":[0,0,45],
-"class_graphical_element.html#a8fde5fe6410268701fc76a7b7b623053":[0,0,45,1],
-"class_graphical_element.html#a9f116ee2cd16dd099c2579864415d7b8":[0,0,45,0],
-"class_i_o_control.html":[0,0,53],
-"class_i_o_control.html#a0e5e4b97d0e36099db3d6bf39eaa5dd1":[0,0,53,17],
-"class_i_o_control.html#a0f80c4e9c3c87cd91a77c9dd781338ac":[0,0,53,8],
-"class_i_o_control.html#a1a3b4a8f356a5d1ab95fdc729b9e758d":[0,0,53,1],
-"class_i_o_control.html#a277d748a0aaaf3d31a64c293755ad807":[0,0,53,18],
-"class_i_o_control.html#a41afef16a922a517d7362470ba252466":[0,0,53,2],
-"class_i_o_control.html#a42a87f4ece6f842271e0044038c4da90":[0,0,53,9],
-"class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9":[0,0,53,11],
-"class_i_o_control.html#a4ab76d7f7634b1ed80459f1f17ce37c6":[0,0,53,19],
-"class_i_o_control.html#a4ed6c7e0b25b5f8678e2d8375ffd5735":[0,0,53,14],
-"class_i_o_control.html#a595b6b926353d28d63fefee0f92f7719":[0,0,53,20],
-"class_i_o_control.html#a5f860d3375c22819b9b238a2bd1e5b69":[0,0,53,7],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091":[0,0,53,0],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a3276150d286d747d428297abbe52d313":[0,0,53,0,5],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a3a942ff0ef0f3d8d5db72dce5c3c9fae":[0,0,53,0,2],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a53af2ff6991d89e1c2e8847e35d92789":[0,0,53,0,1],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a5d7ea66bd1f25fa23472c0dd00c4175f":[0,0,53,0,4],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a93d85bb8a7e63b57b618a1c255e4c61f":[0,0,53,0,3],
-"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a97ce70af6aa8df66257643be841f2eff":[0,0,53,0,0],
-"class_i_o_control.html#a973ae81e5d2d3df3b9088834d1950d32":[0,0,53,16],
-"class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7":[0,0,53,6],
-"class_i_o_control.html#a9f79a55442d00a0d88cd688d74ba271c":[0,0,53,5],
-"class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1":[0,0,53,3],
-"class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4":[0,0,53,4],
-"class_i_o_control.html#ab76679a7c7c0b83e0f3a7e562e07803f":[0,0,53,12],
-"class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439":[0,0,53,13],
-"class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90":[0,0,53,10],
-"class_i_o_control.html#af99b84798978d530f1c3a8181cac2f54":[0,0,53,15],
-"class_i_o_control_form.html":[0,0,54],
-"class_i_o_control_form.html#a294cdff0d3167173fcf48f87ad552026":[0,0,54,2],
-"class_i_o_control_form.html#a4a2f08453c254defd17b3e30ea43e359":[0,0,54,1],
-"class_i_o_control_form.html#a5344ace55f9eb367ac15bfc9810a20b0":[0,0,54,5],
-"class_i_o_control_form.html#a5d80b1908b0b1f93b98fe1068d3a53c2":[0,0,54,10],
-"class_i_o_control_form.html#a6372a4868cd88d074c4f959f5e05dd17":[0,0,54,0],
-"class_i_o_control_form.html#a6c7f6adabce0fe4cc2bbfe7bb121a853":[0,0,54,4],
-"class_i_o_control_form.html#a9f7a52e5af434674b671703a4a96b148":[0,0,54,9],
-"class_i_o_control_form.html#aa36bb4956ef77beb07f530362214777f":[0,0,54,6],
-"class_i_o_control_form.html#abc73fa231942471aa93d66fd26aeb9ef":[0,0,54,8],
-"class_i_o_control_form.html#abdb682d2ae87ab03a77c967a95661671":[0,0,54,7],
-"class_i_o_control_form.html#aedeb2e81b04afc066c9be7830f1db76d":[0,0,54,3],
-"class_i_o_control_form_base.html":[0,0,55],
-"class_i_o_control_form_base.html#a04ad72346ba61a658e7600be4b3dd3b7":[0,0,55,15]
+"class_generator_stab_form_base.html#a2b5171368b74b27070df3b53254d7745":[0,0,44,78]
};
diff --git a/docs/doxygen/html/navtreeindex6.js b/docs/doxygen/html/navtreeindex6.js
index 8ed231d..72e7bd4 100644
--- a/docs/doxygen/html/navtreeindex6.js
+++ b/docs/doxygen/html/navtreeindex6.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX6 =
{
+"class_generator_stab_form_base.html#a2bda5575654a49d342aefb1e4c8fbaef":[0,0,44,12],
+"class_generator_stab_form_base.html#a2cb537d38520f0f1951ccc2026f527a3":[0,0,44,37],
+"class_generator_stab_form_base.html#a2d96514e85ce3c427208d4f7bb945c1a":[0,0,44,46],
+"class_generator_stab_form_base.html#a2e9f50b3aa0a7ecf5ff8b79b0c056906":[0,0,44,102],
+"class_generator_stab_form_base.html#a3276da36307ca5cd6d2e2e5410682301":[0,0,44,31],
+"class_generator_stab_form_base.html#a376d129380304880b44e8b8f7c119c1f":[0,0,44,9],
+"class_generator_stab_form_base.html#a38089e4a120f059032ff94e1222b03c4":[0,0,44,48],
+"class_generator_stab_form_base.html#a386ad0fb02ddfeb050a6d5d4e899fc09":[0,0,44,109],
+"class_generator_stab_form_base.html#a3a049ab1330bc7b8c485ce33cd6e8836":[0,0,44,71],
+"class_generator_stab_form_base.html#a404ef29f1248d852da321d6c4027538a":[0,0,44,74],
+"class_generator_stab_form_base.html#a41b7f2e6af6c6ee9a95b0947034a8ec0":[0,0,44,22],
+"class_generator_stab_form_base.html#a4295c5ea7291078a186bdf40095d666e":[0,0,44,113],
+"class_generator_stab_form_base.html#a43477cec5f18d7fa8cfc4cbb6871a172":[0,0,44,73],
+"class_generator_stab_form_base.html#a460c8176a0e5ae6e569bc129a2988960":[0,0,44,77],
+"class_generator_stab_form_base.html#a4825041ea73a8e0345388c6e0e71cf74":[0,0,44,62],
+"class_generator_stab_form_base.html#a4890f2b954164acc59d59487cce29a70":[0,0,44,72],
+"class_generator_stab_form_base.html#a4b05d7737e0cf2307cb2d6e37145cf1f":[0,0,44,30],
+"class_generator_stab_form_base.html#a4b225606d57d39e4a371fa27e275a1f9":[0,0,44,5],
+"class_generator_stab_form_base.html#a5004f24c73c95336a92640180031b692":[0,0,44,69],
+"class_generator_stab_form_base.html#a506d888c08b4cc1f727aa986fdf86ceb":[0,0,44,49],
+"class_generator_stab_form_base.html#a51fdd73d564ca1cf1fa87ce39431da70":[0,0,44,3],
+"class_generator_stab_form_base.html#a5473539c798b4eca8ae20a13d07708f0":[0,0,44,19],
+"class_generator_stab_form_base.html#a57b954413ac47c20fb79434947e71e67":[0,0,44,64],
+"class_generator_stab_form_base.html#a59b8c38ec0e7e1f547cb558952612b55":[0,0,44,24],
+"class_generator_stab_form_base.html#a59e210f644c44c275b652d0b39e26fc8":[0,0,44,103],
+"class_generator_stab_form_base.html#a5aac0bb16470ef6443c99585c8445b09":[0,0,44,55],
+"class_generator_stab_form_base.html#a5e42cf0b5632665dd94a2df16c99c519":[0,0,44,21],
+"class_generator_stab_form_base.html#a5fce6f358f2acb7403030ec01b2df79f":[0,0,44,14],
+"class_generator_stab_form_base.html#a617a814f876388c5cf2770b71e0d036d":[0,0,44,66],
+"class_generator_stab_form_base.html#a65422dbbdac862940d3c645dc32a8f60":[0,0,44,114],
+"class_generator_stab_form_base.html#a672e1b7b873b9a5b4ae45e1131a31cd3":[0,0,44,56],
+"class_generator_stab_form_base.html#a67931a6253aca464e3ea64653156a4ad":[0,0,44,83],
+"class_generator_stab_form_base.html#a70320edb367b9b5fd356690f503a7773":[0,0,44,25],
+"class_generator_stab_form_base.html#a72412627afc1f12e1fb1627a17052bb1":[0,0,44,95],
+"class_generator_stab_form_base.html#a7248d2e4d7430738f48737e4fecc0b9b":[0,0,44,32],
+"class_generator_stab_form_base.html#a72f8e66e91538326eb815371b4d6e967":[0,0,44,63],
+"class_generator_stab_form_base.html#a73926cf9ccc7b6806732778637aa8b30":[0,0,44,18],
+"class_generator_stab_form_base.html#a763fac09f09ea56005c2206b1c30d733":[0,0,44,0],
+"class_generator_stab_form_base.html#a79c1373f45cf399bceb757dae8060d19":[0,0,44,87],
+"class_generator_stab_form_base.html#a7db301857f418902cfacbbed747ee69a":[0,0,44,60],
+"class_generator_stab_form_base.html#a7dcb3b5df3ca7a2465db8c2b610f1f8d":[0,0,44,100],
+"class_generator_stab_form_base.html#a84873dfc35006449ef4fcba4ed7d0f4e":[0,0,44,67],
+"class_generator_stab_form_base.html#a86a945f0ae8ad5be9402ddfdccf847f8":[0,0,44,23],
+"class_generator_stab_form_base.html#a882959b444c06441832c6348c372d809":[0,0,44,70],
+"class_generator_stab_form_base.html#a89e55bdba11ed2593788f08d477c68e8":[0,0,44,38],
+"class_generator_stab_form_base.html#a8d5119db0ee2159313954c5af2f98583":[0,0,44,105],
+"class_generator_stab_form_base.html#a90c3165863fac740d7120366741b394c":[0,0,44,42],
+"class_generator_stab_form_base.html#a93c719731f4ef67cde780def182ccd53":[0,0,44,28],
+"class_generator_stab_form_base.html#a96d2037062bf935f4be7b067d45e3259":[0,0,44,36],
+"class_generator_stab_form_base.html#a97249e0a9b9157536230961874f39790":[0,0,44,39],
+"class_generator_stab_form_base.html#a99b17f90dc5aaee56ba4c694b496da15":[0,0,44,10],
+"class_generator_stab_form_base.html#a9b13914de4a6009967892e1f5182047f":[0,0,44,2],
+"class_generator_stab_form_base.html#a9ff21aa7428e8e1fe9982b0f8e26cbff":[0,0,44,13],
+"class_generator_stab_form_base.html#aa24e99dfa3412c3d2255feed1ef13263":[0,0,44,11],
+"class_generator_stab_form_base.html#aa3e34810e40f7e6ba9c80a4f7476a6a8":[0,0,44,94],
+"class_generator_stab_form_base.html#aa43448fc7590f38486ecb2c8ce866862":[0,0,44,98],
+"class_generator_stab_form_base.html#aa93d0231fd249c7580da09370cf457f9":[0,0,44,43],
+"class_generator_stab_form_base.html#aa956c76d8b62aed8a46baf6c4c89e875":[0,0,44,104],
+"class_generator_stab_form_base.html#aaacb2de6430b853cc03f7b124294a227":[0,0,44,92],
+"class_generator_stab_form_base.html#aad04072958142f172f665606f1ea7852":[0,0,44,116],
+"class_generator_stab_form_base.html#aade642097ee0b63eedda4e551d69cbf8":[0,0,44,26],
+"class_generator_stab_form_base.html#ab173aad50e838ed3a62be75fedb60e92":[0,0,44,81],
+"class_generator_stab_form_base.html#ab176d40b9540799cd1e8fce5320fe1f1":[0,0,44,108],
+"class_generator_stab_form_base.html#ab83eed913a74588eeaec593e777d6903":[0,0,44,33],
+"class_generator_stab_form_base.html#ab95b366c7aa4649cea574ff416de5c7b":[0,0,44,4],
+"class_generator_stab_form_base.html#ab97d99294656418a22473bc428010df5":[0,0,44,57],
+"class_generator_stab_form_base.html#abb8626324d185a50ea1afb531acc7556":[0,0,44,51],
+"class_generator_stab_form_base.html#abc3ac82c1793612e706ad8570d2485e2":[0,0,44,99],
+"class_generator_stab_form_base.html#abc69d8331bc4a67f474dcd8d784e67b0":[0,0,44,80],
+"class_generator_stab_form_base.html#abc75b52265409993c5961b05c72c0dbd":[0,0,44,15],
+"class_generator_stab_form_base.html#abcd9ca2e90630de68c36a80fc94e84d7":[0,0,44,54],
+"class_generator_stab_form_base.html#abd8d9528a7bb1a0e42cb4e410f96a8da":[0,0,44,34],
+"class_generator_stab_form_base.html#abe5a2f8a8699b436ebde263613da9e41":[0,0,44,65],
+"class_generator_stab_form_base.html#abec18f9a5bf99c4e94dc1b416eb527cd":[0,0,44,7],
+"class_generator_stab_form_base.html#abf75abd9efd94f6df0d98583cd54011a":[0,0,44,1],
+"class_generator_stab_form_base.html#ac124e324cb4a4a5f2c9d6e8b8ac9219d":[0,0,44,85],
+"class_generator_stab_form_base.html#ac3e60ba5d2b4d80889805ca6a74ddacc":[0,0,44,89],
+"class_generator_stab_form_base.html#ac819e946ed8c89f7be8af3d8659f0215":[0,0,44,20],
+"class_generator_stab_form_base.html#aca6bebda04654a89a1ab9b0eb99cb297":[0,0,44,96],
+"class_generator_stab_form_base.html#acb429d36652f171301f8006a00db8697":[0,0,44,112],
+"class_generator_stab_form_base.html#ad16f4c2ac4f8e579a807d87f9d2727af":[0,0,44,82],
+"class_generator_stab_form_base.html#adaa265bc1d9756eb75628c983107adec":[0,0,44,101],
+"class_generator_stab_form_base.html#add9da345bd8c5a3a84c7e54aba9c0aff":[0,0,44,53],
+"class_generator_stab_form_base.html#ade55f7fcf88393571e23342a6e3640c2":[0,0,44,27],
+"class_generator_stab_form_base.html#adf24eaddce5f2a357ad80a9776b12d3e":[0,0,44,84],
+"class_generator_stab_form_base.html#ae34a23fbe6b549cee19cc4095c5d94c7":[0,0,44,107],
+"class_generator_stab_form_base.html#ae6bd7cfd4d167b5e1bc474d426ca8a30":[0,0,44,6],
+"class_generator_stab_form_base.html#ae85799c9d8bb89c92029f2da7678c1f7":[0,0,44,50],
+"class_generator_stab_form_base.html#aed066d5bfa8dcfada7d2ed21aa567b8a":[0,0,44,45],
+"class_generator_stab_form_base.html#af03772fb1570ab9d80f1690acc52e102":[0,0,44,58],
+"class_generator_stab_form_base.html#af07424f07933b3dfd9ddcf49786655ae":[0,0,44,52],
+"class_generator_stab_form_base.html#af330bc8f2bd282323a32a2a86c914d15":[0,0,44,110],
+"class_generator_stab_form_base.html#af57074a4e2f1c071619da1511af5a580":[0,0,44,75],
+"class_generator_stab_form_base.html#af76e11df631da956e8bbb8c981bd919b":[0,0,44,76],
+"class_generator_stab_form_base.html#af9582a84717c6e87d16842825093eb34":[0,0,44,8],
+"class_generator_stab_form_base.html#afb924c441142358b2a1a4aacb0182d5c":[0,0,44,86],
+"class_graphical_element.html":[0,0,45],
+"class_graphical_element.html#a8fde5fe6410268701fc76a7b7b623053":[0,0,45,1],
+"class_graphical_element.html#a9f116ee2cd16dd099c2579864415d7b8":[0,0,45,0],
+"class_i_o_control.html":[0,0,53],
+"class_i_o_control.html#a0e5e4b97d0e36099db3d6bf39eaa5dd1":[0,0,53,17],
+"class_i_o_control.html#a0f80c4e9c3c87cd91a77c9dd781338ac":[0,0,53,8],
+"class_i_o_control.html#a1a3b4a8f356a5d1ab95fdc729b9e758d":[0,0,53,1],
+"class_i_o_control.html#a277d748a0aaaf3d31a64c293755ad807":[0,0,53,18],
+"class_i_o_control.html#a41afef16a922a517d7362470ba252466":[0,0,53,2],
+"class_i_o_control.html#a42a87f4ece6f842271e0044038c4da90":[0,0,53,9],
+"class_i_o_control.html#a47a5633ed68ef0648623b9733dc5dab9":[0,0,53,11],
+"class_i_o_control.html#a4ab76d7f7634b1ed80459f1f17ce37c6":[0,0,53,19],
+"class_i_o_control.html#a4ed6c7e0b25b5f8678e2d8375ffd5735":[0,0,53,14],
+"class_i_o_control.html#a595b6b926353d28d63fefee0f92f7719":[0,0,53,20],
+"class_i_o_control.html#a5f860d3375c22819b9b238a2bd1e5b69":[0,0,53,7],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091":[0,0,53,0],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a3276150d286d747d428297abbe52d313":[0,0,53,0,5],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a3a942ff0ef0f3d8d5db72dce5c3c9fae":[0,0,53,0,2],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a53af2ff6991d89e1c2e8847e35d92789":[0,0,53,0,1],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a5d7ea66bd1f25fa23472c0dd00c4175f":[0,0,53,0,4],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a93d85bb8a7e63b57b618a1c255e4c61f":[0,0,53,0,3],
+"class_i_o_control.html#a84a11e53cc306b8f9f82e577923d4091a97ce70af6aa8df66257643be841f2eff":[0,0,53,0,0],
+"class_i_o_control.html#a973ae81e5d2d3df3b9088834d1950d32":[0,0,53,16],
+"class_i_o_control.html#a99303b5e9bd32affaed8f4e4084fc9f7":[0,0,53,6],
+"class_i_o_control.html#a9f79a55442d00a0d88cd688d74ba271c":[0,0,53,5],
+"class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1":[0,0,53,3],
+"class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4":[0,0,53,4],
+"class_i_o_control.html#ab76679a7c7c0b83e0f3a7e562e07803f":[0,0,53,12],
+"class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439":[0,0,53,13],
+"class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90":[0,0,53,10],
+"class_i_o_control.html#af99b84798978d530f1c3a8181cac2f54":[0,0,53,15],
+"class_i_o_control_form.html":[0,0,54],
+"class_i_o_control_form.html#a294cdff0d3167173fcf48f87ad552026":[0,0,54,2],
+"class_i_o_control_form.html#a4a2f08453c254defd17b3e30ea43e359":[0,0,54,1],
+"class_i_o_control_form.html#a5344ace55f9eb367ac15bfc9810a20b0":[0,0,54,5],
+"class_i_o_control_form.html#a5d80b1908b0b1f93b98fe1068d3a53c2":[0,0,54,10],
+"class_i_o_control_form.html#a6372a4868cd88d074c4f959f5e05dd17":[0,0,54,0],
+"class_i_o_control_form.html#a6c7f6adabce0fe4cc2bbfe7bb121a853":[0,0,54,4],
+"class_i_o_control_form.html#a9f7a52e5af434674b671703a4a96b148":[0,0,54,9],
+"class_i_o_control_form.html#aa36bb4956ef77beb07f530362214777f":[0,0,54,6],
+"class_i_o_control_form.html#abc73fa231942471aa93d66fd26aeb9ef":[0,0,54,8],
+"class_i_o_control_form.html#abdb682d2ae87ab03a77c967a95661671":[0,0,54,7],
+"class_i_o_control_form.html#aedeb2e81b04afc066c9be7830f1db76d":[0,0,54,3],
+"class_i_o_control_form_base.html":[0,0,55],
+"class_i_o_control_form_base.html#a04ad72346ba61a658e7600be4b3dd3b7":[0,0,55,15],
"class_i_o_control_form_base.html#a0e3c563e83daad1b146c3145a1f344dc":[0,0,55,0],
"class_i_o_control_form_base.html#a102076f74743f9fdbc198cd2bed3b116":[0,0,55,5],
"class_i_o_control_form_base.html#a3f98f87e15ed807cb3aa745729509e12":[0,0,55,2],
@@ -108,146 +249,5 @@ var NAVTREEINDEX6 =
"class_limiter.html#ab03497f0b51bfc74a98b7502942fe138":[0,0,56,15],
"class_limiter.html#ab9c3aa47fd2fd4903be2dd600f658d25":[0,0,56,8],
"class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11":[0,0,56,2],
-"class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e":[0,0,56,7],
-"class_limiter_form.html":[0,0,57],
-"class_limiter_form.html#a09752597455d2ec6cb3667d02bf934d3":[0,0,57,0],
-"class_limiter_form.html#a511760d328e526a5f2a7ffec806e4d59":[0,0,57,4],
-"class_limiter_form.html#a7d251ee840262b69434037ec1e715113":[0,0,57,2],
-"class_limiter_form.html#a8195e63f0dcee76259c46ccdb2875e81":[0,0,57,1],
-"class_limiter_form.html#a9bbbc6e83c9e604e62f2f000e9a41d60":[0,0,57,6],
-"class_limiter_form.html#aabf2d0d5bac45cddd80dee0ed77df4d8":[0,0,57,3],
-"class_limiter_form.html#adb4fae237f4911df3e63c99e7280dfe8":[0,0,57,5],
-"class_limiter_form_base.html":[0,0,58],
-"class_limiter_form_base.html#a191664a531538233edf3aa7c4432583b":[0,0,58,8],
-"class_limiter_form_base.html#a1afd53788b2dfa94cf908c639f9bc632":[0,0,58,18],
-"class_limiter_form_base.html#a39f50dee6cc270be5c21af4dfe0d98f6":[0,0,58,10],
-"class_limiter_form_base.html#a3aa095dc672bdbfd106cc539a3b5e4a0":[0,0,58,14],
-"class_limiter_form_base.html#a3b229b427923670555332825e8dd8e8e":[0,0,58,3],
-"class_limiter_form_base.html#a3c5e871cb238fbcd7065ee2676c6ba91":[0,0,58,13],
-"class_limiter_form_base.html#a50d5878344e634662470fc2f802528fa":[0,0,58,0],
-"class_limiter_form_base.html#a58056787775c23456f2b95a0cb1543e3":[0,0,58,19],
-"class_limiter_form_base.html#a88c42dd3f6e7123caa47ac4459cb1b18":[0,0,58,2],
-"class_limiter_form_base.html#aa129024adb8eedaacf3e81564df2cf38":[0,0,58,4],
-"class_limiter_form_base.html#aa80b8dbc483a971425e76f497cc0f6b6":[0,0,58,11],
-"class_limiter_form_base.html#aaa967f3b7a80dc872ff50e002dcc7074":[0,0,58,12],
-"class_limiter_form_base.html#ab521840a4a94533af12bc7731d288bc5":[0,0,58,6],
-"class_limiter_form_base.html#ab52749fadfd077fcba9588b850c81c42":[0,0,58,17],
-"class_limiter_form_base.html#abf72980e367c4f63ad7b819856bf689d":[0,0,58,9],
-"class_limiter_form_base.html#abfa428980b4ae9a76e5f969f3ab09a65":[0,0,58,16],
-"class_limiter_form_base.html#acc5c3953281a3a10b01ac90e8e296653":[0,0,58,7],
-"class_limiter_form_base.html#ad76205083d27b1aa4bd122c1da863eb7":[0,0,58,15],
-"class_limiter_form_base.html#af08f68c2f59dc29a36e0c7213ab6a92b":[0,0,58,5],
-"class_limiter_form_base.html#aff9d3bd76d9f1ae53628cf46ced7f7c0":[0,0,58,1],
-"class_line.html":[0,0,59],
-"class_line.html#a0222046f2138af61b25f00f020e9f61d":[0,0,59,12],
-"class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f":[0,0,59,5],
-"class_line.html#a05eb3761f198a058045f85d6e685ca97":[0,0,59,7],
-"class_line.html#a125581fc6d21c83565b902751af331dc":[0,0,59,15],
-"class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072":[0,0,59,24],
-"class_line.html#a24c6a659148f063c78e080a18f4517a1":[0,0,59,27],
-"class_line.html#a26c69f7f703dca718edc28d5093934a3":[0,0,59,4],
-"class_line.html#a297e12aa8ff0be5d344e245732487bdd":[0,0,59,8],
-"class_line.html#a3eabf6de2af4ee71f72ce4f091c69978":[0,0,59,16],
-"class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e":[0,0,59,26],
-"class_line.html#a51e7bff578cd280464a70200fc323efc":[0,0,59,14],
-"class_line.html#a5f1ac563f1c41bea65eef940bc729fdc":[0,0,59,30],
-"class_line.html#a6d35082da4d30bd432b73b72dd86fadb":[0,0,59,23],
-"class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9":[0,0,59,9],
-"class_line.html#a8eb3f030ead2466e25604abdc15d3009":[0,0,59,13],
-"class_line.html#a978de0ff06b6f57401ade84045e1a55f":[0,0,59,10],
-"class_line.html#a98c23237565bceefac0b107269ffa792":[0,0,59,20],
-"class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0":[0,0,59,6],
-"class_line.html#aa6838e31a8ac7fd55e3bfa088a4dcbb5":[0,0,59,22],
-"class_line.html#aabe85f48d22d92b62257091f48174fac":[0,0,59,2],
-"class_line.html#ab73d74778b5aa9807d21f156d15fadf7":[0,0,59,21],
-"class_line.html#abb812387508a9971570bfa1d38e41041":[0,0,59,28],
-"class_line.html#ac8be7d7136d86830c262280f51b79ea4":[0,0,59,17],
-"class_line.html#aca44a17e46c68ad59060f9a83b400324":[0,0,59,1],
-"class_line.html#acac760d9d67d9c4d007e03592d0e96b4":[0,0,59,19],
-"class_line.html#acc11b8a429d8cdd63ba6803dff5602b3":[0,0,59,0],
-"class_line.html#ad872f1221660ee6b856da5ad762e8046":[0,0,59,3],
-"class_line.html#af9a931bdb7e0693cacae010a19b744e6":[0,0,59,25],
-"class_line.html#afa37b7e5ecc3e208b1c404743e9d1758":[0,0,59,29],
-"class_line.html#afa67498961416e645e0aa5358959ef1d":[0,0,59,18],
-"class_line.html#afc4916268d2a32014e4ab0f8308165a1":[0,0,59,11],
-"class_line_form.html":[0,0,61],
-"class_line_form.html#a2d4f4eb4b8943b09c9dca207fb585bfd":[0,0,61,1],
-"class_line_form.html#a3896cd6a6cc5500fe1935aa9b16d37ce":[0,0,61,0],
-"class_line_form.html#a40650c8cf031e57ad58b3c2b22dad0a1":[0,0,61,5],
-"class_line_form.html#a4b5d7e7696f936260c542dcd60810d38":[0,0,61,3],
-"class_line_form.html#a5b9f183abdea533d0473e59d04cbf431":[0,0,61,6],
-"class_line_form.html#a610f77d5591f5dfbed0f24b301f781c3":[0,0,61,8],
-"class_line_form.html#a7e580cfea0c4b1075941e92e6596161d":[0,0,61,4],
-"class_line_form.html#a892fad419fc3b15a770c7d25a272f570":[0,0,61,2],
-"class_line_form.html#af72bc026476d186fa8e289e388e9b48b":[0,0,61,7],
-"class_line_form_base.html":[0,0,62],
-"class_line_form_base.html#a00214bd206b78fd3a8fa0121e5ebe82e":[0,0,62,17],
-"class_line_form_base.html#a09802bd88add44ae786242f5294f2609":[0,0,62,1],
-"class_line_form_base.html#a099de8044e2d8ac8c2a0678e568f7b03":[0,0,62,38],
-"class_line_form_base.html#a09c4f16f3fcd1388cf004c1fc33517eb":[0,0,62,35],
-"class_line_form_base.html#a0a7e39a334c79efe3e56a35a4338b6c4":[0,0,62,23],
-"class_line_form_base.html#a1218578bfc90029991fe5c661129a3e5":[0,0,62,3],
-"class_line_form_base.html#a18e5c02351619bbde01361457e0f924d":[0,0,62,25],
-"class_line_form_base.html#a1cd88fb45c3d56e135e3776f0578670b":[0,0,62,39],
-"class_line_form_base.html#a1d2d9b874ce50f33594c0eb4e169efb0":[0,0,62,9],
-"class_line_form_base.html#a203522b4c5faed9829f1c1ef5bb7d856":[0,0,62,41],
-"class_line_form_base.html#a237b7bb9470374b859b241284560af19":[0,0,62,29],
-"class_line_form_base.html#a256475d66a5afe9ee22d8f7a47aa1652":[0,0,62,2],
-"class_line_form_base.html#a2cf2cf9916228e7422349d082cd2b897":[0,0,62,37],
-"class_line_form_base.html#a2ec10dc7d10b73e27074de8741472ffc":[0,0,62,57],
-"class_line_form_base.html#a30d2ceb62b13a69797078c5a1046fdf3":[0,0,62,26],
-"class_line_form_base.html#a30db42733e74c95a5ac8fb33a6a5b309":[0,0,62,53],
-"class_line_form_base.html#a346fa89ba532796d25822d4a3b99d0bf":[0,0,62,8],
-"class_line_form_base.html#a3cacfa3ac4e54b23b9ea4b4295bb5869":[0,0,62,21],
-"class_line_form_base.html#a3cdb32d9490fa7c931222b82c8d76f06":[0,0,62,30],
-"class_line_form_base.html#a3f6971139d91cf7ea3ca530cfc5abe60":[0,0,62,31],
-"class_line_form_base.html#a4a177ba61b789ee9746b6a6300938481":[0,0,62,36],
-"class_line_form_base.html#a4b5dd697cee618b60e93a3b20639de69":[0,0,62,46],
-"class_line_form_base.html#a4d757ee09be0bc3064ce011571f5dade":[0,0,62,48],
-"class_line_form_base.html#a4e5cec6ae74e8921d68c02971aba2ce6":[0,0,62,12],
-"class_line_form_base.html#a4eff427e33bd710c2c2698131fcab982":[0,0,62,58],
-"class_line_form_base.html#a4ffe2719ab5877bb014cfd301a8251f8":[0,0,62,65],
-"class_line_form_base.html#a5037f0ab0ff17c8fef9eb6a8eda8c7f3":[0,0,62,67],
-"class_line_form_base.html#a5fa8d503cfc9276f7bab0c9a360826c3":[0,0,62,13],
-"class_line_form_base.html#a63900c58a03059f026f21f2d17694a50":[0,0,62,18],
-"class_line_form_base.html#a670ab48361b388378afa7265065d2772":[0,0,62,11],
-"class_line_form_base.html#a71e0449ead49724187175c9b4cd49442":[0,0,62,55],
-"class_line_form_base.html#a735e9def88fc646947d21e54f4f1c6db":[0,0,62,50],
-"class_line_form_base.html#a74ecdc51dfde2f1423679e924827db2f":[0,0,62,14],
-"class_line_form_base.html#a76b591279f0a28d0d2ea71070d951074":[0,0,62,60],
-"class_line_form_base.html#a7f69ee53d6c444da7c7092b2ca005c2f":[0,0,62,51],
-"class_line_form_base.html#a8849449fd48e7ed19bd1386cfc22b39a":[0,0,62,22],
-"class_line_form_base.html#a965925e6eda9bb2550238c634a380a01":[0,0,62,45],
-"class_line_form_base.html#a99c440454d44272034bdb633306b927e":[0,0,62,62],
-"class_line_form_base.html#a9a47d570f346a28550b55878b9b60b8b":[0,0,62,33],
-"class_line_form_base.html#a9eb76fc567f8309675aea668b33076c1":[0,0,62,19],
-"class_line_form_base.html#aa6b5722ddc3c5769bbd17b7e61ca934f":[0,0,62,32],
-"class_line_form_base.html#aaab121a2c968b45e1cadc1fa4d9b2908":[0,0,62,10],
-"class_line_form_base.html#aae898a9d1cb5c021125dff4a1eac059d":[0,0,62,66],
-"class_line_form_base.html#aaeac2ae5aa2a609802014928a1de5861":[0,0,62,42],
-"class_line_form_base.html#aaec474f0cb50cbf2369912888981cf57":[0,0,62,4],
-"class_line_form_base.html#ab03dd2f3fe79f1e25ff08e62dfcad5c6":[0,0,62,44],
-"class_line_form_base.html#ab53a8775afea108736dfd518cafd0257":[0,0,62,7],
-"class_line_form_base.html#ab67bdd26e51d22e35b3981c7f0ccb934":[0,0,62,6],
-"class_line_form_base.html#abbdd5e5c0c949953b1c62f87f405d23b":[0,0,62,20],
-"class_line_form_base.html#abd05440f261ada2fb7636c9a6ccc6e21":[0,0,62,68],
-"class_line_form_base.html#abfeffc76a7851af380c076f0527da914":[0,0,62,61],
-"class_line_form_base.html#ac524da001d800cc641e693ca852c33b2":[0,0,62,56],
-"class_line_form_base.html#aca66b41f60b423ae026887c98b8e3b49":[0,0,62,47],
-"class_line_form_base.html#acafcc53a4fcb2a9af482fab636e2e0f1":[0,0,62,40],
-"class_line_form_base.html#ad35c9e501520ab9f20f538343989a05a":[0,0,62,54],
-"class_line_form_base.html#ad98d8271f8efbbaff028fc6fbee23c6c":[0,0,62,64],
-"class_line_form_base.html#ade61566890ec5faa3a4b213cde2966c5":[0,0,62,15],
-"class_line_form_base.html#ae1d403904af22ccf0ff2d1ac0a9d13ae":[0,0,62,16],
-"class_line_form_base.html#ae1f84ede0a8aaea8215065add0a65ac3":[0,0,62,27],
-"class_line_form_base.html#ae20df51563b5ec99459080f88da22ca4":[0,0,62,49],
-"class_line_form_base.html#ae36429133dcb0433b18786a9d6d2d157":[0,0,62,52],
-"class_line_form_base.html#aed5639eb90045433cae4bc7f38f5223a":[0,0,62,63],
-"class_line_form_base.html#aed775c5b411a7b08117895137ad36f03":[0,0,62,59],
-"class_line_form_base.html#af2b552fd7b4b58a71e91c498d31e53d8":[0,0,62,5],
-"class_line_form_base.html#af368b73e629369a6d75232bfb49b67b2":[0,0,62,28],
-"class_line_form_base.html#af99e84f70407445abd2d50b9ea9227b1":[0,0,62,0],
-"class_line_form_base.html#afa2dabfbc8d41d852ae2636de1f474c6":[0,0,62,34],
-"class_line_form_base.html#afc764ff277749947f23d9f7926ca304b":[0,0,62,43],
-"class_line_form_base.html#aff93aefe098db7eab3f92ec0f2f70b3f":[0,0,62,24]
+"class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e":[0,0,56,7]
};
diff --git a/docs/doxygen/html/navtreeindex7.js b/docs/doxygen/html/navtreeindex7.js
index 5a77c0a..42498c2 100644
--- a/docs/doxygen/html/navtreeindex7.js
+++ b/docs/doxygen/html/navtreeindex7.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX7 =
{
+"class_limiter_form.html":[0,0,57],
+"class_limiter_form.html#a09752597455d2ec6cb3667d02bf934d3":[0,0,57,0],
+"class_limiter_form.html#a511760d328e526a5f2a7ffec806e4d59":[0,0,57,4],
+"class_limiter_form.html#a7d251ee840262b69434037ec1e715113":[0,0,57,2],
+"class_limiter_form.html#a8195e63f0dcee76259c46ccdb2875e81":[0,0,57,1],
+"class_limiter_form.html#a9bbbc6e83c9e604e62f2f000e9a41d60":[0,0,57,6],
+"class_limiter_form.html#aabf2d0d5bac45cddd80dee0ed77df4d8":[0,0,57,3],
+"class_limiter_form.html#adb4fae237f4911df3e63c99e7280dfe8":[0,0,57,5],
+"class_limiter_form_base.html":[0,0,58],
+"class_limiter_form_base.html#a191664a531538233edf3aa7c4432583b":[0,0,58,8],
+"class_limiter_form_base.html#a1afd53788b2dfa94cf908c639f9bc632":[0,0,58,18],
+"class_limiter_form_base.html#a39f50dee6cc270be5c21af4dfe0d98f6":[0,0,58,10],
+"class_limiter_form_base.html#a3aa095dc672bdbfd106cc539a3b5e4a0":[0,0,58,14],
+"class_limiter_form_base.html#a3b229b427923670555332825e8dd8e8e":[0,0,58,3],
+"class_limiter_form_base.html#a3c5e871cb238fbcd7065ee2676c6ba91":[0,0,58,13],
+"class_limiter_form_base.html#a50d5878344e634662470fc2f802528fa":[0,0,58,0],
+"class_limiter_form_base.html#a58056787775c23456f2b95a0cb1543e3":[0,0,58,19],
+"class_limiter_form_base.html#a88c42dd3f6e7123caa47ac4459cb1b18":[0,0,58,2],
+"class_limiter_form_base.html#aa129024adb8eedaacf3e81564df2cf38":[0,0,58,4],
+"class_limiter_form_base.html#aa80b8dbc483a971425e76f497cc0f6b6":[0,0,58,11],
+"class_limiter_form_base.html#aaa967f3b7a80dc872ff50e002dcc7074":[0,0,58,12],
+"class_limiter_form_base.html#ab521840a4a94533af12bc7731d288bc5":[0,0,58,6],
+"class_limiter_form_base.html#ab52749fadfd077fcba9588b850c81c42":[0,0,58,17],
+"class_limiter_form_base.html#abf72980e367c4f63ad7b819856bf689d":[0,0,58,9],
+"class_limiter_form_base.html#abfa428980b4ae9a76e5f969f3ab09a65":[0,0,58,16],
+"class_limiter_form_base.html#acc5c3953281a3a10b01ac90e8e296653":[0,0,58,7],
+"class_limiter_form_base.html#ad76205083d27b1aa4bd122c1da863eb7":[0,0,58,15],
+"class_limiter_form_base.html#af08f68c2f59dc29a36e0c7213ab6a92b":[0,0,58,5],
+"class_limiter_form_base.html#aff9d3bd76d9f1ae53628cf46ced7f7c0":[0,0,58,1],
+"class_line.html":[0,0,59],
+"class_line.html#a0222046f2138af61b25f00f020e9f61d":[0,0,59,12],
+"class_line.html#a046a7b2ebff50f237f73dbc182f7ff6f":[0,0,59,5],
+"class_line.html#a05eb3761f198a058045f85d6e685ca97":[0,0,59,7],
+"class_line.html#a125581fc6d21c83565b902751af331dc":[0,0,59,15],
+"class_line.html#a1f3ef94716c52a357ecbcbdf00b0e072":[0,0,59,24],
+"class_line.html#a24c6a659148f063c78e080a18f4517a1":[0,0,59,27],
+"class_line.html#a26c69f7f703dca718edc28d5093934a3":[0,0,59,4],
+"class_line.html#a297e12aa8ff0be5d344e245732487bdd":[0,0,59,8],
+"class_line.html#a3eabf6de2af4ee71f72ce4f091c69978":[0,0,59,16],
+"class_line.html#a400c8d0397ecdfe6c0a8380ee6bc7e1e":[0,0,59,26],
+"class_line.html#a51e7bff578cd280464a70200fc323efc":[0,0,59,14],
+"class_line.html#a5f1ac563f1c41bea65eef940bc729fdc":[0,0,59,30],
+"class_line.html#a6d35082da4d30bd432b73b72dd86fadb":[0,0,59,23],
+"class_line.html#a7c72fc585eb96bf9565cca0ce300cfd9":[0,0,59,9],
+"class_line.html#a8eb3f030ead2466e25604abdc15d3009":[0,0,59,13],
+"class_line.html#a978de0ff06b6f57401ade84045e1a55f":[0,0,59,10],
+"class_line.html#a98c23237565bceefac0b107269ffa792":[0,0,59,20],
+"class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0":[0,0,59,6],
+"class_line.html#aa6838e31a8ac7fd55e3bfa088a4dcbb5":[0,0,59,22],
+"class_line.html#aabe85f48d22d92b62257091f48174fac":[0,0,59,2],
+"class_line.html#ab73d74778b5aa9807d21f156d15fadf7":[0,0,59,21],
+"class_line.html#abb812387508a9971570bfa1d38e41041":[0,0,59,28],
+"class_line.html#ac8be7d7136d86830c262280f51b79ea4":[0,0,59,17],
+"class_line.html#aca44a17e46c68ad59060f9a83b400324":[0,0,59,1],
+"class_line.html#acac760d9d67d9c4d007e03592d0e96b4":[0,0,59,19],
+"class_line.html#acc11b8a429d8cdd63ba6803dff5602b3":[0,0,59,0],
+"class_line.html#ad872f1221660ee6b856da5ad762e8046":[0,0,59,3],
+"class_line.html#af9a931bdb7e0693cacae010a19b744e6":[0,0,59,25],
+"class_line.html#afa37b7e5ecc3e208b1c404743e9d1758":[0,0,59,29],
+"class_line.html#afa67498961416e645e0aa5358959ef1d":[0,0,59,18],
+"class_line.html#afc4916268d2a32014e4ab0f8308165a1":[0,0,59,11],
+"class_line_form.html":[0,0,61],
+"class_line_form.html#a2d4f4eb4b8943b09c9dca207fb585bfd":[0,0,61,1],
+"class_line_form.html#a3896cd6a6cc5500fe1935aa9b16d37ce":[0,0,61,0],
+"class_line_form.html#a40650c8cf031e57ad58b3c2b22dad0a1":[0,0,61,5],
+"class_line_form.html#a4b5d7e7696f936260c542dcd60810d38":[0,0,61,3],
+"class_line_form.html#a5b9f183abdea533d0473e59d04cbf431":[0,0,61,6],
+"class_line_form.html#a610f77d5591f5dfbed0f24b301f781c3":[0,0,61,8],
+"class_line_form.html#a7e580cfea0c4b1075941e92e6596161d":[0,0,61,4],
+"class_line_form.html#a892fad419fc3b15a770c7d25a272f570":[0,0,61,2],
+"class_line_form.html#af72bc026476d186fa8e289e388e9b48b":[0,0,61,7],
+"class_line_form_base.html":[0,0,62],
+"class_line_form_base.html#a00214bd206b78fd3a8fa0121e5ebe82e":[0,0,62,17],
+"class_line_form_base.html#a09802bd88add44ae786242f5294f2609":[0,0,62,1],
+"class_line_form_base.html#a099de8044e2d8ac8c2a0678e568f7b03":[0,0,62,38],
+"class_line_form_base.html#a09c4f16f3fcd1388cf004c1fc33517eb":[0,0,62,35],
+"class_line_form_base.html#a0a7e39a334c79efe3e56a35a4338b6c4":[0,0,62,23],
+"class_line_form_base.html#a1218578bfc90029991fe5c661129a3e5":[0,0,62,3],
+"class_line_form_base.html#a18e5c02351619bbde01361457e0f924d":[0,0,62,25],
+"class_line_form_base.html#a1cd88fb45c3d56e135e3776f0578670b":[0,0,62,39],
+"class_line_form_base.html#a1d2d9b874ce50f33594c0eb4e169efb0":[0,0,62,9],
+"class_line_form_base.html#a203522b4c5faed9829f1c1ef5bb7d856":[0,0,62,41],
+"class_line_form_base.html#a237b7bb9470374b859b241284560af19":[0,0,62,29],
+"class_line_form_base.html#a256475d66a5afe9ee22d8f7a47aa1652":[0,0,62,2],
+"class_line_form_base.html#a2cf2cf9916228e7422349d082cd2b897":[0,0,62,37],
+"class_line_form_base.html#a2ec10dc7d10b73e27074de8741472ffc":[0,0,62,57],
+"class_line_form_base.html#a30d2ceb62b13a69797078c5a1046fdf3":[0,0,62,26],
+"class_line_form_base.html#a30db42733e74c95a5ac8fb33a6a5b309":[0,0,62,53],
+"class_line_form_base.html#a346fa89ba532796d25822d4a3b99d0bf":[0,0,62,8],
+"class_line_form_base.html#a3cacfa3ac4e54b23b9ea4b4295bb5869":[0,0,62,21],
+"class_line_form_base.html#a3cdb32d9490fa7c931222b82c8d76f06":[0,0,62,30],
+"class_line_form_base.html#a3f6971139d91cf7ea3ca530cfc5abe60":[0,0,62,31],
+"class_line_form_base.html#a4a177ba61b789ee9746b6a6300938481":[0,0,62,36],
+"class_line_form_base.html#a4b5dd697cee618b60e93a3b20639de69":[0,0,62,46],
+"class_line_form_base.html#a4d757ee09be0bc3064ce011571f5dade":[0,0,62,48],
+"class_line_form_base.html#a4e5cec6ae74e8921d68c02971aba2ce6":[0,0,62,12],
+"class_line_form_base.html#a4eff427e33bd710c2c2698131fcab982":[0,0,62,58],
+"class_line_form_base.html#a4ffe2719ab5877bb014cfd301a8251f8":[0,0,62,65],
+"class_line_form_base.html#a5037f0ab0ff17c8fef9eb6a8eda8c7f3":[0,0,62,67],
+"class_line_form_base.html#a5fa8d503cfc9276f7bab0c9a360826c3":[0,0,62,13],
+"class_line_form_base.html#a63900c58a03059f026f21f2d17694a50":[0,0,62,18],
+"class_line_form_base.html#a670ab48361b388378afa7265065d2772":[0,0,62,11],
+"class_line_form_base.html#a71e0449ead49724187175c9b4cd49442":[0,0,62,55],
+"class_line_form_base.html#a735e9def88fc646947d21e54f4f1c6db":[0,0,62,50],
+"class_line_form_base.html#a74ecdc51dfde2f1423679e924827db2f":[0,0,62,14],
+"class_line_form_base.html#a76b591279f0a28d0d2ea71070d951074":[0,0,62,60],
+"class_line_form_base.html#a7f69ee53d6c444da7c7092b2ca005c2f":[0,0,62,51],
+"class_line_form_base.html#a8849449fd48e7ed19bd1386cfc22b39a":[0,0,62,22],
+"class_line_form_base.html#a965925e6eda9bb2550238c634a380a01":[0,0,62,45],
+"class_line_form_base.html#a99c440454d44272034bdb633306b927e":[0,0,62,62],
+"class_line_form_base.html#a9a47d570f346a28550b55878b9b60b8b":[0,0,62,33],
+"class_line_form_base.html#a9eb76fc567f8309675aea668b33076c1":[0,0,62,19],
+"class_line_form_base.html#aa6b5722ddc3c5769bbd17b7e61ca934f":[0,0,62,32],
+"class_line_form_base.html#aaab121a2c968b45e1cadc1fa4d9b2908":[0,0,62,10],
+"class_line_form_base.html#aae898a9d1cb5c021125dff4a1eac059d":[0,0,62,66],
+"class_line_form_base.html#aaeac2ae5aa2a609802014928a1de5861":[0,0,62,42],
+"class_line_form_base.html#aaec474f0cb50cbf2369912888981cf57":[0,0,62,4],
+"class_line_form_base.html#ab03dd2f3fe79f1e25ff08e62dfcad5c6":[0,0,62,44],
+"class_line_form_base.html#ab53a8775afea108736dfd518cafd0257":[0,0,62,7],
+"class_line_form_base.html#ab67bdd26e51d22e35b3981c7f0ccb934":[0,0,62,6],
+"class_line_form_base.html#abbdd5e5c0c949953b1c62f87f405d23b":[0,0,62,20],
+"class_line_form_base.html#abd05440f261ada2fb7636c9a6ccc6e21":[0,0,62,68],
+"class_line_form_base.html#abfeffc76a7851af380c076f0527da914":[0,0,62,61],
+"class_line_form_base.html#ac524da001d800cc641e693ca852c33b2":[0,0,62,56],
+"class_line_form_base.html#aca66b41f60b423ae026887c98b8e3b49":[0,0,62,47],
+"class_line_form_base.html#acafcc53a4fcb2a9af482fab636e2e0f1":[0,0,62,40],
+"class_line_form_base.html#ad35c9e501520ab9f20f538343989a05a":[0,0,62,54],
+"class_line_form_base.html#ad98d8271f8efbbaff028fc6fbee23c6c":[0,0,62,64],
+"class_line_form_base.html#ade61566890ec5faa3a4b213cde2966c5":[0,0,62,15],
+"class_line_form_base.html#ae1d403904af22ccf0ff2d1ac0a9d13ae":[0,0,62,16],
+"class_line_form_base.html#ae1f84ede0a8aaea8215065add0a65ac3":[0,0,62,27],
+"class_line_form_base.html#ae20df51563b5ec99459080f88da22ca4":[0,0,62,49],
+"class_line_form_base.html#ae36429133dcb0433b18786a9d6d2d157":[0,0,62,52],
+"class_line_form_base.html#aed5639eb90045433cae4bc7f38f5223a":[0,0,62,63],
+"class_line_form_base.html#aed775c5b411a7b08117895137ad36f03":[0,0,62,59],
+"class_line_form_base.html#af2b552fd7b4b58a71e91c498d31e53d8":[0,0,62,5],
+"class_line_form_base.html#af368b73e629369a6d75232bfb49b67b2":[0,0,62,28],
+"class_line_form_base.html#af99e84f70407445abd2d50b9ea9227b1":[0,0,62,0],
+"class_line_form_base.html#afa2dabfbc8d41d852ae2636de1f474c6":[0,0,62,34],
+"class_line_form_base.html#afc764ff277749947f23d9f7926ca304b":[0,0,62,43],
+"class_line_form_base.html#aff93aefe098db7eab3f92ec0f2f70b3f":[0,0,62,24],
"class_load.html":[0,0,63],
"class_load.html#a00acfbf7dc907e5de79ceb4803632279":[0,0,63,9],
"class_load.html#a00ef3c6ae69dbd45e96f696dfb76f013":[0,0,63,8],
@@ -108,146 +249,5 @@ var NAVTREEINDEX7 =
"class_main_frame.html#a3519cbc623ee5b589421012b749816bd":[0,0,69,22],
"class_main_frame.html#a38697929eab5835946f68dc7680fee5a":[0,0,69,46],
"class_main_frame.html#a3c62d86a7c8d207032d4f7f67bf85696":[0,0,69,12],
-"class_main_frame.html#a3f8d2ccbf744a7159259da89cf7befb0":[0,0,69,18],
-"class_main_frame.html#a4a1c9ab859e5fd8a4c76ea7e10276181":[0,0,69,16],
-"class_main_frame.html#a51e7ed757e3a3b28f3043ec4e634bbc6":[0,0,69,29],
-"class_main_frame.html#a5e86880ce3526fdcde3b7139a497480c":[0,0,69,15],
-"class_main_frame.html#a667b44053cae174a361cfd21124ef995":[0,0,69,0],
-"class_main_frame.html#a66d0737f956dafa8b68a3abae954961a":[0,0,69,14],
-"class_main_frame.html#a821abe42b5a3334e4983849338f32b87":[0,0,69,7],
-"class_main_frame.html#a864ac698cedcf5eece459cba8bdf30ae":[0,0,69,6],
-"class_main_frame.html#a865a5828138dc9b559fcb0ad79c251a3":[0,0,69,42],
-"class_main_frame.html#a88c766e242fb1efba27f0f0d2fb0a207":[0,0,69,45],
-"class_main_frame.html#a8981e73c31352c5666b19bdd65283128":[0,0,69,35],
-"class_main_frame.html#a8a12d2b7f7087d4da1ed25b3cf3c77b7":[0,0,69,20],
-"class_main_frame.html#a9051b04100741c40b30ec71e0684b9b8":[0,0,69,25],
-"class_main_frame.html#a9a6c94b9be7330b54ff983dab6d69d01":[0,0,69,39],
-"class_main_frame.html#a9c882f6ee74c38423595a1ee8a83b081":[0,0,69,21],
-"class_main_frame.html#aa30782a1fa801cf46cb461e388d57eb4":[0,0,69,43],
-"class_main_frame.html#aa4086cd9eea4f143744af74a24f4905f":[0,0,69,38],
-"class_main_frame.html#aade761601af16dadcbf24cd2a4e8d289":[0,0,69,3],
-"class_main_frame.html#abe97a8d22d4604390a83664fac5f4c79":[0,0,69,5],
-"class_main_frame.html#ac2616c3c46dcfe32c91e4ac35efc7710":[0,0,69,24],
-"class_main_frame.html#ac5d3dc03594f76ed6e5fd1ccecfc5b0b":[0,0,69,1],
-"class_main_frame.html#ad1475f1bb8a05169b3d3d462008c887b":[0,0,69,4],
-"class_main_frame.html#ad15ed016f2af7c23737cabb12eee172d":[0,0,69,28],
-"class_main_frame.html#adfba2e2bca63d8ee779a0e4cf00a6de0":[0,0,69,26],
-"class_main_frame.html#ae036a245cf66988cc9843518058e42a1":[0,0,69,40],
-"class_main_frame.html#ae12044cdbd540650c33727c0b00f43a6":[0,0,69,34],
-"class_main_frame.html#ae1828bcf3eb5dc93d87d15c0b7fe2c00":[0,0,69,32],
-"class_main_frame.html#ae389c2b609acc84043bdba60ee50429b":[0,0,69,13],
-"class_main_frame.html#ae5b67bc97c6f0947914fc54e30d4870c":[0,0,69,30],
-"class_main_frame.html#ae9b83e83f45433f286be9ba801e677b2":[0,0,69,19],
-"class_main_frame.html#af1f91fe7196afd71f28a9d0c6bce9b0b":[0,0,69,37],
-"class_main_frame.html#af323a2d80574c5971479e07c806ab802":[0,0,69,17],
-"class_main_frame.html#af5d801e4c8d27bddf3f821499bac5c43":[0,0,69,11],
-"class_main_frame.html#affafa8bbfeb03218543c30f633222049":[0,0,69,23],
-"class_main_frame_base.html":[0,0,70],
-"class_main_frame_base.html#a0c5ddd0a8c40a6365aafcd177ce2e30d":[0,0,70,40],
-"class_main_frame_base.html#a10b1f32d30bd2fe0ce3544bea85558fa":[0,0,70,66],
-"class_main_frame_base.html#a15ea9168f20c0dbe5aa47bb32c7a87a6":[0,0,70,82],
-"class_main_frame_base.html#a1a265795b31bd7441a171e1573c9d380":[0,0,70,61],
-"class_main_frame_base.html#a1b9aeee7c4b805c99662637def269711":[0,0,70,45],
-"class_main_frame_base.html#a1c033d9812ffc0c9bd01b5f005e7ffb3":[0,0,70,44],
-"class_main_frame_base.html#a1d6d70e15d0f989976e455a64f2566fc":[0,0,70,38],
-"class_main_frame_base.html#a23338767c35eb467b193b627202e12c9":[0,0,70,79],
-"class_main_frame_base.html#a26e1b02a7ea70579c380bdd6c4dc31a7":[0,0,70,55],
-"class_main_frame_base.html#a2ecc2370aadbece166b094af17f5dcf8":[0,0,70,83],
-"class_main_frame_base.html#a3457f936ba83822397c8d4f4a84df5fa":[0,0,70,53],
-"class_main_frame_base.html#a352ec58f623a1a85f1d5316b6cb9710b":[0,0,70,81],
-"class_main_frame_base.html#a40a0e78731b78265becded185c5a275e":[0,0,70,62],
-"class_main_frame_base.html#a40afd7ce469ac56b7bcb2a348455016a":[0,0,70,70],
-"class_main_frame_base.html#a4866f5f2dfda1997d65b71c4462410ba":[0,0,70,56],
-"class_main_frame_base.html#a4e8d29366f393bd6e7a5eb748a831576":[0,0,70,91],
-"class_main_frame_base.html#a55524b4e3cbaf7250798156f902b2e99":[0,0,70,64],
-"class_main_frame_base.html#a5c97dfc2c76cbbcb40fb6dac657586e2":[0,0,70,78],
-"class_main_frame_base.html#a62c676a2ecb466e508bc00f27dcc3bf2":[0,0,70,67],
-"class_main_frame_base.html#a637eec7668f51a13223a394c55a633cc":[0,0,70,34],
-"class_main_frame_base.html#a6a612fb2db72258c900b81c81de60941":[0,0,70,65],
-"class_main_frame_base.html#a6dec28080c2aa3ac073eec161ed833d6":[0,0,70,77],
-"class_main_frame_base.html#a70cc8f142845c4f7042119f3f7ed7307":[0,0,70,85],
-"class_main_frame_base.html#a7204ca3854b562f5df4b8735b2a16f9c":[0,0,70,51],
-"class_main_frame_base.html#a736257ebafdffd5b249c7b4e50fab619":[0,0,70,57],
-"class_main_frame_base.html#a7ac299975c041187b3be925d8423ee55":[0,0,70,50],
-"class_main_frame_base.html#a7f28bf5e906cb1258bac365d4f92cd0b":[0,0,70,86],
-"class_main_frame_base.html#a80b0b22053a0a0e3baad864237d32654":[0,0,70,48],
-"class_main_frame_base.html#a81f31e1f089b59ad4e6c996d4f45294e":[0,0,70,75],
-"class_main_frame_base.html#a869092abc9913bb995eb36ec69db0405":[0,0,70,76],
-"class_main_frame_base.html#a8d11fbafd4b593c96595f6f72e8dbe3c":[0,0,70,63],
-"class_main_frame_base.html#a8ee60616644d83057b7d064045a21b3a":[0,0,70,46],
-"class_main_frame_base.html#a916973a33e034aa089f3fc3eaccb2b0f":[0,0,70,68],
-"class_main_frame_base.html#a92a63880d952773d06a513980831eee1":[0,0,70,73],
-"class_main_frame_base.html#a98499bbee4f7e956a801bbdc64da44d4":[0,0,70,37],
-"class_main_frame_base.html#a997c8c6b5a5bf8f8272aa7c3def76b24":[0,0,70,59],
-"class_main_frame_base.html#a9aebadcb48bb76c12718c6b6dc6b6eb5":[0,0,70,84],
-"class_main_frame_base.html#aa0c7c14ec4183086cf42fe19af0bb2eb":[0,0,70,89],
-"class_main_frame_base.html#aa142c5d3d679147e0d63f00e1d2ca2e1":[0,0,70,36],
-"class_main_frame_base.html#aa3055bf5e73ba3ef53428ec5a97d727b":[0,0,70,74],
-"class_main_frame_base.html#aa7749e41daf7e49439364126b631b234":[0,0,70,87],
-"class_main_frame_base.html#aa797493c5fec22bd6c4c01a145956df2":[0,0,70,52],
-"class_main_frame_base.html#aab2e491a8e460ef817f89c2fda8969d4":[0,0,70,43],
-"class_main_frame_base.html#aac3e83244b862fe153b33e9d5622b98b":[0,0,70,80],
-"class_main_frame_base.html#ab7bf6daa1451eb32101dc414b0e69a0a":[0,0,70,69],
-"class_main_frame_base.html#abec097ede52d8293f39a18d362b02ae0":[0,0,70,54],
-"class_main_frame_base.html#ac35167f59ba693d78eb899f2edd11d86":[0,0,70,42],
-"class_main_frame_base.html#ac57d27795bc713ac686f9e87e6d98387":[0,0,70,72],
-"class_main_frame_base.html#ace56e2062582f17fc3c971405bd59337":[0,0,70,39],
-"class_main_frame_base.html#ad054e4149f42d383bc1c402f6a54501c":[0,0,70,49],
-"class_main_frame_base.html#ad37f3f62f657f2e034200d45e855a948":[0,0,70,33],
-"class_main_frame_base.html#ad9b953037729ab0529f9dc5338729315":[0,0,70,41],
-"class_main_frame_base.html#ae279f9d64fb6bcf671f565a2e71b2e94":[0,0,70,47],
-"class_main_frame_base.html#ae32925edbbd4ab14b2ce775b733b7c50":[0,0,70,35],
-"class_main_frame_base.html#ae5b3009fc106d75e157836a6641f63a1":[0,0,70,58],
-"class_main_frame_base.html#ae5e2dafad6a4f61d11a33ec190cef57c":[0,0,70,60],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a05e92cb2567285f28c79eb500215b7da":[0,0,70,14],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a12f9d6b6da5ab7daef64309af56eb254":[0,0,70,27],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a14d1f40da5fe6d2885f81edc7bb34a5b":[0,0,70,4],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a17d8645af74374ed37cc377454903efe":[0,0,70,11],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a1a8745483f979ee20127462baef529b8":[0,0,70,9],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a22b195931c8f14f839544d5c76519e96":[0,0,70,28],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a274e87b2f0e70ab82e39438670e075d9":[0,0,70,26],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a2cedd9fbdc0111a82258040845814f4e":[0,0,70,1],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a2f9639a5f09ac7227dda3b1cbe0b83c4":[0,0,70,24],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a5bbe17a7648dedf17da9d9b246dd8948":[0,0,70,22],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a74900bf0113caf1fb845fe88711e29cd":[0,0,70,29],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a763d06068082580a6aa29c8e7d850462":[0,0,70,18],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a7d26b27353b73836e009a8fb63ea64f0":[0,0,70,6],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a7ddcce5a0fc3fd28e5a143d74d44e22b":[0,0,70,0],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a828cbb4fbfb1dbdc492ec4c6057e047d":[0,0,70,30],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a8ba61bef22ba14e5d33ff6152a52032c":[0,0,70,2],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a9bb260567cffe56b9db58274e4bac47c":[0,0,70,16],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a9f01085677ac59c45a00f38ba012b606":[0,0,70,7],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aa6376080d848cfd62d01395cb541bfb1":[0,0,70,23],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aac83b781c09c5abd012c0f5b7c06f87e":[0,0,70,25],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab63bbde4ed29da3598c017b6cfd25c75":[0,0,70,13],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab742a9cc46431af12db375ec8b443729":[0,0,70,15],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab80637a65b2e8941cd24044495ac674f":[0,0,70,21],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ac853a9f30f75ebfb6065a99771b6fa27":[0,0,70,3],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ad219a0870575cfe02af28cec88f11a79":[0,0,70,5],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9adc4cdd714264b181007029985e72285a":[0,0,70,20],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ae2192305b1be1c090a4db25a341a8aa2":[0,0,70,8],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ae67852eba853e7a9889a21dfc6bca52b":[0,0,70,12],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aeb2127b1fd05627a82050c372e0d3164":[0,0,70,31],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aed3da5b755508446a072304c74b46988":[0,0,70,19],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9afbc8518ac655f8467de20390453c2fe7":[0,0,70,17],
-"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9afef2cc3e901fde0607cafcd6d9ebaac6":[0,0,70,10],
-"class_main_frame_base.html#aea62e96627cad518bdcea6002f4827a1":[0,0,70,71],
-"class_main_frame_base.html#aea7b22f0aacbc7a2da7788eb2f1aef5c":[0,0,70,90],
-"class_main_frame_base.html#af1e52e93085b8b51e2a4d4f3bf882f91":[0,0,70,88],
-"class_main_frame_base.html#af5030bc2b188dccb90a48ebfecd37366":[0,0,70,32],
-"class_multiplier.html":[0,0,71],
-"class_multiplier.html#a3b8da713f480cb1ed6b829f4d5a584d3":[0,0,71,1],
-"class_multiplier.html#a43398a07b130b819c229e1512066456c":[0,0,71,9],
-"class_multiplier.html#a48166896d667216da146a0b25766f867":[0,0,71,0],
-"class_multiplier.html#a4fa1206b47c626930db753a70e01680d":[0,0,71,7],
-"class_multiplier.html#a9d6101ab83aa92316efdb4d26b715d4c":[0,0,71,8],
-"class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77":[0,0,71,4],
-"class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca":[0,0,71,5],
-"class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18":[0,0,71,2],
-"class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1":[0,0,71,6],
-"class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3":[0,0,71,3],
-"class_node.html":[0,0,72],
-"class_node.html#a00ac0295e2572c4cca473e92860c6f66":[0,0,72,18],
-"class_node.html#a087c2fddbbedfc748fbfbb35ad8b235b":[0,0,72,5],
-"class_node.html#a0a9fcf01abc356e34d686aa753e43b8d":[0,0,72,10]
+"class_main_frame.html#a3f8d2ccbf744a7159259da89cf7befb0":[0,0,69,18]
};
diff --git a/docs/doxygen/html/navtreeindex8.js b/docs/doxygen/html/navtreeindex8.js
index 9543256..aacd91b 100644
--- a/docs/doxygen/html/navtreeindex8.js
+++ b/docs/doxygen/html/navtreeindex8.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX8 =
{
+"class_main_frame.html#a4a1c9ab859e5fd8a4c76ea7e10276181":[0,0,69,16],
+"class_main_frame.html#a51e7ed757e3a3b28f3043ec4e634bbc6":[0,0,69,29],
+"class_main_frame.html#a5e86880ce3526fdcde3b7139a497480c":[0,0,69,15],
+"class_main_frame.html#a667b44053cae174a361cfd21124ef995":[0,0,69,0],
+"class_main_frame.html#a66d0737f956dafa8b68a3abae954961a":[0,0,69,14],
+"class_main_frame.html#a821abe42b5a3334e4983849338f32b87":[0,0,69,7],
+"class_main_frame.html#a864ac698cedcf5eece459cba8bdf30ae":[0,0,69,6],
+"class_main_frame.html#a865a5828138dc9b559fcb0ad79c251a3":[0,0,69,42],
+"class_main_frame.html#a88c766e242fb1efba27f0f0d2fb0a207":[0,0,69,45],
+"class_main_frame.html#a8981e73c31352c5666b19bdd65283128":[0,0,69,35],
+"class_main_frame.html#a8a12d2b7f7087d4da1ed25b3cf3c77b7":[0,0,69,20],
+"class_main_frame.html#a9051b04100741c40b30ec71e0684b9b8":[0,0,69,25],
+"class_main_frame.html#a9a6c94b9be7330b54ff983dab6d69d01":[0,0,69,39],
+"class_main_frame.html#a9c882f6ee74c38423595a1ee8a83b081":[0,0,69,21],
+"class_main_frame.html#aa30782a1fa801cf46cb461e388d57eb4":[0,0,69,43],
+"class_main_frame.html#aa4086cd9eea4f143744af74a24f4905f":[0,0,69,38],
+"class_main_frame.html#aade761601af16dadcbf24cd2a4e8d289":[0,0,69,3],
+"class_main_frame.html#abe97a8d22d4604390a83664fac5f4c79":[0,0,69,5],
+"class_main_frame.html#ac2616c3c46dcfe32c91e4ac35efc7710":[0,0,69,24],
+"class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8":[0,0,69,1],
+"class_main_frame.html#ad1475f1bb8a05169b3d3d462008c887b":[0,0,69,4],
+"class_main_frame.html#ad15ed016f2af7c23737cabb12eee172d":[0,0,69,28],
+"class_main_frame.html#adfba2e2bca63d8ee779a0e4cf00a6de0":[0,0,69,26],
+"class_main_frame.html#ae036a245cf66988cc9843518058e42a1":[0,0,69,40],
+"class_main_frame.html#ae12044cdbd540650c33727c0b00f43a6":[0,0,69,34],
+"class_main_frame.html#ae1828bcf3eb5dc93d87d15c0b7fe2c00":[0,0,69,32],
+"class_main_frame.html#ae389c2b609acc84043bdba60ee50429b":[0,0,69,13],
+"class_main_frame.html#ae5b67bc97c6f0947914fc54e30d4870c":[0,0,69,30],
+"class_main_frame.html#ae9b83e83f45433f286be9ba801e677b2":[0,0,69,19],
+"class_main_frame.html#af1f91fe7196afd71f28a9d0c6bce9b0b":[0,0,69,37],
+"class_main_frame.html#af323a2d80574c5971479e07c806ab802":[0,0,69,17],
+"class_main_frame.html#af5d801e4c8d27bddf3f821499bac5c43":[0,0,69,11],
+"class_main_frame.html#affafa8bbfeb03218543c30f633222049":[0,0,69,23],
+"class_main_frame_base.html":[0,0,70],
+"class_main_frame_base.html#a0c5ddd0a8c40a6365aafcd177ce2e30d":[0,0,70,40],
+"class_main_frame_base.html#a10b1f32d30bd2fe0ce3544bea85558fa":[0,0,70,66],
+"class_main_frame_base.html#a15ea9168f20c0dbe5aa47bb32c7a87a6":[0,0,70,82],
+"class_main_frame_base.html#a1a265795b31bd7441a171e1573c9d380":[0,0,70,61],
+"class_main_frame_base.html#a1b9aeee7c4b805c99662637def269711":[0,0,70,45],
+"class_main_frame_base.html#a1c033d9812ffc0c9bd01b5f005e7ffb3":[0,0,70,44],
+"class_main_frame_base.html#a1d6d70e15d0f989976e455a64f2566fc":[0,0,70,38],
+"class_main_frame_base.html#a23338767c35eb467b193b627202e12c9":[0,0,70,79],
+"class_main_frame_base.html#a26e1b02a7ea70579c380bdd6c4dc31a7":[0,0,70,55],
+"class_main_frame_base.html#a2ecc2370aadbece166b094af17f5dcf8":[0,0,70,83],
+"class_main_frame_base.html#a3457f936ba83822397c8d4f4a84df5fa":[0,0,70,53],
+"class_main_frame_base.html#a352ec58f623a1a85f1d5316b6cb9710b":[0,0,70,81],
+"class_main_frame_base.html#a40a0e78731b78265becded185c5a275e":[0,0,70,62],
+"class_main_frame_base.html#a40afd7ce469ac56b7bcb2a348455016a":[0,0,70,70],
+"class_main_frame_base.html#a4866f5f2dfda1997d65b71c4462410ba":[0,0,70,56],
+"class_main_frame_base.html#a4e8d29366f393bd6e7a5eb748a831576":[0,0,70,91],
+"class_main_frame_base.html#a55524b4e3cbaf7250798156f902b2e99":[0,0,70,64],
+"class_main_frame_base.html#a5c97dfc2c76cbbcb40fb6dac657586e2":[0,0,70,78],
+"class_main_frame_base.html#a62c676a2ecb466e508bc00f27dcc3bf2":[0,0,70,67],
+"class_main_frame_base.html#a637eec7668f51a13223a394c55a633cc":[0,0,70,34],
+"class_main_frame_base.html#a6a612fb2db72258c900b81c81de60941":[0,0,70,65],
+"class_main_frame_base.html#a6dec28080c2aa3ac073eec161ed833d6":[0,0,70,77],
+"class_main_frame_base.html#a70cc8f142845c4f7042119f3f7ed7307":[0,0,70,85],
+"class_main_frame_base.html#a7204ca3854b562f5df4b8735b2a16f9c":[0,0,70,51],
+"class_main_frame_base.html#a736257ebafdffd5b249c7b4e50fab619":[0,0,70,57],
+"class_main_frame_base.html#a7ac299975c041187b3be925d8423ee55":[0,0,70,50],
+"class_main_frame_base.html#a7f28bf5e906cb1258bac365d4f92cd0b":[0,0,70,86],
+"class_main_frame_base.html#a80b0b22053a0a0e3baad864237d32654":[0,0,70,48],
+"class_main_frame_base.html#a81f31e1f089b59ad4e6c996d4f45294e":[0,0,70,75],
+"class_main_frame_base.html#a869092abc9913bb995eb36ec69db0405":[0,0,70,76],
+"class_main_frame_base.html#a8d11fbafd4b593c96595f6f72e8dbe3c":[0,0,70,63],
+"class_main_frame_base.html#a8ee60616644d83057b7d064045a21b3a":[0,0,70,46],
+"class_main_frame_base.html#a916973a33e034aa089f3fc3eaccb2b0f":[0,0,70,68],
+"class_main_frame_base.html#a92a63880d952773d06a513980831eee1":[0,0,70,73],
+"class_main_frame_base.html#a98499bbee4f7e956a801bbdc64da44d4":[0,0,70,37],
+"class_main_frame_base.html#a997c8c6b5a5bf8f8272aa7c3def76b24":[0,0,70,59],
+"class_main_frame_base.html#a9aebadcb48bb76c12718c6b6dc6b6eb5":[0,0,70,84],
+"class_main_frame_base.html#aa0c7c14ec4183086cf42fe19af0bb2eb":[0,0,70,89],
+"class_main_frame_base.html#aa142c5d3d679147e0d63f00e1d2ca2e1":[0,0,70,36],
+"class_main_frame_base.html#aa3055bf5e73ba3ef53428ec5a97d727b":[0,0,70,74],
+"class_main_frame_base.html#aa7749e41daf7e49439364126b631b234":[0,0,70,87],
+"class_main_frame_base.html#aa797493c5fec22bd6c4c01a145956df2":[0,0,70,52],
+"class_main_frame_base.html#aab2e491a8e460ef817f89c2fda8969d4":[0,0,70,43],
+"class_main_frame_base.html#aac3e83244b862fe153b33e9d5622b98b":[0,0,70,80],
+"class_main_frame_base.html#ab7bf6daa1451eb32101dc414b0e69a0a":[0,0,70,69],
+"class_main_frame_base.html#abec097ede52d8293f39a18d362b02ae0":[0,0,70,54],
+"class_main_frame_base.html#ac35167f59ba693d78eb899f2edd11d86":[0,0,70,42],
+"class_main_frame_base.html#ac57d27795bc713ac686f9e87e6d98387":[0,0,70,72],
+"class_main_frame_base.html#ace56e2062582f17fc3c971405bd59337":[0,0,70,39],
+"class_main_frame_base.html#ad054e4149f42d383bc1c402f6a54501c":[0,0,70,49],
+"class_main_frame_base.html#ad37f3f62f657f2e034200d45e855a948":[0,0,70,33],
+"class_main_frame_base.html#ad9b953037729ab0529f9dc5338729315":[0,0,70,41],
+"class_main_frame_base.html#ae279f9d64fb6bcf671f565a2e71b2e94":[0,0,70,47],
+"class_main_frame_base.html#ae32925edbbd4ab14b2ce775b733b7c50":[0,0,70,35],
+"class_main_frame_base.html#ae5b3009fc106d75e157836a6641f63a1":[0,0,70,58],
+"class_main_frame_base.html#ae5e2dafad6a4f61d11a33ec190cef57c":[0,0,70,60],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a05e92cb2567285f28c79eb500215b7da":[0,0,70,14],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a12f9d6b6da5ab7daef64309af56eb254":[0,0,70,27],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a14d1f40da5fe6d2885f81edc7bb34a5b":[0,0,70,4],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a17d8645af74374ed37cc377454903efe":[0,0,70,11],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a1a8745483f979ee20127462baef529b8":[0,0,70,9],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a22b195931c8f14f839544d5c76519e96":[0,0,70,28],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a274e87b2f0e70ab82e39438670e075d9":[0,0,70,26],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a2cedd9fbdc0111a82258040845814f4e":[0,0,70,1],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a2f9639a5f09ac7227dda3b1cbe0b83c4":[0,0,70,24],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a5bbe17a7648dedf17da9d9b246dd8948":[0,0,70,22],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a74900bf0113caf1fb845fe88711e29cd":[0,0,70,29],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a763d06068082580a6aa29c8e7d850462":[0,0,70,18],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a7d26b27353b73836e009a8fb63ea64f0":[0,0,70,6],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a7ddcce5a0fc3fd28e5a143d74d44e22b":[0,0,70,0],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a828cbb4fbfb1dbdc492ec4c6057e047d":[0,0,70,30],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a8ba61bef22ba14e5d33ff6152a52032c":[0,0,70,2],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a9bb260567cffe56b9db58274e4bac47c":[0,0,70,16],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9a9f01085677ac59c45a00f38ba012b606":[0,0,70,7],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aa6376080d848cfd62d01395cb541bfb1":[0,0,70,23],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aac83b781c09c5abd012c0f5b7c06f87e":[0,0,70,25],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab63bbde4ed29da3598c017b6cfd25c75":[0,0,70,13],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab742a9cc46431af12db375ec8b443729":[0,0,70,15],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ab80637a65b2e8941cd24044495ac674f":[0,0,70,21],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ac853a9f30f75ebfb6065a99771b6fa27":[0,0,70,3],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ad219a0870575cfe02af28cec88f11a79":[0,0,70,5],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9adc4cdd714264b181007029985e72285a":[0,0,70,20],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ae2192305b1be1c090a4db25a341a8aa2":[0,0,70,8],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9ae67852eba853e7a9889a21dfc6bca52b":[0,0,70,12],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aeb2127b1fd05627a82050c372e0d3164":[0,0,70,31],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9aed3da5b755508446a072304c74b46988":[0,0,70,19],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9afbc8518ac655f8467de20390453c2fe7":[0,0,70,17],
+"class_main_frame_base.html#ae7e11ee827b7ec42dbd94f90891d15c9afef2cc3e901fde0607cafcd6d9ebaac6":[0,0,70,10],
+"class_main_frame_base.html#aea62e96627cad518bdcea6002f4827a1":[0,0,70,71],
+"class_main_frame_base.html#aea7b22f0aacbc7a2da7788eb2f1aef5c":[0,0,70,90],
+"class_main_frame_base.html#af1e52e93085b8b51e2a4d4f3bf882f91":[0,0,70,88],
+"class_main_frame_base.html#af5030bc2b188dccb90a48ebfecd37366":[0,0,70,32],
+"class_multiplier.html":[0,0,71],
+"class_multiplier.html#a3b8da713f480cb1ed6b829f4d5a584d3":[0,0,71,1],
+"class_multiplier.html#a43398a07b130b819c229e1512066456c":[0,0,71,9],
+"class_multiplier.html#a48166896d667216da146a0b25766f867":[0,0,71,0],
+"class_multiplier.html#a4fa1206b47c626930db753a70e01680d":[0,0,71,7],
+"class_multiplier.html#a9d6101ab83aa92316efdb4d26b715d4c":[0,0,71,8],
+"class_multiplier.html#ab487232a96ed3c3f3a7c3628ddaa4c77":[0,0,71,4],
+"class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca":[0,0,71,5],
+"class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18":[0,0,71,2],
+"class_multiplier.html#ae01f155ed56925cb87d71a860882a3a1":[0,0,71,6],
+"class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3":[0,0,71,3],
+"class_node.html":[0,0,72],
+"class_node.html#a00ac0295e2572c4cca473e92860c6f66":[0,0,72,18],
+"class_node.html#a087c2fddbbedfc748fbfbb35ad8b235b":[0,0,72,5],
+"class_node.html#a0a9fcf01abc356e34d686aa753e43b8d":[0,0,72,10],
"class_node.html#a16217ea768b7bad76285e779bdc819c7":[0,0,72,7],
"class_node.html#a179b73258e92a485a2f52c504fdcd96f":[0,0,72,27],
"class_node.html#a1a41ea6942b8ae52f483dc5766dfdb62":[0,0,72,23],
@@ -108,146 +249,5 @@ var NAVTREEINDEX8 =
"class_properties_data.html#ac5b9a703313321402feb0b630137554a":[0,0,77,0],
"class_properties_data.html#ad3d2eb6ea7989c6759e9ea161e108529":[0,0,77,4],
"class_rate_limiter.html":[0,0,78],
-"class_rate_limiter.html#a1a4a1c1d6902a09996f3720c11657541":[0,0,78,0],
-"class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29":[0,0,78,12],
-"class_rate_limiter.html#a30bbe6f431699d625ccfeb56c344a8a7":[0,0,78,1],
-"class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e":[0,0,78,8],
-"class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823":[0,0,78,4],
-"class_rate_limiter.html#a4fad133132702b282606ba3c11957c4e":[0,0,78,6],
-"class_rate_limiter.html#a6a7584c54dec6b657fe82c86ba4050c7":[0,0,78,5],
-"class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580":[0,0,78,3],
-"class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147":[0,0,78,7],
-"class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60":[0,0,78,11],
-"class_rate_limiter.html#a9b33e6e0ff31d47e5a71ad667c394b3f":[0,0,78,10],
-"class_rate_limiter.html#aab8ebea2ddf2925636d57f15c29a6f9f":[0,0,78,13],
-"class_rate_limiter.html#ac9e938191a9cb73f2062424bb7ef3d6a":[0,0,78,9],
-"class_rate_limiter.html#addf0eef395781b8584063a9061be59dc":[0,0,78,2],
-"class_rate_limiter.html#af0f5379bd223db43561e02fc554af404":[0,0,78,14],
-"class_rate_limiter.html#af879e6593015575abe9dc1751eee89a4":[0,0,78,15],
-"class_rate_limiter_form.html":[0,0,79],
-"class_rate_limiter_form.html#a113482f91d98929e9a886724943c54b5":[0,0,79,0],
-"class_rate_limiter_form.html#a2890a4b61d498bd524a714de43b3e399":[0,0,79,4],
-"class_rate_limiter_form.html#a32b0a27d6ec94f94f8f8c1e40c270877":[0,0,79,6],
-"class_rate_limiter_form.html#aa64d34ca1a0d1ead7d63e7cefa9d1cf3":[0,0,79,1],
-"class_rate_limiter_form.html#ace1a05e0ae6160a69a2a9faa6b7a3dc3":[0,0,79,3],
-"class_rate_limiter_form.html#af19d40740af9ebb547036423ac091b28":[0,0,79,5],
-"class_rate_limiter_form.html#af80f6d8f785e66546b3be7e514655e25":[0,0,79,2],
-"class_rate_limiter_form_base.html":[0,0,80],
-"class_rate_limiter_form_base.html#a093a5e3ae150250132c175a8570b4d76":[0,0,80,19],
-"class_rate_limiter_form_base.html#a1ef5a9ffff3aa3bb3ca98288520facf1":[0,0,80,4],
-"class_rate_limiter_form_base.html#a2070bac82fe8f04e0bc47bbac80e3bc9":[0,0,80,17],
-"class_rate_limiter_form_base.html#a4782970d92f3d1172d9fef69bd7da828":[0,0,80,3],
-"class_rate_limiter_form_base.html#a55be917c732dec21f8cb29809dff2203":[0,0,80,12],
-"class_rate_limiter_form_base.html#a659b1c1ea9cc42e3aba7f22765db58c4":[0,0,80,6],
-"class_rate_limiter_form_base.html#a68c7b3b7b47433c93bb157434857ceeb":[0,0,80,7],
-"class_rate_limiter_form_base.html#a7006e306c3f3dedca709ce5903a2757d":[0,0,80,16],
-"class_rate_limiter_form_base.html#a81af498ed88dc833c7c1d81a6902cbbc":[0,0,80,13],
-"class_rate_limiter_form_base.html#a8794f8fbf98804519f8c817ddf24dd68":[0,0,80,8],
-"class_rate_limiter_form_base.html#a8b490cb503cff3eeb134d048fb8cda49":[0,0,80,0],
-"class_rate_limiter_form_base.html#a8e1cad8c05a5dfd8f2e8ad5033550eec":[0,0,80,2],
-"class_rate_limiter_form_base.html#a9286ba86011958dcf76efca12f3b525b":[0,0,80,5],
-"class_rate_limiter_form_base.html#a92bda3c20edddddda015624782954961":[0,0,80,18],
-"class_rate_limiter_form_base.html#a97c7d55b3958ab59d17bae4490d501a9":[0,0,80,11],
-"class_rate_limiter_form_base.html#ab706c56b5a717d1166e26fc21092c635":[0,0,80,1],
-"class_rate_limiter_form_base.html#ab7aa4f1a2fa83e112aa35a4406d04f56":[0,0,80,10],
-"class_rate_limiter_form_base.html#ad415e2f26fa0b27ddfb2fe463c14d061":[0,0,80,14],
-"class_rate_limiter_form_base.html#ad67689b33322dea99d5e62ca2e5997d9":[0,0,80,9],
-"class_rate_limiter_form_base.html#aeeaf9309158d7c4b3c3c4226f71bbed4":[0,0,80,15],
-"class_reactive_shunt_element_form.html":[0,0,82],
-"class_reactive_shunt_element_form.html#a02e49f07178cc0b7deed33c5fc0f84ae":[0,0,82,9],
-"class_reactive_shunt_element_form.html#a31d1e4400f75b072aab7a387938940f5":[0,0,82,2],
-"class_reactive_shunt_element_form.html#a32014c849a9abdc89f8d80665f7f3425":[0,0,82,0],
-"class_reactive_shunt_element_form.html#a497e42c930f99b86fe56fae7bccea6a5":[0,0,82,1],
-"class_reactive_shunt_element_form.html#a6480df895b328ef6a85e243277b80237":[0,0,82,3],
-"class_reactive_shunt_element_form.html#a6aa812272efbc5a350e8ab9298af76cd":[0,0,82,4],
-"class_reactive_shunt_element_form.html#a82d70a38623e99ad43cae70007e6013e":[0,0,82,7],
-"class_reactive_shunt_element_form.html#ac96e00fc9edacae51525b0672f8fea4f":[0,0,82,6],
-"class_reactive_shunt_element_form.html#ae348af4a562032c227eb407e700a2f23":[0,0,82,8],
-"class_reactive_shunt_element_form.html#ae5509097e2960939553d420d0ec1a227":[0,0,82,5],
-"class_reactive_shunt_element_form_base.html":[0,0,83],
-"class_reactive_shunt_element_form_base.html#a090e59ee0d5d344b2867b3e7b79e8951":[0,0,83,21],
-"class_reactive_shunt_element_form_base.html#a12aba656b33ee48307824e4229f75541":[0,0,83,19],
-"class_reactive_shunt_element_form_base.html#a22cccd74ef0c2b8d251c336a88c9f407":[0,0,83,16],
-"class_reactive_shunt_element_form_base.html#a2554b773c193f87e3ac85fc14d3e63c7":[0,0,83,20],
-"class_reactive_shunt_element_form_base.html#a27c200b1beef702fec0e5d5a94165269":[0,0,83,23],
-"class_reactive_shunt_element_form_base.html#a2ca7cece107e7d4057f5c9ee5b98c305":[0,0,83,22],
-"class_reactive_shunt_element_form_base.html#a2e2c10853585884ad3a2802764b756c7":[0,0,83,17],
-"class_reactive_shunt_element_form_base.html#a2eabee46e0b04d92086a0d0f21e3b10e":[0,0,83,12],
-"class_reactive_shunt_element_form_base.html#a3295f1d61c6249cb5ec8994a86b66d41":[0,0,83,6],
-"class_reactive_shunt_element_form_base.html#a39f95da41f55cae7829b9bd777dfef4d":[0,0,83,2],
-"class_reactive_shunt_element_form_base.html#a3a61222247b8bf0d0dc0a74f002f9f54":[0,0,83,4],
-"class_reactive_shunt_element_form_base.html#a41f1a2d4df3cc1c7506b975d5ecde71b":[0,0,83,9],
-"class_reactive_shunt_element_form_base.html#a45c87f3d26fefb6701e3ce84445d3b2a":[0,0,83,10],
-"class_reactive_shunt_element_form_base.html#a4b0ca8c2ccb39a0f305bcc2fe95c820e":[0,0,83,13],
-"class_reactive_shunt_element_form_base.html#a5ae249950ace35e5b19124f1fa49946b":[0,0,83,5],
-"class_reactive_shunt_element_form_base.html#a653e5033a3d9834d3a3e1f3442d3d1e5":[0,0,83,18],
-"class_reactive_shunt_element_form_base.html#a783c3c5b73e8386a96c51e22d0730d78":[0,0,83,1],
-"class_reactive_shunt_element_form_base.html#a92f31dfb84b855ff5a36ab9f5257e381":[0,0,83,7],
-"class_reactive_shunt_element_form_base.html#a93655501f77f68824420ef640ade219f":[0,0,83,0],
-"class_reactive_shunt_element_form_base.html#aab4647a9961226fd3b6934b539539535":[0,0,83,8],
-"class_reactive_shunt_element_form_base.html#aacf7ec5dec20fef61f3b190a950a0528":[0,0,83,24],
-"class_reactive_shunt_element_form_base.html#ad927d95189e470a8f9268df8e16f81df":[0,0,83,3],
-"class_reactive_shunt_element_form_base.html#aee2a26f08d25bb9989a03e8228dd1e69":[0,0,83,15],
-"class_reactive_shunt_element_form_base.html#afb6b4c5f665e515a466d8fd31353829e":[0,0,83,11],
-"class_reactive_shunt_element_form_base.html#aff864c79e7dae7fd22200efcdba27eb3":[0,0,83,14],
-"class_shunt.html":[0,0,84],
-"class_shunt.html#a0e19acef958e6153dc1d7386c82de780":[0,0,84,0],
-"class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd":[0,0,84,6],
-"class_shunt.html#a33a6bcf6612d4cf8c4de8e9f916a22e8":[0,0,84,14],
-"class_shunt.html#a449431a2044b838d35cbb991aa1de658":[0,0,84,2],
-"class_shunt.html#a56d6136d647f64cf490dd9d7720f6865":[0,0,84,11],
-"class_shunt.html#a665d9a8c291d427e666567c6df34321b":[0,0,84,8],
-"class_shunt.html#a7a732f1fb5f54b89e33957194fefd703":[0,0,84,9],
-"class_shunt.html#a902525eebbb4bf3ecaab0e1e60b6f017":[0,0,84,3],
-"class_shunt.html#a98e8f5798d17f613dfc0964e5007cd91":[0,0,84,13],
-"class_shunt.html#a9b52cb496663c75be79cb507d5961a8b":[0,0,84,1],
-"class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3":[0,0,84,5],
-"class_shunt.html#aacb9fdd05533a8322596b130c70774ef":[0,0,84,10],
-"class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e":[0,0,84,12],
-"class_shunt.html#abfc091da79ec7b87548d11dc8568b3cb":[0,0,84,15],
-"class_shunt.html#ae325a441a44c2a78c08289292fa00979":[0,0,84,7],
-"class_shunt.html#afdbf0c51f9630589937298329bb041fe":[0,0,84,4],
-"class_simulations_settings_form.html":[0,0,86],
-"class_simulations_settings_form.html#a0391607c5a1c9d9bc819ff76fbfe4ac9":[0,0,86,0],
-"class_simulations_settings_form.html#a0b45be7dd91f8ed322dfe6be9f09b519":[0,0,86,4],
-"class_simulations_settings_form.html#a33fd689685a661ba869285e70005b25c":[0,0,86,5],
-"class_simulations_settings_form.html#a4a12f6479437b57c0f60da303e9ae8a4":[0,0,86,2],
-"class_simulations_settings_form.html#a6afac8fd633a317058c3755c3b9ad531":[0,0,86,6],
-"class_simulations_settings_form.html#a84907a8c877741a310bbd04a10661713":[0,0,86,1],
-"class_simulations_settings_form.html#aac571bfc12367c787a34f04b1c6daf0e":[0,0,86,3],
-"class_simulations_settings_form_base.html":[0,0,87],
-"class_simulations_settings_form_base.html#a00162ab3f5fc280dc753440314a7e1ba":[0,0,87,36],
-"class_simulations_settings_form_base.html#a00caec0bf8cdb39f16856a49b478596e":[0,0,87,22],
-"class_simulations_settings_form_base.html#a01ca85120c1c072ff30df0949a57809b":[0,0,87,6],
-"class_simulations_settings_form_base.html#a035a663ed0e32f8e1b5ad799e19d3ede":[0,0,87,30],
-"class_simulations_settings_form_base.html#a094a39982209ed4298e1914bb6a01841":[0,0,87,28],
-"class_simulations_settings_form_base.html#a09b4f2e8531838473197ef0e0ec148a8":[0,0,87,17],
-"class_simulations_settings_form_base.html#a0e0fe5100d343148e774da127a5f13cd":[0,0,87,41],
-"class_simulations_settings_form_base.html#a0e92dc8f5bc6f21b564ed7f0473f5c12":[0,0,87,37],
-"class_simulations_settings_form_base.html#a0fe2f8372ca7856be82306d3b8197ba0":[0,0,87,33],
-"class_simulations_settings_form_base.html#a109ea7e508f6494508d35a62237b661a":[0,0,87,67],
-"class_simulations_settings_form_base.html#a1ac75d31b112a2febebf4bc9702f2308":[0,0,87,53],
-"class_simulations_settings_form_base.html#a2123722e9d7846170793743eb2301c36":[0,0,87,8],
-"class_simulations_settings_form_base.html#a213a37c4ec8adfe9193858c730809760":[0,0,87,29],
-"class_simulations_settings_form_base.html#a26a06b8a618d7bb2e244f15cbbb218a0":[0,0,87,55],
-"class_simulations_settings_form_base.html#a273b0fa706d897f285611b96b3274d11":[0,0,87,79],
-"class_simulations_settings_form_base.html#a2931101c1dfb81b3ae70b208f2f21d9f":[0,0,87,26],
-"class_simulations_settings_form_base.html#a2deb701c33edf6c39db842c6c78516c7":[0,0,87,51],
-"class_simulations_settings_form_base.html#a317cc6c7b9a2a2bc849db7404bdca9f5":[0,0,87,75],
-"class_simulations_settings_form_base.html#a3b70f10ddf978db633923109adf2eec8":[0,0,87,3],
-"class_simulations_settings_form_base.html#a3f77e2f06060be18695b9e479569e750":[0,0,87,39],
-"class_simulations_settings_form_base.html#a4529d8c7e6fd72067ea23d1dcddb8fda":[0,0,87,72],
-"class_simulations_settings_form_base.html#a4536b745d3b4ec8f24e8f4e513d85631":[0,0,87,78],
-"class_simulations_settings_form_base.html#a46cf61f4852659c6e16cf922c2a375e7":[0,0,87,50],
-"class_simulations_settings_form_base.html#a4ed212050fcf484d787a25798da3dbba":[0,0,87,74],
-"class_simulations_settings_form_base.html#a518aaef569ff7157901c2ddede7ad170":[0,0,87,73],
-"class_simulations_settings_form_base.html#a524aa037a3fde6b45fe5dc28c44bee7e":[0,0,87,24],
-"class_simulations_settings_form_base.html#a53776e57a1941d582b7e249baf991715":[0,0,87,38],
-"class_simulations_settings_form_base.html#a55b6815057a04579c46f66a55152bfa8":[0,0,87,25],
-"class_simulations_settings_form_base.html#a58a3cba8a8e3aeb7ad04d9c09322accb":[0,0,87,13],
-"class_simulations_settings_form_base.html#a5f35f20f83aab77c9412a647c7cc4d81":[0,0,87,21],
-"class_simulations_settings_form_base.html#a6dd10f55aef407622408e49647034411":[0,0,87,58],
-"class_simulations_settings_form_base.html#a7042594f1537d6f29e548b2a2bdacbe9":[0,0,87,10],
-"class_simulations_settings_form_base.html#a737cdb464ec33b674fb0b663244380be":[0,0,87,49],
-"class_simulations_settings_form_base.html#a7534d53a23d3e4059f7d9f63cee3ddee":[0,0,87,70]
+"class_rate_limiter.html#a1a4a1c1d6902a09996f3720c11657541":[0,0,78,0]
};
diff --git a/docs/doxygen/html/navtreeindex9.js b/docs/doxygen/html/navtreeindex9.js
index d7b2798..b257cb3 100644
--- a/docs/doxygen/html/navtreeindex9.js
+++ b/docs/doxygen/html/navtreeindex9.js
@@ -1,5 +1,146 @@
var NAVTREEINDEX9 =
{
+"class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29":[0,0,78,12],
+"class_rate_limiter.html#a30bbe6f431699d625ccfeb56c344a8a7":[0,0,78,1],
+"class_rate_limiter.html#a3eb4d933b1d069808617306c78835f3e":[0,0,78,8],
+"class_rate_limiter.html#a4f1152238b97fcf76a0bee258e971823":[0,0,78,4],
+"class_rate_limiter.html#a4fad133132702b282606ba3c11957c4e":[0,0,78,6],
+"class_rate_limiter.html#a6a7584c54dec6b657fe82c86ba4050c7":[0,0,78,5],
+"class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580":[0,0,78,3],
+"class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147":[0,0,78,7],
+"class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60":[0,0,78,11],
+"class_rate_limiter.html#a9b33e6e0ff31d47e5a71ad667c394b3f":[0,0,78,10],
+"class_rate_limiter.html#aab8ebea2ddf2925636d57f15c29a6f9f":[0,0,78,13],
+"class_rate_limiter.html#ac9e938191a9cb73f2062424bb7ef3d6a":[0,0,78,9],
+"class_rate_limiter.html#addf0eef395781b8584063a9061be59dc":[0,0,78,2],
+"class_rate_limiter.html#af0f5379bd223db43561e02fc554af404":[0,0,78,14],
+"class_rate_limiter.html#af879e6593015575abe9dc1751eee89a4":[0,0,78,15],
+"class_rate_limiter_form.html":[0,0,79],
+"class_rate_limiter_form.html#a113482f91d98929e9a886724943c54b5":[0,0,79,0],
+"class_rate_limiter_form.html#a2890a4b61d498bd524a714de43b3e399":[0,0,79,4],
+"class_rate_limiter_form.html#a32b0a27d6ec94f94f8f8c1e40c270877":[0,0,79,6],
+"class_rate_limiter_form.html#aa64d34ca1a0d1ead7d63e7cefa9d1cf3":[0,0,79,1],
+"class_rate_limiter_form.html#ace1a05e0ae6160a69a2a9faa6b7a3dc3":[0,0,79,3],
+"class_rate_limiter_form.html#af19d40740af9ebb547036423ac091b28":[0,0,79,5],
+"class_rate_limiter_form.html#af80f6d8f785e66546b3be7e514655e25":[0,0,79,2],
+"class_rate_limiter_form_base.html":[0,0,80],
+"class_rate_limiter_form_base.html#a093a5e3ae150250132c175a8570b4d76":[0,0,80,19],
+"class_rate_limiter_form_base.html#a1ef5a9ffff3aa3bb3ca98288520facf1":[0,0,80,4],
+"class_rate_limiter_form_base.html#a2070bac82fe8f04e0bc47bbac80e3bc9":[0,0,80,17],
+"class_rate_limiter_form_base.html#a4782970d92f3d1172d9fef69bd7da828":[0,0,80,3],
+"class_rate_limiter_form_base.html#a55be917c732dec21f8cb29809dff2203":[0,0,80,12],
+"class_rate_limiter_form_base.html#a659b1c1ea9cc42e3aba7f22765db58c4":[0,0,80,6],
+"class_rate_limiter_form_base.html#a68c7b3b7b47433c93bb157434857ceeb":[0,0,80,7],
+"class_rate_limiter_form_base.html#a7006e306c3f3dedca709ce5903a2757d":[0,0,80,16],
+"class_rate_limiter_form_base.html#a81af498ed88dc833c7c1d81a6902cbbc":[0,0,80,13],
+"class_rate_limiter_form_base.html#a8794f8fbf98804519f8c817ddf24dd68":[0,0,80,8],
+"class_rate_limiter_form_base.html#a8b490cb503cff3eeb134d048fb8cda49":[0,0,80,0],
+"class_rate_limiter_form_base.html#a8e1cad8c05a5dfd8f2e8ad5033550eec":[0,0,80,2],
+"class_rate_limiter_form_base.html#a9286ba86011958dcf76efca12f3b525b":[0,0,80,5],
+"class_rate_limiter_form_base.html#a92bda3c20edddddda015624782954961":[0,0,80,18],
+"class_rate_limiter_form_base.html#a97c7d55b3958ab59d17bae4490d501a9":[0,0,80,11],
+"class_rate_limiter_form_base.html#ab706c56b5a717d1166e26fc21092c635":[0,0,80,1],
+"class_rate_limiter_form_base.html#ab7aa4f1a2fa83e112aa35a4406d04f56":[0,0,80,10],
+"class_rate_limiter_form_base.html#ad415e2f26fa0b27ddfb2fe463c14d061":[0,0,80,14],
+"class_rate_limiter_form_base.html#ad67689b33322dea99d5e62ca2e5997d9":[0,0,80,9],
+"class_rate_limiter_form_base.html#aeeaf9309158d7c4b3c3c4226f71bbed4":[0,0,80,15],
+"class_reactive_shunt_element_form.html":[0,0,82],
+"class_reactive_shunt_element_form.html#a02e49f07178cc0b7deed33c5fc0f84ae":[0,0,82,9],
+"class_reactive_shunt_element_form.html#a31d1e4400f75b072aab7a387938940f5":[0,0,82,2],
+"class_reactive_shunt_element_form.html#a32014c849a9abdc89f8d80665f7f3425":[0,0,82,0],
+"class_reactive_shunt_element_form.html#a497e42c930f99b86fe56fae7bccea6a5":[0,0,82,1],
+"class_reactive_shunt_element_form.html#a6480df895b328ef6a85e243277b80237":[0,0,82,3],
+"class_reactive_shunt_element_form.html#a6aa812272efbc5a350e8ab9298af76cd":[0,0,82,4],
+"class_reactive_shunt_element_form.html#a82d70a38623e99ad43cae70007e6013e":[0,0,82,7],
+"class_reactive_shunt_element_form.html#ac96e00fc9edacae51525b0672f8fea4f":[0,0,82,6],
+"class_reactive_shunt_element_form.html#ae348af4a562032c227eb407e700a2f23":[0,0,82,8],
+"class_reactive_shunt_element_form.html#ae5509097e2960939553d420d0ec1a227":[0,0,82,5],
+"class_reactive_shunt_element_form_base.html":[0,0,83],
+"class_reactive_shunt_element_form_base.html#a090e59ee0d5d344b2867b3e7b79e8951":[0,0,83,21],
+"class_reactive_shunt_element_form_base.html#a12aba656b33ee48307824e4229f75541":[0,0,83,19],
+"class_reactive_shunt_element_form_base.html#a22cccd74ef0c2b8d251c336a88c9f407":[0,0,83,16],
+"class_reactive_shunt_element_form_base.html#a2554b773c193f87e3ac85fc14d3e63c7":[0,0,83,20],
+"class_reactive_shunt_element_form_base.html#a27c200b1beef702fec0e5d5a94165269":[0,0,83,23],
+"class_reactive_shunt_element_form_base.html#a2ca7cece107e7d4057f5c9ee5b98c305":[0,0,83,22],
+"class_reactive_shunt_element_form_base.html#a2e2c10853585884ad3a2802764b756c7":[0,0,83,17],
+"class_reactive_shunt_element_form_base.html#a2eabee46e0b04d92086a0d0f21e3b10e":[0,0,83,12],
+"class_reactive_shunt_element_form_base.html#a3295f1d61c6249cb5ec8994a86b66d41":[0,0,83,6],
+"class_reactive_shunt_element_form_base.html#a39f95da41f55cae7829b9bd777dfef4d":[0,0,83,2],
+"class_reactive_shunt_element_form_base.html#a3a61222247b8bf0d0dc0a74f002f9f54":[0,0,83,4],
+"class_reactive_shunt_element_form_base.html#a41f1a2d4df3cc1c7506b975d5ecde71b":[0,0,83,9],
+"class_reactive_shunt_element_form_base.html#a45c87f3d26fefb6701e3ce84445d3b2a":[0,0,83,10],
+"class_reactive_shunt_element_form_base.html#a4b0ca8c2ccb39a0f305bcc2fe95c820e":[0,0,83,13],
+"class_reactive_shunt_element_form_base.html#a5ae249950ace35e5b19124f1fa49946b":[0,0,83,5],
+"class_reactive_shunt_element_form_base.html#a653e5033a3d9834d3a3e1f3442d3d1e5":[0,0,83,18],
+"class_reactive_shunt_element_form_base.html#a783c3c5b73e8386a96c51e22d0730d78":[0,0,83,1],
+"class_reactive_shunt_element_form_base.html#a92f31dfb84b855ff5a36ab9f5257e381":[0,0,83,7],
+"class_reactive_shunt_element_form_base.html#a93655501f77f68824420ef640ade219f":[0,0,83,0],
+"class_reactive_shunt_element_form_base.html#aab4647a9961226fd3b6934b539539535":[0,0,83,8],
+"class_reactive_shunt_element_form_base.html#aacf7ec5dec20fef61f3b190a950a0528":[0,0,83,24],
+"class_reactive_shunt_element_form_base.html#ad927d95189e470a8f9268df8e16f81df":[0,0,83,3],
+"class_reactive_shunt_element_form_base.html#aee2a26f08d25bb9989a03e8228dd1e69":[0,0,83,15],
+"class_reactive_shunt_element_form_base.html#afb6b4c5f665e515a466d8fd31353829e":[0,0,83,11],
+"class_reactive_shunt_element_form_base.html#aff864c79e7dae7fd22200efcdba27eb3":[0,0,83,14],
+"class_shunt.html":[0,0,84],
+"class_shunt.html#a0e19acef958e6153dc1d7386c82de780":[0,0,84,0],
+"class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd":[0,0,84,6],
+"class_shunt.html#a33a6bcf6612d4cf8c4de8e9f916a22e8":[0,0,84,14],
+"class_shunt.html#a449431a2044b838d35cbb991aa1de658":[0,0,84,2],
+"class_shunt.html#a56d6136d647f64cf490dd9d7720f6865":[0,0,84,11],
+"class_shunt.html#a665d9a8c291d427e666567c6df34321b":[0,0,84,8],
+"class_shunt.html#a7a732f1fb5f54b89e33957194fefd703":[0,0,84,9],
+"class_shunt.html#a902525eebbb4bf3ecaab0e1e60b6f017":[0,0,84,3],
+"class_shunt.html#a98e8f5798d17f613dfc0964e5007cd91":[0,0,84,13],
+"class_shunt.html#a9b52cb496663c75be79cb507d5961a8b":[0,0,84,1],
+"class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3":[0,0,84,5],
+"class_shunt.html#aacb9fdd05533a8322596b130c70774ef":[0,0,84,10],
+"class_shunt.html#abe01dcdf8bc0ba6fc97d41673889fb8e":[0,0,84,12],
+"class_shunt.html#abfc091da79ec7b87548d11dc8568b3cb":[0,0,84,15],
+"class_shunt.html#ae325a441a44c2a78c08289292fa00979":[0,0,84,7],
+"class_shunt.html#afdbf0c51f9630589937298329bb041fe":[0,0,84,4],
+"class_simulations_settings_form.html":[0,0,86],
+"class_simulations_settings_form.html#a0391607c5a1c9d9bc819ff76fbfe4ac9":[0,0,86,0],
+"class_simulations_settings_form.html#a0b45be7dd91f8ed322dfe6be9f09b519":[0,0,86,4],
+"class_simulations_settings_form.html#a33fd689685a661ba869285e70005b25c":[0,0,86,5],
+"class_simulations_settings_form.html#a4a12f6479437b57c0f60da303e9ae8a4":[0,0,86,2],
+"class_simulations_settings_form.html#a6afac8fd633a317058c3755c3b9ad531":[0,0,86,6],
+"class_simulations_settings_form.html#a84907a8c877741a310bbd04a10661713":[0,0,86,1],
+"class_simulations_settings_form.html#aac571bfc12367c787a34f04b1c6daf0e":[0,0,86,3],
+"class_simulations_settings_form_base.html":[0,0,87],
+"class_simulations_settings_form_base.html#a00162ab3f5fc280dc753440314a7e1ba":[0,0,87,36],
+"class_simulations_settings_form_base.html#a00caec0bf8cdb39f16856a49b478596e":[0,0,87,22],
+"class_simulations_settings_form_base.html#a01ca85120c1c072ff30df0949a57809b":[0,0,87,6],
+"class_simulations_settings_form_base.html#a035a663ed0e32f8e1b5ad799e19d3ede":[0,0,87,30],
+"class_simulations_settings_form_base.html#a094a39982209ed4298e1914bb6a01841":[0,0,87,28],
+"class_simulations_settings_form_base.html#a09b4f2e8531838473197ef0e0ec148a8":[0,0,87,17],
+"class_simulations_settings_form_base.html#a0e0fe5100d343148e774da127a5f13cd":[0,0,87,41],
+"class_simulations_settings_form_base.html#a0e92dc8f5bc6f21b564ed7f0473f5c12":[0,0,87,37],
+"class_simulations_settings_form_base.html#a0fe2f8372ca7856be82306d3b8197ba0":[0,0,87,33],
+"class_simulations_settings_form_base.html#a109ea7e508f6494508d35a62237b661a":[0,0,87,67],
+"class_simulations_settings_form_base.html#a1ac75d31b112a2febebf4bc9702f2308":[0,0,87,53],
+"class_simulations_settings_form_base.html#a2123722e9d7846170793743eb2301c36":[0,0,87,8],
+"class_simulations_settings_form_base.html#a213a37c4ec8adfe9193858c730809760":[0,0,87,29],
+"class_simulations_settings_form_base.html#a26a06b8a618d7bb2e244f15cbbb218a0":[0,0,87,55],
+"class_simulations_settings_form_base.html#a273b0fa706d897f285611b96b3274d11":[0,0,87,79],
+"class_simulations_settings_form_base.html#a2931101c1dfb81b3ae70b208f2f21d9f":[0,0,87,26],
+"class_simulations_settings_form_base.html#a2deb701c33edf6c39db842c6c78516c7":[0,0,87,51],
+"class_simulations_settings_form_base.html#a317cc6c7b9a2a2bc849db7404bdca9f5":[0,0,87,75],
+"class_simulations_settings_form_base.html#a3b70f10ddf978db633923109adf2eec8":[0,0,87,3],
+"class_simulations_settings_form_base.html#a3f77e2f06060be18695b9e479569e750":[0,0,87,39],
+"class_simulations_settings_form_base.html#a4529d8c7e6fd72067ea23d1dcddb8fda":[0,0,87,72],
+"class_simulations_settings_form_base.html#a4536b745d3b4ec8f24e8f4e513d85631":[0,0,87,78],
+"class_simulations_settings_form_base.html#a46cf61f4852659c6e16cf922c2a375e7":[0,0,87,50],
+"class_simulations_settings_form_base.html#a4ed212050fcf484d787a25798da3dbba":[0,0,87,74],
+"class_simulations_settings_form_base.html#a518aaef569ff7157901c2ddede7ad170":[0,0,87,73],
+"class_simulations_settings_form_base.html#a524aa037a3fde6b45fe5dc28c44bee7e":[0,0,87,24],
+"class_simulations_settings_form_base.html#a53776e57a1941d582b7e249baf991715":[0,0,87,38],
+"class_simulations_settings_form_base.html#a55b6815057a04579c46f66a55152bfa8":[0,0,87,25],
+"class_simulations_settings_form_base.html#a58a3cba8a8e3aeb7ad04d9c09322accb":[0,0,87,13],
+"class_simulations_settings_form_base.html#a5f35f20f83aab77c9412a647c7cc4d81":[0,0,87,21],
+"class_simulations_settings_form_base.html#a6dd10f55aef407622408e49647034411":[0,0,87,58],
+"class_simulations_settings_form_base.html#a7042594f1537d6f29e548b2a2bdacbe9":[0,0,87,10],
+"class_simulations_settings_form_base.html#a737cdb464ec33b674fb0b663244380be":[0,0,87,49],
+"class_simulations_settings_form_base.html#a7534d53a23d3e4059f7d9f63cee3ddee":[0,0,87,70],
"class_simulations_settings_form_base.html#a76d9c02a5e8293274ff5ca30da5f3875":[0,0,87,4],
"class_simulations_settings_form_base.html#a848776479beac8acd3b12cac44db650b":[0,0,87,54],
"class_simulations_settings_form_base.html#a8d8e9a8f2d048dede1d4c1499874d583":[0,0,87,71],
@@ -108,146 +249,5 @@ var NAVTREEINDEX9 =
"class_switching_form_base.html":[0,0,93],
"class_switching_form_base.html#a02a15eaf6d2e1533369d7c4985799839":[0,0,93,29],
"class_switching_form_base.html#a0ae557b49458c10705867c2fe88cdb24":[0,0,93,20],
-"class_switching_form_base.html#a1181e4a27deea52b62aa6abd5cf06f98":[0,0,93,15],
-"class_switching_form_base.html#a12a2da9f3c7ed16f5e9965c13d166f96":[0,0,93,3],
-"class_switching_form_base.html#a2816bcf1b23f2e79b0b58a0a8de0ba24":[0,0,93,16],
-"class_switching_form_base.html#a2c79761f5c68a966661865a91e0a4c32":[0,0,93,25],
-"class_switching_form_base.html#a2f55dcdb9ba37f9c4e1428f6767b168e":[0,0,93,2],
-"class_switching_form_base.html#a4120a54ec6ba678f97f6f23b27453f6c":[0,0,93,6],
-"class_switching_form_base.html#a461522bb3739dd790b968c9536239d3d":[0,0,93,22],
-"class_switching_form_base.html#a53be89419785168b8a74cbbc4baf4da5":[0,0,93,17],
-"class_switching_form_base.html#a5682b2c0825b46e0eb3ac8990b1b5c7a":[0,0,93,21],
-"class_switching_form_base.html#a67f95f0d053dd46cdacb20848c0d9c84":[0,0,93,12],
-"class_switching_form_base.html#a7672f7fad7fd63de788006d8c67668d3":[0,0,93,10],
-"class_switching_form_base.html#a7d645a4f981511ba46e549c89a624533":[0,0,93,18],
-"class_switching_form_base.html#a84b3ee2c021abbe31d8c42c995a89d56":[0,0,93,1],
-"class_switching_form_base.html#a86f434b7cd754bf15e415d394f5101a8":[0,0,93,23],
-"class_switching_form_base.html#a92d178826ef95170e623bb4ad7d33171":[0,0,93,0],
-"class_switching_form_base.html#aab2b0440e8a1af4a2c16ae3d88c4713a":[0,0,93,24],
-"class_switching_form_base.html#ab606b039351e82f6b5115336d0edafd5":[0,0,93,9],
-"class_switching_form_base.html#ab8d540ac6bae77e44f30b8ffce030e07":[0,0,93,19],
-"class_switching_form_base.html#ac1bb1bf80e6526bfd97e54277ef8da3c":[0,0,93,5],
-"class_switching_form_base.html#ac3ca747257bb9ca0fa1ce1c09a6e5342":[0,0,93,8],
-"class_switching_form_base.html#ac839296c57c6c380547180c3c7180f5c":[0,0,93,30],
-"class_switching_form_base.html#acc549ba43edb9d7ba4ca938982fd794b":[0,0,93,7],
-"class_switching_form_base.html#ad0c13eb28aee4127889405283bb72904":[0,0,93,28],
-"class_switching_form_base.html#ad17112f4d131937423f551720066177a":[0,0,93,26],
-"class_switching_form_base.html#ad21d7949427c973081f7461620506335":[0,0,93,13],
-"class_switching_form_base.html#adfc965bcb8575b5b0d36e7ad311d2d0b":[0,0,93,27],
-"class_switching_form_base.html#ae113c3c97e21037e6561811a094436a0":[0,0,93,14],
-"class_switching_form_base.html#ae6854ecd50f251c6c5907dfa6945fdc3":[0,0,93,4],
-"class_switching_form_base.html#afd2e5b45c5a295b58a255ba0159ad8d4":[0,0,93,11],
-"class_sync_generator.html":[0,0,94],
-"class_sync_generator.html#a05fbc44f44fb207083a7550e421f8bb4":[0,0,94,10],
-"class_sync_generator.html#a23d63853faf0a4ee4aa1301cb234c603":[0,0,94,15],
-"class_sync_generator.html#a24b9894fa42473dfb8bcf82221401a97":[0,0,94,4],
-"class_sync_generator.html#a45ad59011c69a3b08c35ca16af6a5de6":[0,0,94,14],
-"class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec":[0,0,94,13],
-"class_sync_generator.html#a54c742a72e8d9d7da2990b1a455b899a":[0,0,94,8],
-"class_sync_generator.html#a57b0e5d734736aa15d7a0ae59c21f5cc":[0,0,94,3],
-"class_sync_generator.html#a6cbf05435af171775cbaf81d8beb6474":[0,0,94,2],
-"class_sync_generator.html#a710965e1539d2199096bc5e71116de8a":[0,0,94,11],
-"class_sync_generator.html#a7f825dd5949d3bf5b49e4e4b788b9de3":[0,0,94,1],
-"class_sync_generator.html#a87b438b8b95a119ac298a49fd4248272":[0,0,94,6],
-"class_sync_generator.html#a9130e8714c1518683540f587aca1201f":[0,0,94,5],
-"class_sync_generator.html#a9454438d059269c194e1aa648e122f7e":[0,0,94,9],
-"class_sync_generator.html#aaa4c5978dc6d344747d74e36fb3e71d8":[0,0,94,12],
-"class_sync_generator.html#af66e02540c23285395e3592d1c822f99":[0,0,94,0],
-"class_sync_generator.html#afcb0a1c03dab5ede586e5d15231f2cab":[0,0,94,7],
-"class_sync_machine_form.html":[0,0,96],
-"class_sync_machine_form.html#a1a4fc8f4ae070df13b73c7b400e0dc43":[0,0,96,3],
-"class_sync_machine_form.html#a3bc93d1fd6285fcd5e11a4c18541914e":[0,0,96,9],
-"class_sync_machine_form.html#a53fd325bac54a9509ea530926bd50825":[0,0,96,0],
-"class_sync_machine_form.html#a61b60bfc52876775f74160ae9075c697":[0,0,96,12],
-"class_sync_machine_form.html#a9421e44f0914790e23bcecaa222eaecc":[0,0,96,2],
-"class_sync_machine_form.html#a9c53acf928dd35b648d0a67b69fa8b46":[0,0,96,6],
-"class_sync_machine_form.html#a9fea7ef16899f918e5cedad577f960e7":[0,0,96,1],
-"class_sync_machine_form.html#aa6bf6f86e79a0329f876996b651d3c72":[0,0,96,7],
-"class_sync_machine_form.html#ac21b7bb1c3261b3ff128d9339a5bef51":[0,0,96,11],
-"class_sync_machine_form.html#ac4699ffcdb2c8f09e8610cb1afd50e05":[0,0,96,8],
-"class_sync_machine_form.html#ad7899edef11e6c72782eeef5aecfec54":[0,0,96,10],
-"class_sync_machine_form.html#aea6339fd7121c438af87d8515490ab06":[0,0,96,5],
-"class_sync_machine_form.html#aed6770180b4f2efb07c8df061e2fbd03":[0,0,96,4],
-"class_sync_machine_form_base.html":[0,0,97],
-"class_sync_machine_form_base.html#a0045396673e3acd9fb6a21982b7d7596":[0,0,97,22],
-"class_sync_machine_form_base.html#a0063a2e8df81e75b32e0fac571c921ae":[0,0,97,34],
-"class_sync_machine_form_base.html#a05439a30d63c78be06d1d046c0cc59d8":[0,0,97,87],
-"class_sync_machine_form_base.html#a0580ac7326c742ffe05d7791d83a52d7":[0,0,97,83],
-"class_sync_machine_form_base.html#a05cfcbb0cfa2e3e4ec07a7fba1bdf5d6":[0,0,97,61],
-"class_sync_machine_form_base.html#a0c385577ff27d8d9ed1a87a22fce73fd":[0,0,97,63],
-"class_sync_machine_form_base.html#a0dbd47d991d7750b3368d84b06d3c361":[0,0,97,0],
-"class_sync_machine_form_base.html#a102368df6855d5ba275a49ffae593168":[0,0,97,15],
-"class_sync_machine_form_base.html#a11249eb9f833be5b91c3f684477be7aa":[0,0,97,12],
-"class_sync_machine_form_base.html#a138fa57d3582962bae07d035e63b586d":[0,0,97,74],
-"class_sync_machine_form_base.html#a15b9a853d75e1e59084cf84130bfbbc2":[0,0,97,78],
-"class_sync_machine_form_base.html#a1c9124d5e5449d28ae8b0af31a651a25":[0,0,97,28],
-"class_sync_machine_form_base.html#a1ed492083cd0abec88ace3965553308b":[0,0,97,56],
-"class_sync_machine_form_base.html#a21dbc2fc03aef37e45e1cf3a63da9551":[0,0,97,55],
-"class_sync_machine_form_base.html#a230d01b1c29375bdfd3063d9097f9f88":[0,0,97,8],
-"class_sync_machine_form_base.html#a24d1c0a769de296404d9697ff6bba278":[0,0,97,9],
-"class_sync_machine_form_base.html#a25dfe7fcf1465ef808fd652a5cd6b2e1":[0,0,97,64],
-"class_sync_machine_form_base.html#a2d7690b252b2b22d5b950d04b9757bb4":[0,0,97,21],
-"class_sync_machine_form_base.html#a2f22b959d0d97b7ad3ee6de5557ad976":[0,0,97,52],
-"class_sync_machine_form_base.html#a38a81a205d2112a58084b2d6cc13380a":[0,0,97,24],
-"class_sync_machine_form_base.html#a3aa2c493b7430078bc17a34bb8cc476b":[0,0,97,43],
-"class_sync_machine_form_base.html#a3db4e4cfd2fd42f9ce6ab3f72952f6ba":[0,0,97,44],
-"class_sync_machine_form_base.html#a3f1c8401a39935ef1f589d68af2be97a":[0,0,97,40],
-"class_sync_machine_form_base.html#a4112b3c631d0ceec0178fc05ea1b120c":[0,0,97,2],
-"class_sync_machine_form_base.html#a4496bfac69450fe5a10baa9dbc4888a6":[0,0,97,80],
-"class_sync_machine_form_base.html#a45f5bf24827dfcda99e71f83cfb3fa5b":[0,0,97,29],
-"class_sync_machine_form_base.html#a46fe41a58c06bedeab99cd190921e545":[0,0,97,4],
-"class_sync_machine_form_base.html#a4ba97e9dc30c24a0daf0ad3771823df0":[0,0,97,77],
-"class_sync_machine_form_base.html#a4fca8015f54006f8b79faf8bb6d3eb09":[0,0,97,26],
-"class_sync_machine_form_base.html#a5133c66f455c7a5597e72b9b367e0fc8":[0,0,97,47],
-"class_sync_machine_form_base.html#a5735d89d9451e76734467e14779a7ab0":[0,0,97,49],
-"class_sync_machine_form_base.html#a5a091446eebeeb3c5116fa87aeda535b":[0,0,97,79],
-"class_sync_machine_form_base.html#a5dcc03c3e17f06e0914f3209120a6329":[0,0,97,35],
-"class_sync_machine_form_base.html#a5fd0741a7ac3e8613cc01a28933b4ea8":[0,0,97,11],
-"class_sync_machine_form_base.html#a681513dcfa84f4aab5803299fd8ae766":[0,0,97,37],
-"class_sync_machine_form_base.html#a6b3830705a2208493714c1abdb8fa0b8":[0,0,97,70],
-"class_sync_machine_form_base.html#a6c2c10dd63d1ace53d882b477d037d75":[0,0,97,30],
-"class_sync_machine_form_base.html#a6dba8c557f3e20f9982c084e5e5a74e3":[0,0,97,59],
-"class_sync_machine_form_base.html#a6fedceb84c293f69fbcb6290ea529798":[0,0,97,84],
-"class_sync_machine_form_base.html#a717b5ba1d7ed6b4026b527ce12b2bf41":[0,0,97,72],
-"class_sync_machine_form_base.html#a7367ed87a446dc08067af218b8bb2215":[0,0,97,31],
-"class_sync_machine_form_base.html#a7530a37ed44f0732758708aabf7f748c":[0,0,97,19],
-"class_sync_machine_form_base.html#a76040f3058374ee765d4baa6b1b07df7":[0,0,97,7],
-"class_sync_machine_form_base.html#a7849d5f397e132e164b0c1952ddaa0a3":[0,0,97,82],
-"class_sync_machine_form_base.html#a79579458c023bf56d0df6f0356e58c9b":[0,0,97,53],
-"class_sync_machine_form_base.html#a7a035fe2031ab6eae1513f73adabd0c3":[0,0,97,32],
-"class_sync_machine_form_base.html#a7c6a05f65b77bdad43f7f92c2b184077":[0,0,97,50],
-"class_sync_machine_form_base.html#a909b922a1f157d6013a7baaf22796d24":[0,0,97,86],
-"class_sync_machine_form_base.html#a93fd03ae353875c5e04ccdb57800f821":[0,0,97,58],
-"class_sync_machine_form_base.html#a959fea39df34cb124ab6a0ad78d78712":[0,0,97,3],
-"class_sync_machine_form_base.html#a97509be24b2add48e9d23d5b7020b076":[0,0,97,48],
-"class_sync_machine_form_base.html#a9c402618cc9ae56ca3780d7420bf5722":[0,0,97,69],
-"class_sync_machine_form_base.html#a9d4d3f8b66519903eaac859b0a5314e9":[0,0,97,6],
-"class_sync_machine_form_base.html#a9e63594f861d223182734011b24030dc":[0,0,97,14],
-"class_sync_machine_form_base.html#a9fd3b15e35d1753059759886bf918130":[0,0,97,81],
-"class_sync_machine_form_base.html#aa2a774f00e17cfec0ef2efccc086b990":[0,0,97,25],
-"class_sync_machine_form_base.html#aa53388881170a5aceb737b0c58315351":[0,0,97,16],
-"class_sync_machine_form_base.html#aab2926cd0e56d2cb283fc74e5aa20f5d":[0,0,97,10],
-"class_sync_machine_form_base.html#aacac6cfe475bf4176dcf746417cdd432":[0,0,97,88],
-"class_sync_machine_form_base.html#aaff0a6a0030e1d0928f6a69f27bb1180":[0,0,97,46],
-"class_sync_machine_form_base.html#ab221b3b73b231252dfe605efa5268f59":[0,0,97,39],
-"class_sync_machine_form_base.html#ab922478387b0a89d0d5a4ab0d1500a4a":[0,0,97,27],
-"class_sync_machine_form_base.html#aba28c35b0281a75f7ed7b57e6ceed52c":[0,0,97,5],
-"class_sync_machine_form_base.html#ac195ae144957568ef98e5e3f9ba31388":[0,0,97,76],
-"class_sync_machine_form_base.html#ac3d26a423d2fd7243c9361d360b0e6d3":[0,0,97,42],
-"class_sync_machine_form_base.html#ac4a8ed68ffba04940adbf6e3070291a4":[0,0,97,65],
-"class_sync_machine_form_base.html#ac71f3c270c8c796dd427ee6bd32f1c60":[0,0,97,38],
-"class_sync_machine_form_base.html#acc82ce4087f0fcde8e42e2b7f111cfcc":[0,0,97,57],
-"class_sync_machine_form_base.html#acef45c78c5bbaf1dee5b3abc895e8baf":[0,0,97,17],
-"class_sync_machine_form_base.html#ad3b5932a14988843670c516861029517":[0,0,97,33],
-"class_sync_machine_form_base.html#ad3dab6cd719a3464b4bca0e92063b20c":[0,0,97,23],
-"class_sync_machine_form_base.html#ad4789258aa31c9d3c699013ce6f3406f":[0,0,97,66],
-"class_sync_machine_form_base.html#ad47c151f396bbad83787de190055ea65":[0,0,97,20],
-"class_sync_machine_form_base.html#ad6e4bc150fc34819eaa2333d1d4cb2b8":[0,0,97,13],
-"class_sync_machine_form_base.html#ad720f87582570c72919f9094987bda08":[0,0,97,67],
-"class_sync_machine_form_base.html#ade8616fc5502cc760867821d52b2a697":[0,0,97,75],
-"class_sync_machine_form_base.html#ae0b5c587ae39b5e558bb298eb1f180b0":[0,0,97,41],
-"class_sync_machine_form_base.html#ae2aa2eb6ad549c8b918389df69b6af36":[0,0,97,18],
-"class_sync_machine_form_base.html#ae4c8099099059b6e5b8d4791991929c5":[0,0,97,51],
-"class_sync_machine_form_base.html#ae69f427b9931e920bcb615a15e74484e":[0,0,97,68],
-"class_sync_machine_form_base.html#aec2123bb23ad47344e000bf2e460117e":[0,0,97,45]
+"class_switching_form_base.html#a1181e4a27deea52b62aa6abd5cf06f98":[0,0,93,15]
};
diff --git a/docs/doxygen/html/search/all_0.js b/docs/doxygen/html/search/all_0.js
index 0a0141b..89e0e5e 100644
--- a/docs/doxygen/html/search/all_0.js
+++ b/docs/doxygen/html/search/all_0.js
@@ -1,6 +1,7 @@
var searchData=
[
['aboutform',['AboutForm',['../class_about_form.html',1,'']]],
+ ['aboutform_2eh',['AboutForm.h',['../_about_form_8h.html',1,'']]],
['aboutformbase',['AboutFormBase',['../class_about_form_base.html',1,'']]],
['addchild',['AddChild',['../class_element.html#ac38d6707d08cb5c057032aa94b511a62',1,'Element']]],
['addparent',['AddParent',['../class_bus.html#ab046baebe4bfe0a52905148d78f44681',1,'Bus::AddParent()'],['../class_capacitor.html#ace755e5bc3cc72b491ce31c24c54a5cf',1,'Capacitor::AddParent()'],['../class_element.html#a569178e9138490a981511a644536c0f9',1,'Element::AddParent(Element *parent, wxPoint2DDouble position)'],['../class_element.html#ad1f153a87797633ab310d07e1d06eba9',1,'Element::AddParent(Element *parent)'],['../class_inductor.html#a4e404c6e15f206fe0f5de06fc19dedf5',1,'Inductor::AddParent()'],['../class_line.html#a26c69f7f703dca718edc28d5093934a3',1,'Line::AddParent()'],['../class_load.html#ac9f449be9b919b36924a844324bf37ee',1,'Load::AddParent()'],['../class_machines.html#aaaf1b86dcbfd8f4a4c082a77d72b1fe3',1,'Machines::AddParent()'],['../class_text.html#a4f273ea7008c72533327c25caff2e917',1,'Text::AddParent()'],['../class_transformer.html#aea52a4562ec5b4a79bf82b8ede32ecc6',1,'Transformer::AddParent()']]],
diff --git a/docs/doxygen/html/search/all_1.js b/docs/doxygen/html/search/all_1.js
index bf9a3cd..d2cbbec 100644
--- a/docs/doxygen/html/search/all_1.js
+++ b/docs/doxygen/html/search/all_1.js
@@ -2,8 +2,11 @@ var searchData=
[
['bind',['bind',['../classwx_g_l_string.html#ab31442170832123f5a0afa2b15fb024a',1,'wxGLString::bind()'],['../classwx_g_l_string_array.html#a692adb887740de68eaf6ca5f2e16e1f6',1,'wxGLStringArray::bind()']]],
['branch',['Branch',['../class_branch.html',1,'']]],
+ ['branch_2eh',['Branch.h',['../_branch_8h.html',1,'']]],
['bus',['Bus',['../class_bus.html',1,'']]],
+ ['bus_2eh',['Bus.h',['../_bus_8h.html',1,'']]],
['buselectricaldata',['BusElectricalData',['../struct_bus_electrical_data.html',1,'']]],
['busform',['BusForm',['../class_bus_form.html',1,'']]],
+ ['busform_2eh',['BusForm.h',['../_bus_form_8h.html',1,'']]],
['busformbase',['BusFormBase',['../class_bus_form_base.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_10.js b/docs/doxygen/html/search/all_10.js
index 9b8e3a9..3ab5cad 100644
--- a/docs/doxygen/html/search/all_10.js
+++ b/docs/doxygen/html/search/all_10.js
@@ -1,15 +1,21 @@
var searchData=
[
['text',['Text',['../class_text.html',1,'']]],
+ ['text_2eh',['Text.h',['../_text_8h.html',1,'']]],
['textform',['TextForm',['../class_text_form.html',1,'']]],
+ ['textform_2eh',['TextForm.h',['../_text_form_8h.html',1,'']]],
['textformbase',['TextFormBase',['../class_text_form_base.html',1,'']]],
['textgldrawable',['TextGLDrawable',['../class_text_g_l_drawable.html',1,'']]],
['texttexture',['TextTexture',['../class_text_texture.html',1,'']]],
['transferfunction',['TransferFunction',['../class_transfer_function.html',1,'']]],
+ ['transferfunction_2eh',['TransferFunction.h',['../_transfer_function_8h.html',1,'']]],
['transferfunctionform',['TransferFunctionForm',['../class_transfer_function_form.html',1,'']]],
+ ['transferfunctionform_2eh',['TransferFunctionForm.h',['../_transfer_function_form_8h.html',1,'']]],
['transferfunctionformbase',['TransferFunctionFormBase',['../class_transfer_function_form_base.html',1,'']]],
['transformer',['Transformer',['../class_transformer.html',1,'']]],
+ ['transformer_2eh',['Transformer.h',['../_transformer_8h.html',1,'']]],
['transformerelectricaldata',['TransformerElectricalData',['../struct_transformer_electrical_data.html',1,'']]],
['transformerform',['TransformerForm',['../class_transformer_form.html',1,'']]],
+ ['transformerform_2eh',['TransformerForm.h',['../_transformer_form_8h.html',1,'']]],
['transformerformbase',['TransformerFormBase',['../class_transformer_form_base.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_12.js b/docs/doxygen/html/search/all_12.js
index c7b045e..245184a 100644
--- a/docs/doxygen/html/search/all_12.js
+++ b/docs/doxygen/html/search/all_12.js
@@ -1,6 +1,7 @@
var searchData=
[
['workspace',['Workspace',['../class_workspace.html',1,'']]],
+ ['workspace_2eh',['Workspace.h',['../_workspace_8h.html',1,'']]],
['workspacebase',['WorkspaceBase',['../class_workspace_base.html',1,'']]],
['worldtoscreen',['WorldToScreen',['../class_element.html#abfee7ea88f4689c2a6eb4d39452f84d8',1,'Element::WorldToScreen(wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const'],['../class_element.html#a147dd55d902171b212168ffde7262343',1,'Element::WorldToScreen(wxPoint2DDouble position, wxPoint2DDouble translation, double scale, double offsetX=0.0, double offsetY=0.0) const']]],
['wxglnumberrenderer',['wxGLNumberRenderer',['../classwx_g_l_number_renderer.html',1,'']]],
diff --git a/docs/doxygen/html/search/all_13.js b/docs/doxygen/html/search/all_13.js
index 91c4129..890e89e 100644
--- a/docs/doxygen/html/search/all_13.js
+++ b/docs/doxygen/html/search/all_13.js
@@ -1,8 +1,5 @@
var searchData=
[
- ['_7eelectriccalculation',['~ElectricCalculation',['../class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7',1,'ElectricCalculation']]],
- ['_7eelement',['~Element',['../class_element.html#a13d54ba9c08b6bec651402f1c2bb002c',1,'Element']]],
- ['_7efault',['~Fault',['../class_fault.html#a42019654142cd8187b314e43d70262eb',1,'Fault']]],
- ['_7eopenglcolour',['~OpenGLColour',['../class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0',1,'OpenGLColour']]],
- ['_7epowerelement',['~PowerElement',['../class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf',1,'PowerElement']]]
+ ['xd',['xd',['../struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330',1,'SyncMachineModelData']]],
+ ['xq',['xq',['../struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc',1,'SyncMachineModelData']]]
];
diff --git a/docs/doxygen/html/search/all_14.html b/docs/doxygen/html/search/all_14.html
new file mode 100644
index 0000000..fb4d0ec
--- /dev/null
+++ b/docs/doxygen/html/search/all_14.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="all_14.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/all_14.js b/docs/doxygen/html/search/all_14.js
new file mode 100644
index 0000000..9783142
--- /dev/null
+++ b/docs/doxygen/html/search/all_14.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['_7eelectriccalculation',['~ElectricCalculation',['../class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7',1,'ElectricCalculation']]],
+ ['_7eelement',['~Element',['../class_element.html#a13d54ba9c08b6bec651402f1c2bb002c',1,'Element']]],
+ ['_7efault',['~Fault',['../class_fault.html#a42019654142cd8187b314e43d70262eb',1,'Fault']]],
+ ['_7emainframe',['~MainFrame',['../class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11',1,'MainFrame']]],
+ ['_7eopenglcolour',['~OpenGLColour',['../class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0',1,'OpenGLColour']]],
+ ['_7epowerelement',['~PowerElement',['../class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf',1,'PowerElement']]]
+];
diff --git a/docs/doxygen/html/search/all_2.js b/docs/doxygen/html/search/all_2.js
index 3117bc8..cf70fac 100644
--- a/docs/doxygen/html/search/all_2.js
+++ b/docs/doxygen/html/search/all_2.js
@@ -3,24 +3,36 @@ var searchData=
['c',['c',['../struct_integration_constant.html#afc3598097377951b84492d087a06b455',1,'IntegrationConstant']]],
['calculateboundaries',['CalculateBoundaries',['../class_element.html#a57f5771fd003020fef3866a1d1dc7487',1,'Element::CalculateBoundaries()'],['../class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0',1,'Line::CalculateBoundaries()']]],
['calculatepowerflowpts',['CalculatePowerFlowPts',['../class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e',1,'PowerElement']]],
+ ['calculatespacestate',['CalculateSpaceState',['../class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a',1,'TransferFunction']]],
['camera',['Camera',['../class_camera.html',1,'']]],
+ ['camera_2eh',['Camera.h',['../_camera_8h.html',1,'']]],
['capacitor',['Capacitor',['../class_capacitor.html',1,'']]],
+ ['capacitor_2eh',['Capacitor.h',['../_capacitor_8h.html',1,'']]],
['capacitorelectricaldata',['CapacitorElectricalData',['../struct_capacitor_electrical_data.html',1,'']]],
['chartview',['ChartView',['../class_chart_view.html',1,'']]],
+ ['chartview_2eh',['ChartView.h',['../_chart_view_8h.html',1,'']]],
['chartviewbase',['ChartViewBase',['../class_chart_view_base.html',1,'']]],
['connectionline',['ConnectionLine',['../class_connection_line.html',1,'']]],
+ ['connectionline_2eh',['ConnectionLine.h',['../_connection_line_8h.html',1,'']]],
['consolidate',['consolidate',['../classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55',1,'wxGLString::consolidate()'],['../classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4',1,'wxGLNumberRenderer::consolidate()'],['../classwx_g_l_string_array.html#a2aaa7b340ee571ca6405bbec28715430',1,'wxGLStringArray::consolidate()']]],
['constant',['Constant',['../class_constant.html',1,'']]],
+ ['constant_2eh',['Constant.h',['../_constant_8h.html',1,'']]],
['constantform',['ConstantForm',['../class_constant_form.html',1,'']]],
+ ['constantform_2eh',['ConstantForm.h',['../_constant_form_8h.html',1,'']]],
['constantformbase',['ConstantFormBase',['../class_constant_form_base.html',1,'']]],
['contains',['Contains',['../class_branch.html#a691f94c3cd2abe1274e870d2882634d8',1,'Branch::Contains()'],['../class_bus.html#ad2b960058be6e990463b53d79c74c7a3',1,'Bus::Contains()'],['../class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5',1,'Capacitor::Contains()'],['../class_connection_line.html#a65c6d7139587c973a92dd1009909597f',1,'ConnectionLine::Contains()'],['../class_constant.html#ae091eb79633beb158dc06880424f7ce6',1,'Constant::Contains()'],['../class_element.html#abf6c4949733debca55b2f56d8e9b7372',1,'Element::Contains()'],['../class_exponential.html#a79eabfca357002f160b082a6df9f6f2b',1,'Exponential::Contains()'],['../class_gain.html#a9d80d49f5123cf4859bf15a251e3923f',1,'Gain::Contains()'],['../class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60',1,'Inductor::Contains()'],['../class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1',1,'IOControl::Contains()'],['../class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11',1,'Limiter::Contains()'],['../class_line.html#a05eb3761f198a058045f85d6e685ca97',1,'Line::Contains()'],['../class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e',1,'Machines::Contains()'],['../class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18',1,'Multiplier::Contains()'],['../class_rate_limiter.html#addf0eef395781b8584063a9061be59dc',1,'RateLimiter::Contains()'],['../class_shunt.html#a449431a2044b838d35cbb991aa1de658',1,'Shunt::Contains()'],['../class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987',1,'Sum::Contains()'],['../class_text.html#a51c55b9272f653cfc3cdafe665d5dde0',1,'Text::Contains()'],['../class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187',1,'TransferFunction::Contains()'],['../class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0',1,'Transformer::Contains()']]],
['contextmenuid',['ContextMenuID',['../_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049',1,'Element.h']]],
['controleditor',['ControlEditor',['../class_control_editor.html',1,'']]],
+ ['controleditor_2eh',['ControlEditor.h',['../_control_editor_8h.html',1,'']]],
['controleditorbase',['ControlEditorBase',['../class_control_editor_base.html',1,'']]],
['controlelement',['ControlElement',['../class_control_element.html',1,'']]],
+ ['controlelement_2eh',['ControlElement.h',['../_control_element_8h.html',1,'']]],
['controlelementbutton',['ControlElementButton',['../class_control_element_button.html',1,'']]],
['controlelementcontainer',['ControlElementContainer',['../class_control_element_container.html',1,'']]],
+ ['controlelementcontainer_2eh',['ControlElementContainer.h',['../_control_element_container_8h.html',1,'']]],
['controlelementsolver',['ControlElementSolver',['../class_control_element_solver.html',1,'']]],
+ ['controlelementsolver_2eh',['ControlElementSolver.h',['../_control_element_solver_8h.html',1,'']]],
['controlsystemtest',['ControlSystemTest',['../class_control_system_test.html',1,'']]],
+ ['controlsystemtest_2eh',['ControlSystemTest.h',['../_control_system_test_8h.html',1,'']]],
['controlsystemtestbase',['ControlSystemTestBase',['../class_control_system_test_base.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_3.js b/docs/doxygen/html/search/all_3.js
index dcd29cd..d8257de 100644
--- a/docs/doxygen/html/search/all_3.js
+++ b/docs/doxygen/html/search/all_3.js
@@ -1,6 +1,7 @@
var searchData=
[
['datareport',['DataReport',['../class_data_report.html',1,'']]],
+ ['datareport_2eh',['DataReport.h',['../_data_report_8h.html',1,'']]],
['datareportbase',['DataReportBase',['../class_data_report_base.html',1,'']]],
['doublefromstring',['DoubleFromString',['../class_element.html#acfd2c0fe1af5a8ad6da393fb711fd69a',1,'Element']]],
['draw',['Draw',['../class_branch.html#a7037f496f9b9c9e64c74eb638debe278',1,'Branch::Draw()'],['../class_bus.html#ae9022ca29399377d2fe0082bb762107c',1,'Bus::Draw()'],['../class_capacitor.html#a94d378c922467214b394931ec0eb01c8',1,'Capacitor::Draw()'],['../class_connection_line.html#a71cb3502dd098e1d1ef541668789586e',1,'ConnectionLine::Draw()'],['../class_constant.html#afc4d8739980ae1b57e9c5058c2e05591',1,'Constant::Draw()'],['../class_element.html#a551ed1eeab446b5366d56c2ee9dec187',1,'Element::Draw()'],['../class_exponential.html#af5f172e2f7ae7df0fc79b44b55355339',1,'Exponential::Draw()'],['../class_gain.html#a42f48bfdfb3d6f593fcc599504dd2264',1,'Gain::Draw()'],['../class_inductor.html#a97761292fac4f0da7ae3dc6ca4b4de54',1,'Inductor::Draw()'],['../class_i_o_control.html#aa6aab56f8936a87f099241d9bad9fee4',1,'IOControl::Draw()'],['../class_limiter.html#a2e2960936ebfcc6589181b7948fba242',1,'Limiter::Draw()'],['../class_line.html#a297e12aa8ff0be5d344e245732487bdd',1,'Line::Draw()'],['../class_load.html#aaef52b18cc53fa2db996fb9cad5db181',1,'Load::Draw()'],['../class_machines.html#af3279663c82de88e12f0487bfc633f7c',1,'Machines::Draw()'],['../class_multiplier.html#ae854fd981a98aca93b286081cc9c19f3',1,'Multiplier::Draw()'],['../class_rate_limiter.html#a6afc319e3a165776b8a429b9bbe38580',1,'RateLimiter::Draw()'],['../class_sum.html#a31dbb6867b17188b4a8cc650983da57b',1,'Sum::Draw()'],['../class_transfer_function.html#a0cd1dec850117741abb04b608c7b3f1e',1,'TransferFunction::Draw()'],['../class_transformer.html#a1e9e9ba48aa76bdd2ff2e973014ad422',1,'Transformer::Draw()']]],
diff --git a/docs/doxygen/html/search/all_4.js b/docs/doxygen/html/search/all_4.js
index 5b8026c..2d4913d 100644
--- a/docs/doxygen/html/search/all_4.js
+++ b/docs/doxygen/html/search/all_4.js
@@ -1,15 +1,22 @@
var searchData=
[
+ ['ed',['ed',['../struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6',1,'SyncMachineModelData']]],
['electricalunit',['ElectricalUnit',['../_power_element_8h.html#a398e3da742a726a8f2bacd8149220cca',1,'PowerElement.h']]],
['electriccalculation',['ElectricCalculation',['../class_electric_calculation.html',1,'ElectricCalculation'],['../class_electric_calculation.html#a6663e7a20e96ee975bd0f7d54b8a6f70',1,'ElectricCalculation::ElectricCalculation()']]],
['electriccalculation_2eh',['ElectricCalculation.h',['../_electric_calculation_8h.html',1,'']]],
['electromechanical',['Electromechanical',['../class_electromechanical.html',1,'']]],
+ ['electromechanical_2eh',['Electromechanical.h',['../_electromechanical_8h.html',1,'']]],
['element',['Element',['../class_element.html',1,'Element'],['../class_element.html#ab0d0e20be9a36ae676202db753faeec9',1,'Element::Element()']]],
['element_2eh',['Element.h',['../_element_8h.html',1,'']]],
['elementdataobject',['ElementDataObject',['../class_element_data_object.html',1,'']]],
+ ['elementdataobject_2eh',['ElementDataObject.h',['../_element_data_object_8h.html',1,'']]],
['elementplotdata',['ElementPlotData',['../class_element_plot_data.html',1,'']]],
+ ['elementplotdata_2eh',['ElementPlotData.h',['../_element_plot_data_8h.html',1,'']]],
['elementslists',['ElementsLists',['../struct_elements_lists.html',1,'']]],
+ ['eq',['eq',['../struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076',1,'SyncMachineModelData']]],
['exponential',['Exponential',['../class_exponential.html',1,'']]],
+ ['exponential_2eh',['Exponential.h',['../_exponential_8h.html',1,'']]],
['exponentialform',['ExponentialForm',['../class_exponential_form.html',1,'']]],
+ ['exponentialform_2eh',['ExponentialForm.h',['../_exponential_form_8h.html',1,'']]],
['exponentialformbase',['ExponentialFormBase',['../class_exponential_form_base.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_5.js b/docs/doxygen/html/search/all_5.js
index 9a4c639..0d4a3a9 100644
--- a/docs/doxygen/html/search/all_5.js
+++ b/docs/doxygen/html/search/all_5.js
@@ -10,5 +10,6 @@ var searchData=
['fault_5fline_5fground',['FAULT_LINE_GROUND',['../_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbaa8b6335aeec4befa68e4642a94026d0d',1,'PowerElement.h']]],
['fault_5fthreephase',['FAULT_THREEPHASE',['../_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cbac670e819e6d824b60cee62ca39ddc8d0',1,'PowerElement.h']]],
['faultdata',['FaultData',['../_power_element_8h.html#a41a50717b1a7ef4caa3c499c164fc2cb',1,'PowerElement.h']]],
- ['filehanding',['FileHanding',['../class_file_handing.html',1,'']]]
+ ['filehanding',['FileHanding',['../class_file_handing.html',1,'']]],
+ ['filehanding_2eh',['FileHanding.h',['../_file_handing_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_6.js b/docs/doxygen/html/search/all_6.js
index 449b5e6..5b21bea 100644
--- a/docs/doxygen/html/search/all_6.js
+++ b/docs/doxygen/html/search/all_6.js
@@ -1,13 +1,17 @@
var searchData=
[
['gain',['Gain',['../class_gain.html',1,'']]],
+ ['gain_2eh',['Gain.h',['../_gain_8h.html',1,'']]],
['gainform',['GainForm',['../class_gain_form.html',1,'']]],
+ ['gainform_2eh',['GainForm.h',['../_gain_form_8h.html',1,'']]],
['gainformbase',['GainFormBase',['../class_gain_form_base.html',1,'']]],
['generaldata',['GeneralData',['../struct_general_data.html',1,'']]],
['generalmenuitens',['GeneralMenuItens',['../class_element.html#a35f55626a29d5256f8dc07cf92655e64',1,'Element']]],
['generalpropertiesform',['GeneralPropertiesForm',['../class_general_properties_form.html',1,'']]],
+ ['generalpropertiesform_2eh',['GeneralPropertiesForm.h',['../_general_properties_form_8h.html',1,'']]],
['generalpropertiesformbase',['GeneralPropertiesFormBase',['../class_general_properties_form_base.html',1,'']]],
['generatorstabform',['GeneratorStabForm',['../class_generator_stab_form.html',1,'']]],
+ ['generatorstabform_2eh',['GeneratorStabForm.h',['../_generator_stab_form_8h.html',1,'']]],
['generatorstabformbase',['GeneratorStabFormBase',['../class_generator_stab_form_base.html',1,'']]],
['get',['get',['../classwx_g_l_string_array.html#a2ae0c1cffb2f54b66a170d1698ad62e0',1,'wxGLStringArray']]],
['getangle',['GetAngle',['../class_element.html#a5c75d8a6e28326dd568104a4d9d3473f',1,'Element']]],
@@ -41,5 +45,6 @@ var searchData=
['gettransformerlist',['GetTransformerList',['../class_electric_calculation.html#a3b89149e5fb56253c0629c9d260b3b7e',1,'ElectricCalculation']]],
['getwidth',['GetWidth',['../class_element.html#a23e1fe2745c70cfb43725f608c4bce00',1,'Element::GetWidth()'],['../class_text_g_l_drawable.html#a965ac9bf245f1979a080193986874f18',1,'TextGLDrawable::getWidth()']]],
['getybus',['GetYBus',['../class_electric_calculation.html#a939e6e75b5e0cb555a82b2f9ef59c59d',1,'ElectricCalculation']]],
- ['graphicalelement',['GraphicalElement',['../class_graphical_element.html',1,'']]]
+ ['graphicalelement',['GraphicalElement',['../class_graphical_element.html',1,'']]],
+ ['graphicalelement_2eh',['GraphicalElement.h',['../_graphical_element_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_8.js b/docs/doxygen/html/search/all_8.js
index 92d5ced..1fd429c 100644
--- a/docs/doxygen/html/search/all_8.js
+++ b/docs/doxygen/html/search/all_8.js
@@ -14,17 +14,22 @@ var searchData=
['id_5frotate_5fclock',['ID_ROTATE_CLOCK',['../_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049a9d58b2fe374676b88029d401da0d77a8',1,'Element.h']]],
['id_5frotate_5fcounterclock',['ID_ROTATE_COUNTERCLOCK',['../_element_8h.html#a0a9284bee7d4ad748c4a740fdeb3f049adeee9ba1a6f37ff0622ca94a52e40551',1,'Element.h']]],
['indmotor',['IndMotor',['../class_ind_motor.html',1,'']]],
+ ['indmotor_2eh',['IndMotor.h',['../_ind_motor_8h.html',1,'']]],
['indmotorelectricaldata',['IndMotorElectricalData',['../struct_ind_motor_electrical_data.html',1,'']]],
['indmotorform',['IndMotorForm',['../class_ind_motor_form.html',1,'']]],
+ ['indmotorform_2eh',['IndMotorForm.h',['../_ind_motor_form_8h.html',1,'']]],
['indmotorformbase',['IndMotorFormBase',['../class_ind_motor_form_base.html',1,'']]],
['inductor',['Inductor',['../class_inductor.html',1,'']]],
+ ['inductor_2eh',['Inductor.h',['../_inductor_8h.html',1,'']]],
['inductorelectricaldata',['InductorElectricalData',['../struct_inductor_electrical_data.html',1,'']]],
['integrationconstant',['IntegrationConstant',['../struct_integration_constant.html',1,'']]],
['intersects',['Intersects',['../class_branch.html#aa23b1014c947e46996f1c0c4caa187e1',1,'Branch::Intersects()'],['../class_bus.html#a5014be68f4bb5d8f1a1ea861b03bacdf',1,'Bus::Intersects()'],['../class_capacitor.html#a6b06adb1ef3545b220e0b94ee6210b7a',1,'Capacitor::Intersects()'],['../class_connection_line.html#aaa3e63c2e48338e324ee7b58911c86b6',1,'ConnectionLine::Intersects()'],['../class_constant.html#ac2e2c958b3d38ed381d59cbb361974b2',1,'Constant::Intersects()'],['../class_element.html#a038dfd8452fe48ab04bc4e47820c148e',1,'Element::Intersects()'],['../class_exponential.html#a540b1a43045b9bb7c96d32825d15c95e',1,'Exponential::Intersects()'],['../class_gain.html#a8768490f9cb20a6a8c9148d1c893e980',1,'Gain::Intersects()'],['../class_inductor.html#a3d331d2a725275a12489401180d4c1d1',1,'Inductor::Intersects()'],['../class_i_o_control.html#adebd59a32fd699ba4dff4dff44dfbf90',1,'IOControl::Intersects()'],['../class_limiter.html#ac9c1858dfc3b4d30b2eca0c4767a9f0e',1,'Limiter::Intersects()'],['../class_line.html#a125581fc6d21c83565b902751af331dc',1,'Line::Intersects()'],['../class_machines.html#a0a825ccdbd5059f9ae9f869d4b6e3ec4',1,'Machines::Intersects()'],['../class_multiplier.html#aba53ef763812fbff891cdf0b89c7fcca',1,'Multiplier::Intersects()'],['../class_rate_limiter.html#a7c1ce7440e82613b455054dd8447f147',1,'RateLimiter::Intersects()'],['../class_shunt.html#afdbf0c51f9630589937298329bb041fe',1,'Shunt::Intersects()'],['../class_sum.html#ac8ed3db993dd3053b94ccac7da4a664e',1,'Sum::Intersects()'],['../class_text.html#a9923c820cd77b411257ba48beceafeaa',1,'Text::Intersects()'],['../class_transfer_function.html#a6325dec72c7b85178f490c5cf85229bd',1,'TransferFunction::Intersects()'],['../class_transformer.html#a39b58fcf230970601c5d77c088559731',1,'Transformer::Intersects()']]],
['intfromstring',['IntFromString',['../class_element.html#a4c93a9e20ed0ca0c376cf412b4347159',1,'Element']]],
['invertmatrix',['InvertMatrix',['../class_electric_calculation.html#af00a6599f2b0b4e35bf0f8c70195447c',1,'ElectricCalculation']]],
['iocontrol',['IOControl',['../class_i_o_control.html',1,'']]],
+ ['iocontrol_2eh',['IOControl.h',['../_i_o_control_8h.html',1,'']]],
['iocontrolform',['IOControlForm',['../class_i_o_control_form.html',1,'']]],
+ ['iocontrolform_2eh',['IOControlForm.h',['../_i_o_control_form_8h.html',1,'']]],
['iocontrolformbase',['IOControlFormBase',['../class_i_o_control_form_base.html',1,'']]],
['isdragging',['IsDragging',['../class_element.html#a2f78fae8a5869ff53e87ecfdc6fc33b9',1,'Element']]],
['isonline',['IsOnline',['../class_element.html#a57c84a8e6eb80f0fea6e23cdd439d5aa',1,'Element']]],
diff --git a/docs/doxygen/html/search/all_9.js b/docs/doxygen/html/search/all_9.js
index f0ca242..c9479fa 100644
--- a/docs/doxygen/html/search/all_9.js
+++ b/docs/doxygen/html/search/all_9.js
@@ -1,14 +1,20 @@
var searchData=
[
['limiter',['Limiter',['../class_limiter.html',1,'']]],
+ ['limiter_2eh',['Limiter.h',['../_limiter_8h.html',1,'']]],
['limiterform',['LimiterForm',['../class_limiter_form.html',1,'']]],
+ ['limiterform_2eh',['LimiterForm.h',['../_limiter_form_8h.html',1,'']]],
['limiterformbase',['LimiterFormBase',['../class_limiter_form_base.html',1,'']]],
['line',['Line',['../class_line.html',1,'']]],
+ ['line_2eh',['Line.h',['../_line_8h.html',1,'']]],
['lineelectricaldata',['LineElectricalData',['../struct_line_electrical_data.html',1,'']]],
['lineform',['LineForm',['../class_line_form.html',1,'']]],
+ ['lineform_2eh',['LineForm.h',['../_line_form_8h.html',1,'']]],
['lineformbase',['LineFormBase',['../class_line_form_base.html',1,'']]],
['load',['Load',['../class_load.html',1,'']]],
+ ['load_2eh',['Load.h',['../_load_8h.html',1,'']]],
['loadelectricaldata',['LoadElectricalData',['../struct_load_electrical_data.html',1,'']]],
['loadform',['LoadForm',['../class_load_form.html',1,'']]],
+ ['loadform_2eh',['LoadForm.h',['../_load_form_8h.html',1,'']]],
['loadformbase',['LoadFormBase',['../class_load_form_base.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_a.js b/docs/doxygen/html/search/all_a.js
index 32e36d8..fb50828 100644
--- a/docs/doxygen/html/search/all_a.js
+++ b/docs/doxygen/html/search/all_a.js
@@ -2,11 +2,14 @@ var searchData=
[
['m',['m',['../struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65',1,'IntegrationConstant']]],
['machines',['Machines',['../class_machines.html',1,'']]],
+ ['machines_2eh',['Machines.h',['../_machines_8h.html',1,'']]],
['mainapp',['MainApp',['../class_main_app.html',1,'']]],
- ['mainframe',['MainFrame',['../class_main_frame.html',1,'']]],
+ ['mainframe',['MainFrame',['../class_main_frame.html',1,'MainFrame'],['../class_main_frame.html#a667b44053cae174a361cfd21124ef995',1,'MainFrame::MainFrame()'],['../class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8',1,'MainFrame::MainFrame(wxWindow *parent, wxLocale *locale, PropertiesData *initProperties, wxString openPath=&quot;&quot;)']]],
+ ['mainframe_2eh',['MainFrame.h',['../_main_frame_8h.html',1,'']]],
['mainframebase',['MainFrameBase',['../class_main_frame_base.html',1,'']]],
['move',['Move',['../class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70',1,'Branch::Move()'],['../class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7',1,'ConnectionLine::Move()'],['../class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708',1,'ControlElement::Move()'],['../class_element.html#abe884d99d12d5252e18956162115b025',1,'Element::Move()'],['../class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db',1,'Gain::Move()'],['../class_line.html#a3eabf6de2af4ee71f72ce4f091c69978',1,'Line::Move()'],['../class_machines.html#a2f7450283dd36f4fc0847dfd50385c44',1,'Machines::Move()'],['../class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3',1,'Shunt::Move()'],['../class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8',1,'Transformer::Move()']]],
['movenode',['MoveNode',['../class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a',1,'Branch::MoveNode()'],['../class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd',1,'Element::MoveNode()'],['../class_line.html#ac8be7d7136d86830c262280f51b79ea4',1,'Line::MoveNode()'],['../class_machines.html#aeab8436c33f74a10e252b418028ec491',1,'Machines::MoveNode()'],['../class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd',1,'Shunt::MoveNode()'],['../class_transformer.html#a9652232a076cca0fe3753477ec88f63a',1,'Transformer::MoveNode()']]],
['movepickbox',['MovePickbox',['../class_branch.html#af7879ee138170b1421f745f1c942ea05',1,'Branch::MovePickbox()'],['../class_bus.html#ad569e2192bf95efe668d401583382a04',1,'Bus::MovePickbox()'],['../class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525',1,'Element::MovePickbox()'],['../class_line.html#afa67498961416e645e0aa5358959ef1d',1,'Line::MovePickbox()']]],
- ['multiplier',['Multiplier',['../class_multiplier.html',1,'']]]
+ ['multiplier',['Multiplier',['../class_multiplier.html',1,'']]],
+ ['multiplier_2eh',['Multiplier.h',['../_multiplier_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_d.js b/docs/doxygen/html/search/all_d.js
index 275f43f..dfe18e8 100644
--- a/docs/doxygen/html/search/all_d.js
+++ b/docs/doxygen/html/search/all_d.js
@@ -13,6 +13,8 @@ var searchData=
['powerelement',['PowerElement',['../class_power_element.html',1,'PowerElement'],['../class_power_element.html#a382cdc0897802eb0a89692483fa7043e',1,'PowerElement::PowerElement()']]],
['powerelement_2eh',['PowerElement.h',['../_power_element_8h.html',1,'']]],
['powerflow',['PowerFlow',['../class_power_flow.html',1,'']]],
+ ['powerflow_2eh',['PowerFlow.h',['../_power_flow_8h.html',1,'']]],
['powerflowdirection',['PowerFlowDirection',['../_power_element_8h.html#a467d3005d31dde0ba0e52cf8e233e740',1,'PowerElement.h']]],
- ['propertiesdata',['PropertiesData',['../class_properties_data.html',1,'']]]
+ ['propertiesdata',['PropertiesData',['../class_properties_data.html',1,'']]],
+ ['propertiesdata_2eh',['PropertiesData.h',['../_properties_data_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/all_e.js b/docs/doxygen/html/search/all_e.js
index 7123aec..8fa9b09 100644
--- a/docs/doxygen/html/search/all_e.js
+++ b/docs/doxygen/html/search/all_e.js
@@ -1,10 +1,13 @@
var searchData=
[
['ratelimiter',['RateLimiter',['../class_rate_limiter.html',1,'']]],
+ ['ratelimiter_2eh',['RateLimiter.h',['../_rate_limiter_8h.html',1,'']]],
['ratelimiterform',['RateLimiterForm',['../class_rate_limiter_form.html',1,'']]],
+ ['ratelimiterform_2eh',['RateLimiterForm.h',['../_rate_limiter_form_8h.html',1,'']]],
['ratelimiterformbase',['RateLimiterFormBase',['../class_rate_limiter_form_base.html',1,'']]],
['reactivelimits',['ReactiveLimits',['../struct_reactive_limits.html',1,'']]],
['reactiveshuntelementform',['ReactiveShuntElementForm',['../class_reactive_shunt_element_form.html',1,'']]],
+ ['reactiveshuntelementform_2eh',['ReactiveShuntElementForm.h',['../_reactive_shunt_element_form_8h.html',1,'']]],
['reactiveshuntelementformbase',['ReactiveShuntElementFormBase',['../class_reactive_shunt_element_form_base.html',1,'']]],
['removechild',['RemoveChild',['../class_element.html#a6be881ba60674b289a91e498d3d8fc09',1,'Element']]],
['removeparent',['RemoveParent',['../class_branch.html#aa0328a743090b2b7b3f33d57a867b6dc',1,'Branch::RemoveParent()'],['../class_connection_line.html#a3f5584348b86e665161b033d4ce8d702',1,'ConnectionLine::RemoveParent()'],['../class_element.html#a9504437b60faf2c5a27584de8a24810c',1,'Element::RemoveParent()'],['../class_machines.html#a002d852ddd0d73502a6bd819b5545026',1,'Machines::RemoveParent()'],['../class_shunt.html#a665d9a8c291d427e666567c6df34321b',1,'Shunt::RemoveParent()']]],
diff --git a/docs/doxygen/html/search/all_f.js b/docs/doxygen/html/search/all_f.js
index 9ed2dd1..3ae9537 100644
--- a/docs/doxygen/html/search/all_f.js
+++ b/docs/doxygen/html/search/all_f.js
@@ -22,28 +22,38 @@ var searchData=
['showform',['ShowForm',['../class_bus.html#a93dbd8f80b11123395093f561d5241d0',1,'Bus::ShowForm()'],['../class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6',1,'Capacitor::ShowForm()'],['../class_constant.html#af6bded0e01717303bb71da9e45c2b061',1,'Constant::ShowForm()'],['../class_element.html#ae1652eded3ccbd241a783691117418b2',1,'Element::ShowForm()'],['../class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d',1,'Exponential::ShowForm()'],['../class_gain.html#a6b98027cbf545302867ad75f7ab84b93',1,'Gain::ShowForm()'],['../class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286',1,'IndMotor::ShowForm()'],['../class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9',1,'Inductor::ShowForm()'],['../class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439',1,'IOControl::ShowForm()'],['../class_limiter.html#a31fd227e010e7d39f1435a70709b14e3',1,'Limiter::ShowForm()'],['../class_line.html#a24c6a659148f063c78e080a18f4517a1',1,'Line::ShowForm()'],['../class_load.html#a792367f35c97324328816fee156e5ecf',1,'Load::ShowForm()'],['../class_multiplier.html#a4fa1206b47c626930db753a70e01680d',1,'Multiplier::ShowForm()'],['../class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60',1,'RateLimiter::ShowForm()'],['../class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b',1,'Sum::ShowForm()'],['../class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec',1,'SyncGenerator::ShowForm()'],['../class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f',1,'SyncMotor::ShowForm()'],['../class_transfer_function.html#afe15de93ab4f93032560a6139091ef10',1,'TransferFunction::ShowForm()'],['../class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f',1,'Transformer::ShowForm()']]],
['showpickbox',['ShowPickbox',['../class_element.html#ab8bf35b4a205fa58772402cea7fad89c',1,'Element']]],
['shunt',['Shunt',['../class_shunt.html',1,'']]],
+ ['shunt_2eh',['Shunt.h',['../_shunt_8h.html',1,'']]],
['simulationdata',['SimulationData',['../struct_simulation_data.html',1,'']]],
['simulationssettingsform',['SimulationsSettingsForm',['../class_simulations_settings_form.html',1,'']]],
+ ['simulationssettingsform_2eh',['SimulationsSettingsForm.h',['../_simulations_settings_form_8h.html',1,'']]],
['simulationssettingsformbase',['SimulationsSettingsFormBase',['../class_simulations_settings_form_base.html',1,'']]],
+ ['solve',['Solve',['../class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f',1,'Exponential::Solve()'],['../class_gain.html#a282cab6d339aa89a35c775bbea2aa117',1,'Gain::Solve()'],['../class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29',1,'RateLimiter::Solve()'],['../class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798',1,'TransferFunction::Solve()']]],
['spacestate',['SpaceState',['../struct_transfer_function_1_1_space_state.html',1,'TransferFunction']]],
['startmove',['StartMove',['../class_branch.html#a947cec45fcdc78d01eaabe19d23daf64',1,'Branch::StartMove()'],['../class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36',1,'ConnectionLine::StartMove()'],['../class_control_element.html#a61440a392d438de163bfe9ffb8e9efec',1,'ControlElement::StartMove()'],['../class_element.html#a846a2a51780a99363b4d4b1812ca16b4',1,'Element::StartMove()'],['../class_line.html#abb812387508a9971570bfa1d38e41041',1,'Line::StartMove()'],['../class_machines.html#acbefe76cd5161b5684a27205b155e797',1,'Machines::StartMove()'],['../class_shunt.html#a56d6136d647f64cf490dd9d7720f6865',1,'Shunt::StartMove()'],['../class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5',1,'Transformer::StartMove()']]],
['stringfromdouble',['StringFromDouble',['../class_element.html#abb2e253ec1e86353cd7160209c96553c',1,'Element']]],
['sum',['Sum',['../class_sum.html',1,'']]],
+ ['sum_2eh',['Sum.h',['../_sum_8h.html',1,'']]],
['sumform',['SumForm',['../class_sum_form.html',1,'']]],
+ ['sumform_2eh',['SumForm.h',['../_sum_form_8h.html',1,'']]],
['sumformbase',['SumFormBase',['../class_sum_form_base.html',1,'']]],
['sw_5finsert',['SW_INSERT',['../_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1bafd08c03e8d1218eaa3c5e8f69bb98ea7',1,'PowerElement.h']]],
['sw_5fremove',['SW_REMOVE',['../_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1baa0c70909536e1b1a2f638e13a7f7b776',1,'PowerElement.h']]],
['switchescontains',['SwitchesContains',['../class_power_element.html#a789105cc7c170330e7daf2a0453fde6d',1,'PowerElement']]],
['switchingdata',['SwitchingData',['../struct_switching_data.html',1,'']]],
['switchingform',['SwitchingForm',['../class_switching_form.html',1,'']]],
+ ['switchingform_2eh',['SwitchingForm.h',['../_switching_form_8h.html',1,'']]],
['switchingformbase',['SwitchingFormBase',['../class_switching_form_base.html',1,'']]],
['switchingtype',['SwitchingType',['../_power_element_8h.html#ae98a0d9ac1aab1d3a057854f5ebdca1b',1,'PowerElement.h']]],
['swtime',['swTime',['../struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df',1,'SwitchingData']]],
['swtype',['swType',['../struct_switching_data.html#af78fb958137a0532ea2a584810708574',1,'SwitchingData']]],
['syncgenerator',['SyncGenerator',['../class_sync_generator.html',1,'']]],
+ ['syncgenerator_2eh',['SyncGenerator.h',['../_sync_generator_8h.html',1,'']]],
['syncgeneratorelectricaldata',['SyncGeneratorElectricalData',['../struct_sync_generator_electrical_data.html',1,'']]],
['syncmachineform',['SyncMachineForm',['../class_sync_machine_form.html',1,'']]],
+ ['syncmachineform_2eh',['SyncMachineForm.h',['../_sync_machine_form_8h.html',1,'']]],
['syncmachineformbase',['SyncMachineFormBase',['../class_sync_machine_form_base.html',1,'']]],
+ ['syncmachinemodeldata',['SyncMachineModelData',['../struct_sync_machine_model_data.html',1,'']]],
['syncmotor',['SyncMotor',['../class_sync_motor.html',1,'']]],
+ ['syncmotor_2eh',['SyncMotor.h',['../_sync_motor_8h.html',1,'']]],
['syncmotorelectricaldata',['SyncMotorElectricalData',['../struct_sync_motor_electrical_data.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/classes_e.js b/docs/doxygen/html/search/classes_e.js
index ba84663..3f9dd56 100644
--- a/docs/doxygen/html/search/classes_e.js
+++ b/docs/doxygen/html/search/classes_e.js
@@ -15,6 +15,7 @@ var searchData=
['syncgeneratorelectricaldata',['SyncGeneratorElectricalData',['../struct_sync_generator_electrical_data.html',1,'']]],
['syncmachineform',['SyncMachineForm',['../class_sync_machine_form.html',1,'']]],
['syncmachineformbase',['SyncMachineFormBase',['../class_sync_machine_form_base.html',1,'']]],
+ ['syncmachinemodeldata',['SyncMachineModelData',['../struct_sync_machine_model_data.html',1,'']]],
['syncmotor',['SyncMotor',['../class_sync_motor.html',1,'']]],
['syncmotorelectricaldata',['SyncMotorElectricalData',['../struct_sync_motor_electrical_data.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/files_0.js b/docs/doxygen/html/search/files_0.js
index 47a0ae7..1111caf 100644
--- a/docs/doxygen/html/search/files_0.js
+++ b/docs/doxygen/html/search/files_0.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['electriccalculation_2eh',['ElectricCalculation.h',['../_electric_calculation_8h.html',1,'']]],
- ['element_2eh',['Element.h',['../_element_8h.html',1,'']]]
+ ['aboutform_2eh',['AboutForm.h',['../_about_form_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/files_1.js b/docs/doxygen/html/search/files_1.js
index dc739ff..a524e56 100644
--- a/docs/doxygen/html/search/files_1.js
+++ b/docs/doxygen/html/search/files_1.js
@@ -1,4 +1,6 @@
var searchData=
[
- ['fault_2eh',['Fault.h',['../_fault_8h.html',1,'']]]
+ ['branch_2eh',['Branch.h',['../_branch_8h.html',1,'']]],
+ ['bus_2eh',['Bus.h',['../_bus_8h.html',1,'']]],
+ ['busform_2eh',['BusForm.h',['../_bus_form_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/files_2.js b/docs/doxygen/html/search/files_2.js
index 00a21bf..fba6095 100644
--- a/docs/doxygen/html/search/files_2.js
+++ b/docs/doxygen/html/search/files_2.js
@@ -1,4 +1,14 @@
var searchData=
[
- ['powerelement_2eh',['PowerElement.h',['../_power_element_8h.html',1,'']]]
+ ['camera_2eh',['Camera.h',['../_camera_8h.html',1,'']]],
+ ['capacitor_2eh',['Capacitor.h',['../_capacitor_8h.html',1,'']]],
+ ['chartview_2eh',['ChartView.h',['../_chart_view_8h.html',1,'']]],
+ ['connectionline_2eh',['ConnectionLine.h',['../_connection_line_8h.html',1,'']]],
+ ['constant_2eh',['Constant.h',['../_constant_8h.html',1,'']]],
+ ['constantform_2eh',['ConstantForm.h',['../_constant_form_8h.html',1,'']]],
+ ['controleditor_2eh',['ControlEditor.h',['../_control_editor_8h.html',1,'']]],
+ ['controlelement_2eh',['ControlElement.h',['../_control_element_8h.html',1,'']]],
+ ['controlelementcontainer_2eh',['ControlElementContainer.h',['../_control_element_container_8h.html',1,'']]],
+ ['controlelementsolver_2eh',['ControlElementSolver.h',['../_control_element_solver_8h.html',1,'']]],
+ ['controlsystemtest_2eh',['ControlSystemTest.h',['../_control_system_test_8h.html',1,'']]]
];
diff --git a/docs/doxygen/html/search/files_3.html b/docs/doxygen/html/search/files_3.html
new file mode 100644
index 0000000..d5a9528
--- /dev/null
+++ b/docs/doxygen/html/search/files_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_3.js b/docs/doxygen/html/search/files_3.js
new file mode 100644
index 0000000..000db6c
--- /dev/null
+++ b/docs/doxygen/html/search/files_3.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['datareport_2eh',['DataReport.h',['../_data_report_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_4.html b/docs/doxygen/html/search/files_4.html
new file mode 100644
index 0000000..7b4c42a
--- /dev/null
+++ b/docs/doxygen/html/search/files_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_4.js b/docs/doxygen/html/search/files_4.js
new file mode 100644
index 0000000..2818aa2
--- /dev/null
+++ b/docs/doxygen/html/search/files_4.js
@@ -0,0 +1,10 @@
+var searchData=
+[
+ ['electriccalculation_2eh',['ElectricCalculation.h',['../_electric_calculation_8h.html',1,'']]],
+ ['electromechanical_2eh',['Electromechanical.h',['../_electromechanical_8h.html',1,'']]],
+ ['element_2eh',['Element.h',['../_element_8h.html',1,'']]],
+ ['elementdataobject_2eh',['ElementDataObject.h',['../_element_data_object_8h.html',1,'']]],
+ ['elementplotdata_2eh',['ElementPlotData.h',['../_element_plot_data_8h.html',1,'']]],
+ ['exponential_2eh',['Exponential.h',['../_exponential_8h.html',1,'']]],
+ ['exponentialform_2eh',['ExponentialForm.h',['../_exponential_form_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_5.html b/docs/doxygen/html/search/files_5.html
new file mode 100644
index 0000000..1f77bb1
--- /dev/null
+++ b/docs/doxygen/html/search/files_5.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_5.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_5.js b/docs/doxygen/html/search/files_5.js
new file mode 100644
index 0000000..48d132c
--- /dev/null
+++ b/docs/doxygen/html/search/files_5.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['fault_2eh',['Fault.h',['../_fault_8h.html',1,'']]],
+ ['filehanding_2eh',['FileHanding.h',['../_file_handing_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_6.html b/docs/doxygen/html/search/files_6.html
new file mode 100644
index 0000000..7573254
--- /dev/null
+++ b/docs/doxygen/html/search/files_6.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_6.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_6.js b/docs/doxygen/html/search/files_6.js
new file mode 100644
index 0000000..a12ca9d
--- /dev/null
+++ b/docs/doxygen/html/search/files_6.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['gain_2eh',['Gain.h',['../_gain_8h.html',1,'']]],
+ ['gainform_2eh',['GainForm.h',['../_gain_form_8h.html',1,'']]],
+ ['generalpropertiesform_2eh',['GeneralPropertiesForm.h',['../_general_properties_form_8h.html',1,'']]],
+ ['generatorstabform_2eh',['GeneratorStabForm.h',['../_generator_stab_form_8h.html',1,'']]],
+ ['graphicalelement_2eh',['GraphicalElement.h',['../_graphical_element_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_7.html b/docs/doxygen/html/search/files_7.html
new file mode 100644
index 0000000..214b329
--- /dev/null
+++ b/docs/doxygen/html/search/files_7.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_7.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_7.js b/docs/doxygen/html/search/files_7.js
new file mode 100644
index 0000000..9815ce2
--- /dev/null
+++ b/docs/doxygen/html/search/files_7.js
@@ -0,0 +1,8 @@
+var searchData=
+[
+ ['indmotor_2eh',['IndMotor.h',['../_ind_motor_8h.html',1,'']]],
+ ['indmotorform_2eh',['IndMotorForm.h',['../_ind_motor_form_8h.html',1,'']]],
+ ['inductor_2eh',['Inductor.h',['../_inductor_8h.html',1,'']]],
+ ['iocontrol_2eh',['IOControl.h',['../_i_o_control_8h.html',1,'']]],
+ ['iocontrolform_2eh',['IOControlForm.h',['../_i_o_control_form_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_8.html b/docs/doxygen/html/search/files_8.html
new file mode 100644
index 0000000..6720c7c
--- /dev/null
+++ b/docs/doxygen/html/search/files_8.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_8.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_8.js b/docs/doxygen/html/search/files_8.js
new file mode 100644
index 0000000..fe2246d
--- /dev/null
+++ b/docs/doxygen/html/search/files_8.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['limiter_2eh',['Limiter.h',['../_limiter_8h.html',1,'']]],
+ ['limiterform_2eh',['LimiterForm.h',['../_limiter_form_8h.html',1,'']]],
+ ['line_2eh',['Line.h',['../_line_8h.html',1,'']]],
+ ['lineform_2eh',['LineForm.h',['../_line_form_8h.html',1,'']]],
+ ['load_2eh',['Load.h',['../_load_8h.html',1,'']]],
+ ['loadform_2eh',['LoadForm.h',['../_load_form_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_9.html b/docs/doxygen/html/search/files_9.html
new file mode 100644
index 0000000..fc95877
--- /dev/null
+++ b/docs/doxygen/html/search/files_9.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_9.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_9.js b/docs/doxygen/html/search/files_9.js
new file mode 100644
index 0000000..538f1aa
--- /dev/null
+++ b/docs/doxygen/html/search/files_9.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['machines_2eh',['Machines.h',['../_machines_8h.html',1,'']]],
+ ['mainframe_2eh',['MainFrame.h',['../_main_frame_8h.html',1,'']]],
+ ['multiplier_2eh',['Multiplier.h',['../_multiplier_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_a.html b/docs/doxygen/html/search/files_a.html
new file mode 100644
index 0000000..ffe3e9d
--- /dev/null
+++ b/docs/doxygen/html/search/files_a.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_a.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_a.js b/docs/doxygen/html/search/files_a.js
new file mode 100644
index 0000000..089ad9a
--- /dev/null
+++ b/docs/doxygen/html/search/files_a.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['powerelement_2eh',['PowerElement.h',['../_power_element_8h.html',1,'']]],
+ ['powerflow_2eh',['PowerFlow.h',['../_power_flow_8h.html',1,'']]],
+ ['propertiesdata_2eh',['PropertiesData.h',['../_properties_data_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_b.html b/docs/doxygen/html/search/files_b.html
new file mode 100644
index 0000000..32cd2be
--- /dev/null
+++ b/docs/doxygen/html/search/files_b.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_b.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_b.js b/docs/doxygen/html/search/files_b.js
new file mode 100644
index 0000000..c7164b0
--- /dev/null
+++ b/docs/doxygen/html/search/files_b.js
@@ -0,0 +1,6 @@
+var searchData=
+[
+ ['ratelimiter_2eh',['RateLimiter.h',['../_rate_limiter_8h.html',1,'']]],
+ ['ratelimiterform_2eh',['RateLimiterForm.h',['../_rate_limiter_form_8h.html',1,'']]],
+ ['reactiveshuntelementform_2eh',['ReactiveShuntElementForm.h',['../_reactive_shunt_element_form_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_c.html b/docs/doxygen/html/search/files_c.html
new file mode 100644
index 0000000..bb83608
--- /dev/null
+++ b/docs/doxygen/html/search/files_c.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_c.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_c.js b/docs/doxygen/html/search/files_c.js
new file mode 100644
index 0000000..5f51894
--- /dev/null
+++ b/docs/doxygen/html/search/files_c.js
@@ -0,0 +1,11 @@
+var searchData=
+[
+ ['shunt_2eh',['Shunt.h',['../_shunt_8h.html',1,'']]],
+ ['simulationssettingsform_2eh',['SimulationsSettingsForm.h',['../_simulations_settings_form_8h.html',1,'']]],
+ ['sum_2eh',['Sum.h',['../_sum_8h.html',1,'']]],
+ ['sumform_2eh',['SumForm.h',['../_sum_form_8h.html',1,'']]],
+ ['switchingform_2eh',['SwitchingForm.h',['../_switching_form_8h.html',1,'']]],
+ ['syncgenerator_2eh',['SyncGenerator.h',['../_sync_generator_8h.html',1,'']]],
+ ['syncmachineform_2eh',['SyncMachineForm.h',['../_sync_machine_form_8h.html',1,'']]],
+ ['syncmotor_2eh',['SyncMotor.h',['../_sync_motor_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_d.html b/docs/doxygen/html/search/files_d.html
new file mode 100644
index 0000000..38bf2b3
--- /dev/null
+++ b/docs/doxygen/html/search/files_d.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_d.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_d.js b/docs/doxygen/html/search/files_d.js
new file mode 100644
index 0000000..0168322
--- /dev/null
+++ b/docs/doxygen/html/search/files_d.js
@@ -0,0 +1,9 @@
+var searchData=
+[
+ ['text_2eh',['Text.h',['../_text_8h.html',1,'']]],
+ ['textform_2eh',['TextForm.h',['../_text_form_8h.html',1,'']]],
+ ['transferfunction_2eh',['TransferFunction.h',['../_transfer_function_8h.html',1,'']]],
+ ['transferfunctionform_2eh',['TransferFunctionForm.h',['../_transfer_function_form_8h.html',1,'']]],
+ ['transformer_2eh',['Transformer.h',['../_transformer_8h.html',1,'']]],
+ ['transformerform_2eh',['TransformerForm.h',['../_transformer_form_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/files_e.html b/docs/doxygen/html/search/files_e.html
new file mode 100644
index 0000000..6f84762
--- /dev/null
+++ b/docs/doxygen/html/search/files_e.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="files_e.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/files_e.js b/docs/doxygen/html/search/files_e.js
new file mode 100644
index 0000000..fa01c6a
--- /dev/null
+++ b/docs/doxygen/html/search/files_e.js
@@ -0,0 +1,4 @@
+var searchData=
+[
+ ['workspace_2eh',['Workspace.h',['../_workspace_8h.html',1,'']]]
+];
diff --git a/docs/doxygen/html/search/functions_11.js b/docs/doxygen/html/search/functions_11.js
index 91c4129..9783142 100644
--- a/docs/doxygen/html/search/functions_11.js
+++ b/docs/doxygen/html/search/functions_11.js
@@ -3,6 +3,7 @@ var searchData=
['_7eelectriccalculation',['~ElectricCalculation',['../class_electric_calculation.html#a1e70291bfa9a0850d9ffcbee44daa2f7',1,'ElectricCalculation']]],
['_7eelement',['~Element',['../class_element.html#a13d54ba9c08b6bec651402f1c2bb002c',1,'Element']]],
['_7efault',['~Fault',['../class_fault.html#a42019654142cd8187b314e43d70262eb',1,'Fault']]],
+ ['_7emainframe',['~MainFrame',['../class_main_frame.html#a0cfd88ece4836e0ea5430bd55370bf11',1,'MainFrame']]],
['_7eopenglcolour',['~OpenGLColour',['../class_open_g_l_colour.html#a4b9a726773b4c82935f15add648ed2a0',1,'OpenGLColour']]],
['_7epowerelement',['~PowerElement',['../class_power_element.html#a39be7c8e3bdb96b16c26ea7f7d6e6cbf',1,'PowerElement']]]
];
diff --git a/docs/doxygen/html/search/functions_2.js b/docs/doxygen/html/search/functions_2.js
index bcc4927..254f5cb 100644
--- a/docs/doxygen/html/search/functions_2.js
+++ b/docs/doxygen/html/search/functions_2.js
@@ -2,6 +2,7 @@ var searchData=
[
['calculateboundaries',['CalculateBoundaries',['../class_element.html#a57f5771fd003020fef3866a1d1dc7487',1,'Element::CalculateBoundaries()'],['../class_line.html#aa146d6b0c7f3b74204f2c88dcbd7f4b0',1,'Line::CalculateBoundaries()']]],
['calculatepowerflowpts',['CalculatePowerFlowPts',['../class_power_element.html#a6c656ef223d36e96b19b0a9ec2115e9e',1,'PowerElement']]],
+ ['calculatespacestate',['CalculateSpaceState',['../class_transfer_function.html#a5f09dd8e5c016a90c69a8e38ef302c8a',1,'TransferFunction']]],
['consolidate',['consolidate',['../classwx_g_l_string.html#a54a67012ceb50ee50696c0c1fa0a7b55',1,'wxGLString::consolidate()'],['../classwx_g_l_number_renderer.html#aa79114bda6e5e4c3db4b8aeeb5f272c4',1,'wxGLNumberRenderer::consolidate()'],['../classwx_g_l_string_array.html#a2aaa7b340ee571ca6405bbec28715430',1,'wxGLStringArray::consolidate()']]],
['contains',['Contains',['../class_branch.html#a691f94c3cd2abe1274e870d2882634d8',1,'Branch::Contains()'],['../class_bus.html#ad2b960058be6e990463b53d79c74c7a3',1,'Bus::Contains()'],['../class_capacitor.html#a994039e59a8ae0ec3fe7cf7f5b66e4e5',1,'Capacitor::Contains()'],['../class_connection_line.html#a65c6d7139587c973a92dd1009909597f',1,'ConnectionLine::Contains()'],['../class_constant.html#ae091eb79633beb158dc06880424f7ce6',1,'Constant::Contains()'],['../class_element.html#abf6c4949733debca55b2f56d8e9b7372',1,'Element::Contains()'],['../class_exponential.html#a79eabfca357002f160b082a6df9f6f2b',1,'Exponential::Contains()'],['../class_gain.html#a9d80d49f5123cf4859bf15a251e3923f',1,'Gain::Contains()'],['../class_inductor.html#ac3ba7de94a328b20ff86e968a6228f60',1,'Inductor::Contains()'],['../class_i_o_control.html#aa064c5d70e562334e2b374f919f42ef1',1,'IOControl::Contains()'],['../class_limiter.html#ac6506d59da4ea682d9e556564ec3ad11',1,'Limiter::Contains()'],['../class_line.html#a05eb3761f198a058045f85d6e685ca97',1,'Line::Contains()'],['../class_machines.html#acda27b0ea8a7b0fb00d647d8744f346e',1,'Machines::Contains()'],['../class_multiplier.html#acee6216a03b550f3a9cad2bef3963a18',1,'Multiplier::Contains()'],['../class_rate_limiter.html#addf0eef395781b8584063a9061be59dc',1,'RateLimiter::Contains()'],['../class_shunt.html#a449431a2044b838d35cbb991aa1de658',1,'Shunt::Contains()'],['../class_sum.html#a1d1b52ca1b9a81d53c0a9cf140546987',1,'Sum::Contains()'],['../class_text.html#a51c55b9272f653cfc3cdafe665d5dde0',1,'Text::Contains()'],['../class_transfer_function.html#a6a4415d2cf0af290494ea30d586cc187',1,'TransferFunction::Contains()'],['../class_transformer.html#a327ff3cf9194c18049e4feac6761ebc0',1,'Transformer::Contains()']]]
];
diff --git a/docs/doxygen/html/search/functions_9.js b/docs/doxygen/html/search/functions_9.js
index aa08d12..1b13503 100644
--- a/docs/doxygen/html/search/functions_9.js
+++ b/docs/doxygen/html/search/functions_9.js
@@ -1,5 +1,6 @@
var searchData=
[
+ ['mainframe',['MainFrame',['../class_main_frame.html#a667b44053cae174a361cfd21124ef995',1,'MainFrame::MainFrame()'],['../class_main_frame.html#ac3288e93c5b8682863574bc47c9e9ff8',1,'MainFrame::MainFrame(wxWindow *parent, wxLocale *locale, PropertiesData *initProperties, wxString openPath=&quot;&quot;)']]],
['move',['Move',['../class_branch.html#a7cf4b117f43f49bb76cce3df5521fb70',1,'Branch::Move()'],['../class_connection_line.html#a49300d04c6dd4bcc6f4569c0c47780c7',1,'ConnectionLine::Move()'],['../class_control_element.html#ac8bd52ddb8eed51a217fecb2eed65708',1,'ControlElement::Move()'],['../class_element.html#abe884d99d12d5252e18956162115b025',1,'Element::Move()'],['../class_gain.html#aa303bcc736ac5fad1f89c6cc87e859db',1,'Gain::Move()'],['../class_line.html#a3eabf6de2af4ee71f72ce4f091c69978',1,'Line::Move()'],['../class_machines.html#a2f7450283dd36f4fc0847dfd50385c44',1,'Machines::Move()'],['../class_shunt.html#aa98b8a2f097fc02fee1ea874e19480f3',1,'Shunt::Move()'],['../class_transformer.html#a67f1e2686932700fe8a83fdc232ea1e8',1,'Transformer::Move()']]],
['movenode',['MoveNode',['../class_branch.html#aef2ffe79c9b239fb5a1ad175555a9f5a',1,'Branch::MoveNode()'],['../class_element.html#a870e266e0457bacbc3f7ef1fb70c6fdd',1,'Element::MoveNode()'],['../class_line.html#ac8be7d7136d86830c262280f51b79ea4',1,'Line::MoveNode()'],['../class_machines.html#aeab8436c33f74a10e252b418028ec491',1,'Machines::MoveNode()'],['../class_shunt.html#a23d2fed4e9b6a69bc4527b4345bd5bbd',1,'Shunt::MoveNode()'],['../class_transformer.html#a9652232a076cca0fe3753477ec88f63a',1,'Transformer::MoveNode()']]],
['movepickbox',['MovePickbox',['../class_branch.html#af7879ee138170b1421f745f1c942ea05',1,'Branch::MovePickbox()'],['../class_bus.html#ad569e2192bf95efe668d401583382a04',1,'Bus::MovePickbox()'],['../class_element.html#a6f071b6dfd64721ca673bfbe1ca2d525',1,'Element::MovePickbox()'],['../class_line.html#afa67498961416e645e0aa5358959ef1d',1,'Line::MovePickbox()']]]
diff --git a/docs/doxygen/html/search/functions_e.js b/docs/doxygen/html/search/functions_e.js
index c3bdfae..3df8d91 100644
--- a/docs/doxygen/html/search/functions_e.js
+++ b/docs/doxygen/html/search/functions_e.js
@@ -21,6 +21,7 @@ var searchData=
['setwidth',['SetWidth',['../class_element.html#a5da121470a0c26c6b5c57a7c4eeac48b',1,'Element']]],
['showform',['ShowForm',['../class_bus.html#a93dbd8f80b11123395093f561d5241d0',1,'Bus::ShowForm()'],['../class_capacitor.html#a459b1bbdb153bb9720176661e2960ea6',1,'Capacitor::ShowForm()'],['../class_constant.html#af6bded0e01717303bb71da9e45c2b061',1,'Constant::ShowForm()'],['../class_element.html#ae1652eded3ccbd241a783691117418b2',1,'Element::ShowForm()'],['../class_exponential.html#abdf1c3c1d8e7839fc2a8fc914acff68d',1,'Exponential::ShowForm()'],['../class_gain.html#a6b98027cbf545302867ad75f7ab84b93',1,'Gain::ShowForm()'],['../class_ind_motor.html#add48c9a03d197a6279ca2e33af0fe286',1,'IndMotor::ShowForm()'],['../class_inductor.html#abfaf28fc70a71f3f85940eef7d1551c9',1,'Inductor::ShowForm()'],['../class_i_o_control.html#abbd3054700825f9c4ac1b7c813f7b439',1,'IOControl::ShowForm()'],['../class_limiter.html#a31fd227e010e7d39f1435a70709b14e3',1,'Limiter::ShowForm()'],['../class_line.html#a24c6a659148f063c78e080a18f4517a1',1,'Line::ShowForm()'],['../class_load.html#a792367f35c97324328816fee156e5ecf',1,'Load::ShowForm()'],['../class_multiplier.html#a4fa1206b47c626930db753a70e01680d',1,'Multiplier::ShowForm()'],['../class_rate_limiter.html#a7d16df402b56e0025bab076aa071be60',1,'RateLimiter::ShowForm()'],['../class_sum.html#a8c4bfb1dc965d8ac246de59d1f10888b',1,'Sum::ShowForm()'],['../class_sync_generator.html#a4a9dd07d901f26cc8304399fe241afec',1,'SyncGenerator::ShowForm()'],['../class_sync_motor.html#a3201b22e0271517f5ed3df85da6cee6f',1,'SyncMotor::ShowForm()'],['../class_transfer_function.html#afe15de93ab4f93032560a6139091ef10',1,'TransferFunction::ShowForm()'],['../class_transformer.html#acb55f182a7f6d7af0feb6a94cb62af4f',1,'Transformer::ShowForm()']]],
['showpickbox',['ShowPickbox',['../class_element.html#ab8bf35b4a205fa58772402cea7fad89c',1,'Element']]],
+ ['solve',['Solve',['../class_exponential.html#ae8e635b32b5d6a8226a3654aa639094f',1,'Exponential::Solve()'],['../class_gain.html#a282cab6d339aa89a35c775bbea2aa117',1,'Gain::Solve()'],['../class_rate_limiter.html#a2697e0f56b574739651fa2126b315e29',1,'RateLimiter::Solve()'],['../class_transfer_function.html#ab23ed101f7d4e953e4df0d4d480d9798',1,'TransferFunction::Solve()']]],
['startmove',['StartMove',['../class_branch.html#a947cec45fcdc78d01eaabe19d23daf64',1,'Branch::StartMove()'],['../class_connection_line.html#a292d284d6f30b209995c2a9877f9fe36',1,'ConnectionLine::StartMove()'],['../class_control_element.html#a61440a392d438de163bfe9ffb8e9efec',1,'ControlElement::StartMove()'],['../class_element.html#a846a2a51780a99363b4d4b1812ca16b4',1,'Element::StartMove()'],['../class_line.html#abb812387508a9971570bfa1d38e41041',1,'Line::StartMove()'],['../class_machines.html#acbefe76cd5161b5684a27205b155e797',1,'Machines::StartMove()'],['../class_shunt.html#a56d6136d647f64cf490dd9d7720f6865',1,'Shunt::StartMove()'],['../class_transformer.html#a0395a11dc8173e511a0596ac96bf05e5',1,'Transformer::StartMove()']]],
['stringfromdouble',['StringFromDouble',['../class_element.html#abb2e253ec1e86353cd7160209c96553c',1,'Element']]],
['switchescontains',['SwitchesContains',['../class_power_element.html#a789105cc7c170330e7daf2a0453fde6d',1,'PowerElement']]]
diff --git a/docs/doxygen/html/search/searchdata.js b/docs/doxygen/html/search/searchdata.js
index 3b1b25b..f3691ff 100644
--- a/docs/doxygen/html/search/searchdata.js
+++ b/docs/doxygen/html/search/searchdata.js
@@ -1,10 +1,10 @@
var indexSectionsWithContent =
{
- 0: "abcdefghilmnoprstuw~",
+ 0: "abcdefghilmnoprstuwx~",
1: "abcdefgilmnoprstw",
- 2: "efp",
+ 2: "abcdefgilmprstw",
3: "abcdefghimnoprsuw~",
- 4: "cms",
+ 4: "cemsx",
5: "cefps",
6: "fipsu",
7: "p"
diff --git a/docs/doxygen/html/search/variables_1.js b/docs/doxygen/html/search/variables_1.js
index 51cdb68..94a4e17 100644
--- a/docs/doxygen/html/search/variables_1.js
+++ b/docs/doxygen/html/search/variables_1.js
@@ -1,4 +1,5 @@
var searchData=
[
- ['m',['m',['../struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65',1,'IntegrationConstant']]]
+ ['ed',['ed',['../struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6',1,'SyncMachineModelData']]],
+ ['eq',['eq',['../struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076',1,'SyncMachineModelData']]]
];
diff --git a/docs/doxygen/html/search/variables_2.js b/docs/doxygen/html/search/variables_2.js
index 29e91ca..51cdb68 100644
--- a/docs/doxygen/html/search/variables_2.js
+++ b/docs/doxygen/html/search/variables_2.js
@@ -1,5 +1,4 @@
var searchData=
[
- ['swtime',['swTime',['../struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df',1,'SwitchingData']]],
- ['swtype',['swType',['../struct_switching_data.html#af78fb958137a0532ea2a584810708574',1,'SwitchingData']]]
+ ['m',['m',['../struct_integration_constant.html#adafabd0d37a52d4ed054a800cbce3d65',1,'IntegrationConstant']]]
];
diff --git a/docs/doxygen/html/search/variables_3.html b/docs/doxygen/html/search/variables_3.html
new file mode 100644
index 0000000..f95e34c
--- /dev/null
+++ b/docs/doxygen/html/search/variables_3.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_3.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/variables_3.js b/docs/doxygen/html/search/variables_3.js
new file mode 100644
index 0000000..29e91ca
--- /dev/null
+++ b/docs/doxygen/html/search/variables_3.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['swtime',['swTime',['../struct_switching_data.html#a3323745bf0a3f6461fbc19bc76a189df',1,'SwitchingData']]],
+ ['swtype',['swType',['../struct_switching_data.html#af78fb958137a0532ea2a584810708574',1,'SwitchingData']]]
+];
diff --git a/docs/doxygen/html/search/variables_4.html b/docs/doxygen/html/search/variables_4.html
new file mode 100644
index 0000000..d7db285
--- /dev/null
+++ b/docs/doxygen/html/search/variables_4.html
@@ -0,0 +1,26 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html><head><title></title>
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<link rel="stylesheet" type="text/css" href="search.css"/>
+<script type="text/javascript" src="variables_4.js"></script>
+<script type="text/javascript" src="search.js"></script>
+</head>
+<body class="SRPage">
+<div id="SRIndex">
+<div class="SRStatus" id="Loading">Loading...</div>
+<div id="SRResults"></div>
+<script type="text/javascript"><!--
+createResults();
+--></script>
+<div class="SRStatus" id="Searching">Searching...</div>
+<div class="SRStatus" id="NoMatches">No Matches</div>
+<script type="text/javascript"><!--
+document.getElementById("Loading").style.display="none";
+document.getElementById("NoMatches").style.display="none";
+var searchResults = new SearchResults("searchResults");
+searchResults.Search();
+--></script>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/search/variables_4.js b/docs/doxygen/html/search/variables_4.js
new file mode 100644
index 0000000..890e89e
--- /dev/null
+++ b/docs/doxygen/html/search/variables_4.js
@@ -0,0 +1,5 @@
+var searchData=
+[
+ ['xd',['xd',['../struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330',1,'SyncMachineModelData']]],
+ ['xq',['xq',['../struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc',1,'SyncMachineModelData']]]
+];
diff --git a/docs/doxygen/html/struct_bus_electrical_data-members.html b/docs/doxygen/html/struct_bus_electrical_data-members.html
index 2bba844..766f301 100644
--- a/docs/doxygen/html/struct_bus_electrical_data-members.html
+++ b/docs/doxygen/html/struct_bus_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_bus_electrical_data.html b/docs/doxygen/html/struct_bus_electrical_data.html
index 2a0a984..a3b2417 100644
--- a/docs/doxygen/html/struct_bus_electrical_data.html
+++ b/docs/doxygen/html/struct_bus_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -167,7 +173,7 @@ std::vector&lt; std::complex&lt; double &gt; &gt;&#160;</td><td class="memItemRi
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00007">7</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00024">24</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a3c86be4f2a93b65962dc3b10add7c222"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3c86be4f2a93b65962dc3b10add7c222">&#9670;&nbsp;</a></span>faultCurrent</h2>
@@ -181,7 +187,7 @@ std::vector&lt; std::complex&lt; double &gt; &gt;&#160;</td><td class="memItemRi
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"> std::complex&lt;double&gt;(0.0, 0.0)}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00029">29</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00046">46</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
</div>
</div>
@@ -197,7 +203,7 @@ std::vector&lt; std::complex&lt; double &gt; &gt;&#160;</td><td class="memItemRi
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"> std::complex&lt;double&gt;(0.0, 0.0)}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00031">31</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_bus_8h_source.html#l00048">48</a> of file <a class="el" href="_bus_8h_source.html">Bus.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/struct_capacitor_electrical_data-members.html b/docs/doxygen/html/struct_capacitor_electrical_data-members.html
index 50f6760..a590102 100644
--- a/docs/doxygen/html/struct_capacitor_electrical_data-members.html
+++ b/docs/doxygen/html/struct_capacitor_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_capacitor_electrical_data.html b/docs/doxygen/html/struct_capacitor_electrical_data.html
index e5665ee..c477257 100644
--- a/docs/doxygen/html/struct_capacitor_electrical_data.html
+++ b/docs/doxygen/html/struct_capacitor_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -100,7 +106,7 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>reactivePower</b> =
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_capacitor_8h_source.html#l00008">8</a> of file <a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_capacitor_8h_source.html#l00025">25</a> of file <a class="el" href="_capacitor_8h_source.html">Capacitor.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_capacitor_8h_source.html">Capacitor.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_elements_lists-members.html b/docs/doxygen/html/struct_elements_lists-members.html
index ca0a133..27284b3 100644
--- a/docs/doxygen/html/struct_elements_lists-members.html
+++ b/docs/doxygen/html/struct_elements_lists-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_elements_lists.html b/docs/doxygen/html/struct_elements_lists.html
index e8241c0..ea962ec 100644
--- a/docs/doxygen/html/struct_elements_lists.html
+++ b/docs/doxygen/html/struct_elements_lists.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -97,7 +103,7 @@ std::vector&lt; <a class="el" href="class_bus.html">Bus</a> * &gt;&#160;</td><td
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_element_data_object_8h_source.html#l00007">7</a> of file <a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_element_data_object_8h_source.html#l00024">24</a> of file <a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_element_data_object_8h_source.html">ElementDataObject.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_general_data-members.html b/docs/doxygen/html/struct_general_data-members.html
index afbfc23..b4478e3 100644
--- a/docs/doxygen/html/struct_general_data-members.html
+++ b/docs/doxygen/html/struct_general_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_general_data.html b/docs/doxygen/html/struct_general_data.html
index 46e0ada..eeed094 100644
--- a/docs/doxygen/html/struct_general_data.html
+++ b/docs/doxygen/html/struct_general_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -97,7 +103,7 @@ GUITheme&#160;</td><td class="memItemRight" valign="bottom"><b>theme</b> = THEME
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00035">35</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00052">52</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_ind_motor_electrical_data-members.html b/docs/doxygen/html/struct_ind_motor_electrical_data-members.html
index ee08501..c2d0874 100644
--- a/docs/doxygen/html/struct_ind_motor_electrical_data-members.html
+++ b/docs/doxygen/html/struct_ind_motor_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_ind_motor_electrical_data.html b/docs/doxygen/html/struct_ind_motor_electrical_data.html
index 8fc36d7..8986f32 100644
--- a/docs/doxygen/html/struct_ind_motor_electrical_data.html
+++ b/docs/doxygen/html/struct_ind_motor_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -106,7 +112,7 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>reactivePower</b> =
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_ind_motor_8h_source.html#l00008">8</a> of file <a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_ind_motor_8h_source.html#l00025">25</a> of file <a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_ind_motor_8h_source.html">IndMotor.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_inductor_electrical_data-members.html b/docs/doxygen/html/struct_inductor_electrical_data-members.html
index d654a19..30499cd 100644
--- a/docs/doxygen/html/struct_inductor_electrical_data-members.html
+++ b/docs/doxygen/html/struct_inductor_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_inductor_electrical_data.html b/docs/doxygen/html/struct_inductor_electrical_data.html
index b7856e6..82acfff 100644
--- a/docs/doxygen/html/struct_inductor_electrical_data.html
+++ b/docs/doxygen/html/struct_inductor_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -100,7 +106,7 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>reactivePower</b> =
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_inductor_8h_source.html#l00008">8</a> of file <a class="el" href="_inductor_8h_source.html">Inductor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_inductor_8h_source.html#l00025">25</a> of file <a class="el" href="_inductor_8h_source.html">Inductor.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_inductor_8h_source.html">Inductor.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_integration_constant-members.html b/docs/doxygen/html/struct_integration_constant-members.html
index df4fd6f..9aa8eb7 100644
--- a/docs/doxygen/html/struct_integration_constant-members.html
+++ b/docs/doxygen/html/struct_integration_constant-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_integration_constant.html b/docs/doxygen/html/struct_integration_constant.html
index 0b7d0e2..37563a3 100644
--- a/docs/doxygen/html/struct_integration_constant.html
+++ b/docs/doxygen/html/struct_integration_constant.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,9 @@ $(document).ready(function(){initNavTree('struct_integration_constant.html','');
</div><!--header-->
<div class="contents">
+<p>Integration constants to calculate dynamic elements through trapezoidal integration method.
+ <a href="struct_integration_constant.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
@@ -96,10 +105,11 @@ Public Attributes</h2></td></tr>
<tr class="separator:adafabd0d37a52d4ed054a800cbce3d65"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Integration constants to calculate dynamic elements through trapezoidal integration method. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
<dl class="section date"><dt>Date</dt><dd>24/05/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00088">88</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00105">105</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="afc3598097377951b84492d087a06b455"></a>
<h2 class="memtitle"><span class="permalink"><a href="#afc3598097377951b84492d087a06b455">&#9670;&nbsp;</a></span>c</h2>
@@ -114,7 +124,7 @@ Public Attributes</h2></td></tr>
</div><div class="memdoc">
<p>C value </p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00089">89</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00106">106</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -131,7 +141,7 @@ Public Attributes</h2></td></tr>
</div><div class="memdoc">
<p>M value </p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00090">90</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00107">107</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/struct_line_electrical_data-members.html b/docs/doxygen/html/struct_line_electrical_data-members.html
index 085cf66..455a58e 100644
--- a/docs/doxygen/html/struct_line_electrical_data-members.html
+++ b/docs/doxygen/html/struct_line_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_line_electrical_data.html b/docs/doxygen/html/struct_line_electrical_data.html
index da0f98e..945b056 100644
--- a/docs/doxygen/html/struct_line_electrical_data.html
+++ b/docs/doxygen/html/struct_line_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -148,7 +154,7 @@ std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom">
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00007">7</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_line_8h_source.html#l00024">24</a> of file <a class="el" href="_line_8h_source.html">Line.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_line_8h_source.html">Line.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_load_electrical_data-members.html b/docs/doxygen/html/struct_load_electrical_data-members.html
index ed287c6..51d64a1 100644
--- a/docs/doxygen/html/struct_load_electrical_data-members.html
+++ b/docs/doxygen/html/struct_load_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_load_electrical_data.html b/docs/doxygen/html/struct_load_electrical_data.html
index d26161a..94a51b4 100644
--- a/docs/doxygen/html/struct_load_electrical_data.html
+++ b/docs/doxygen/html/struct_load_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -109,7 +115,7 @@ LoadType&#160;</td><td class="memItemRight" valign="bottom"><b>loadType</b> = CO
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_load_8h_source.html#l00013">13</a> of file <a class="el" href="_load_8h_source.html">Load.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_load_8h_source.html#l00026">26</a> of file <a class="el" href="_load_8h_source.html">Load.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_load_8h_source.html">Load.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_reactive_limits-members.html b/docs/doxygen/html/struct_reactive_limits-members.html
index 8dfb4c9..84f1b0e 100644
--- a/docs/doxygen/html/struct_reactive_limits-members.html
+++ b/docs/doxygen/html/struct_reactive_limits-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_reactive_limits.html b/docs/doxygen/html/struct_reactive_limits.html
index 6ed9284..896e17f 100644
--- a/docs/doxygen/html/struct_reactive_limits.html
+++ b/docs/doxygen/html/struct_reactive_limits.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -106,7 +112,7 @@ ReactiveLimitsType&#160;</td><td class="memItemRight" valign="bottom"><b>limitRe
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00034">34</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_electric_calculation_8h_source.html#l00051">51</a> of file <a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_electric_calculation_8h_source.html">ElectricCalculation.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_simulation_data-members.html b/docs/doxygen/html/struct_simulation_data-members.html
index 8b95abd..f6fc800 100644
--- a/docs/doxygen/html/struct_simulation_data-members.html
+++ b/docs/doxygen/html/struct_simulation_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_simulation_data.html b/docs/doxygen/html/struct_simulation_data.html
index 1e95c3e..934f897 100644
--- a/docs/doxygen/html/struct_simulation_data.html
+++ b/docs/doxygen/html/struct_simulation_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -139,7 +145,7 @@ bool&#160;</td><td class="memItemRight" valign="bottom"><b>useCOI</b> = true</td
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00011">11</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_properties_data_8h_source.html#l00028">28</a> of file <a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_properties_data_8h_source.html">PropertiesData.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_switching_data-members.html b/docs/doxygen/html/struct_switching_data-members.html
index 6644eae..1e2b624 100644
--- a/docs/doxygen/html/struct_switching_data-members.html
+++ b/docs/doxygen/html/struct_switching_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_switching_data.html b/docs/doxygen/html/struct_switching_data.html
index faba3f6..e0e1e97 100644
--- a/docs/doxygen/html/struct_switching_data.html
+++ b/docs/doxygen/html/struct_switching_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -86,6 +92,9 @@ $(document).ready(function(){initNavTree('struct_switching_data.html','');});
</div><!--header-->
<div class="contents">
+<p>Switching data of power elements.
+ <a href="struct_switching_data.html#details">More...</a></p>
+
<p><code>#include &lt;<a class="el" href="_power_element_8h_source.html">PowerElement.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
@@ -96,10 +105,11 @@ Public Attributes</h2></td></tr>
<tr class="separator:a3323745bf0a3f6461fbc19bc76a189df"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
-<div class="textblock"><dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
+<div class="textblock"><p>Switching data of power elements. </p>
+<dl class="section author"><dt>Author</dt><dd>Thales Lima Oliveira </dd></dl>
<dl class="section date"><dt>Date</dt><dd>18/01/2017 </dd></dl>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00076">76</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00093">93</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a3323745bf0a3f6461fbc19bc76a189df"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a3323745bf0a3f6461fbc19bc76a189df">&#9670;&nbsp;</a></span>swTime</h2>
@@ -114,7 +124,7 @@ Public Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Time of switching </p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00078">78</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00095">95</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
@@ -131,7 +141,7 @@ Public Attributes</h2></td></tr>
</div><div class="memdoc">
<p>Type of switching </p>
-<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00077">77</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_power_element_8h_source.html#l00094">94</a> of file <a class="el" href="_power_element_8h_source.html">PowerElement.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/struct_sync_generator_electrical_data-members.html b/docs/doxygen/html/struct_sync_generator_electrical_data-members.html
index b9a55df..85adf6d 100644
--- a/docs/doxygen/html/struct_sync_generator_electrical_data-members.html
+++ b/docs/doxygen/html/struct_sync_generator_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -110,8 +116,10 @@ $(document).ready(function(){initNavTree('struct_sync_generator_electrical_data.
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>icSubEq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>icTranEd</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>icTranEq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>inertia</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>initialFieldVoltage</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>id</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>inertia</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>initialFieldVoltage</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>iq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>maxReactive</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>maxReactiveUnit</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>mechanicalPowerVector</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
@@ -128,6 +136,8 @@ $(document).ready(function(){initNavTree('struct_sync_generator_electrical_data.
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>oldId</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>oldIq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>oldPe</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>oldSd</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>oldSq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>pe</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>plotSyncMachine</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>pm</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
@@ -137,9 +147,11 @@ $(document).ready(function(){initNavTree('struct_sync_generator_electrical_data.
<tr bgcolor="#f0f0f0"><td class="entry"><b>reactivePower</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>reactivePowerUnit</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>satFactor</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>speed</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0"><td class="entry"><b>speedGov</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
- <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>speedGovSolver</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sd</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>speed</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>speedGov</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0"><td class="entry"><b>speedGovSolver</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
+ <tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>sq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>subEd</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0" class="even"><td class="entry"><b>subEq</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
<tr bgcolor="#f0f0f0"><td class="entry"><b>subTd0</b> (defined in <a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a>)</td><td class="entry"><a class="el" href="struct_sync_generator_electrical_data.html">SyncGeneratorElectricalData</a></td><td class="entry"></td></tr>
diff --git a/docs/doxygen/html/struct_sync_generator_electrical_data.html b/docs/doxygen/html/struct_sync_generator_electrical_data.html
index b9e1484..18b2b3f 100644
--- a/docs/doxygen/html/struct_sync_generator_electrical_data.html
+++ b/docs/doxygen/html/struct_sync_generator_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -273,6 +279,18 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>subEd</b></td></tr>
<tr class="memitem:ade7d762b92727bcc58821d3bf9a743ca"><td class="memItemLeft" align="right" valign="top"><a id="ade7d762b92727bcc58821d3bf9a743ca"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>pe</b></td></tr>
<tr class="separator:ade7d762b92727bcc58821d3bf9a743ca"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a1d80742377fac4d719085c967d831608"><td class="memItemLeft" align="right" valign="top"><a id="a1d80742377fac4d719085c967d831608"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>id</b></td></tr>
+<tr class="separator:a1d80742377fac4d719085c967d831608"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ae06d59efebe1956a310dbc43e4780abe"><td class="memItemLeft" align="right" valign="top"><a id="ae06d59efebe1956a310dbc43e4780abe"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>iq</b></td></tr>
+<tr class="separator:ae06d59efebe1956a310dbc43e4780abe"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a8827b25efb3bb80e511412fcf2e63f42"><td class="memItemLeft" align="right" valign="top"><a id="a8827b25efb3bb80e511412fcf2e63f42"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>sd</b></td></tr>
+<tr class="separator:a8827b25efb3bb80e511412fcf2e63f42"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af4177bcbee0f968986860e9294f70129"><td class="memItemLeft" align="right" valign="top"><a id="af4177bcbee0f968986860e9294f70129"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>sq</b></td></tr>
+<tr class="separator:af4177bcbee0f968986860e9294f70129"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad6cc9505241ac17f3ab1f6011aace0b8"><td class="memItemLeft" align="right" valign="top"><a id="ad6cc9505241ac17f3ab1f6011aace0b8"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>oldId</b></td></tr>
<tr class="separator:ad6cc9505241ac17f3ab1f6011aace0b8"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -282,6 +300,12 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>oldIq</b></td></tr>
<tr class="memitem:ad5935c784af5f03f7c9cdba7df88f1de"><td class="memItemLeft" align="right" valign="top"><a id="ad5935c784af5f03f7c9cdba7df88f1de"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>oldPe</b></td></tr>
<tr class="separator:ad5935c784af5f03f7c9cdba7df88f1de"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a750898c7ac2b2612a3db657d5459626d"><td class="memItemLeft" align="right" valign="top"><a id="a750898c7ac2b2612a3db657d5459626d"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>oldSd</b></td></tr>
+<tr class="separator:a750898c7ac2b2612a3db657d5459626d"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a96752298c088dea20ecc690644ea3a86"><td class="memItemLeft" align="right" valign="top"><a id="a96752298c088dea20ecc690644ea3a86"></a>
+double&#160;</td><td class="memItemRight" valign="bottom"><b>oldSq</b></td></tr>
+<tr class="separator:a96752298c088dea20ecc690644ea3a86"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac092cb3ba2be5fca9881fbaaa6d13ff1"><td class="memItemLeft" align="right" valign="top"><a id="ac092cb3ba2be5fca9881fbaaa6d13ff1"></a>
<a class="el" href="struct_integration_constant.html">IntegrationConstant</a>&#160;</td><td class="memItemRight" valign="bottom"><b>icSpeed</b></td></tr>
<tr class="separator:ac092cb3ba2be5fca9881fbaaa6d13ff1"><td class="memSeparator" colspan="2">&#160;</td></tr>
@@ -318,7 +342,7 @@ Machines::SyncMachineModel&#160;</td><td class="memItemRight" valign="bottom"><b
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00008">8</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00025">25</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="a20b583f81933f0f077fb78851b92e7f5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20b583f81933f0f077fb78851b92e7f5">&#9670;&nbsp;</a></span>faultCurrent</h2>
@@ -332,7 +356,7 @@ Machines::SyncMachineModel&#160;</td><td class="memItemRight" valign="bottom"><b
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"> std::complex&lt;double&gt;(0.0, 0.0)}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00038">38</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_generator_8h_source.html#l00055">55</a> of file <a class="el" href="_sync_generator_8h_source.html">SyncGenerator.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/struct_sync_generator_electrical_data.js b/docs/doxygen/html/struct_sync_generator_electrical_data.js
index 6427da8..90c661c 100644
--- a/docs/doxygen/html/struct_sync_generator_electrical_data.js
+++ b/docs/doxygen/html/struct_sync_generator_electrical_data.js
@@ -25,8 +25,10 @@ var struct_sync_generator_electrical_data =
[ "icSubEq", "struct_sync_generator_electrical_data.html#a1a1224d8d980c1aa408acd0c731e73c1", null ],
[ "icTranEd", "struct_sync_generator_electrical_data.html#a9a534e4c50aba0e6a2cc6b5dbc2d2c03", null ],
[ "icTranEq", "struct_sync_generator_electrical_data.html#a599699b6b55ca35dfec13f0a1d58dc37", null ],
+ [ "id", "struct_sync_generator_electrical_data.html#a1d80742377fac4d719085c967d831608", null ],
[ "inertia", "struct_sync_generator_electrical_data.html#abec98d3227f7c93d1caf05c3a885b097", null ],
[ "initialFieldVoltage", "struct_sync_generator_electrical_data.html#a452fd337c002c0872ee2f22f8eefeb14", null ],
+ [ "iq", "struct_sync_generator_electrical_data.html#ae06d59efebe1956a310dbc43e4780abe", null ],
[ "maxReactive", "struct_sync_generator_electrical_data.html#adffc8e7c793c2f23dfd5b573a14aba24", null ],
[ "maxReactiveUnit", "struct_sync_generator_electrical_data.html#a2a21d204b68e1896bd2aae87ef9e6ec3", null ],
[ "mechanicalPowerVector", "struct_sync_generator_electrical_data.html#a58d893dcf9933cf73be0bb12d3472ac6", null ],
@@ -43,6 +45,8 @@ var struct_sync_generator_electrical_data =
[ "oldId", "struct_sync_generator_electrical_data.html#ad6cc9505241ac17f3ab1f6011aace0b8", null ],
[ "oldIq", "struct_sync_generator_electrical_data.html#a124840d7c73161bb4187aa5215969647", null ],
[ "oldPe", "struct_sync_generator_electrical_data.html#ad5935c784af5f03f7c9cdba7df88f1de", null ],
+ [ "oldSd", "struct_sync_generator_electrical_data.html#a750898c7ac2b2612a3db657d5459626d", null ],
+ [ "oldSq", "struct_sync_generator_electrical_data.html#a96752298c088dea20ecc690644ea3a86", null ],
[ "pe", "struct_sync_generator_electrical_data.html#ade7d762b92727bcc58821d3bf9a743ca", null ],
[ "plotSyncMachine", "struct_sync_generator_electrical_data.html#abb4e828c8091dd69e2535d72b51fc6e7", null ],
[ "pm", "struct_sync_generator_electrical_data.html#a53edeaeb3361da40e3939bfffa401e6c", null ],
@@ -52,9 +56,11 @@ var struct_sync_generator_electrical_data =
[ "reactivePower", "struct_sync_generator_electrical_data.html#a82bc75dc1c81776dc2998803e0f62890", null ],
[ "reactivePowerUnit", "struct_sync_generator_electrical_data.html#a787696951a05eb8000c0495b018246e4", null ],
[ "satFactor", "struct_sync_generator_electrical_data.html#ac53d1a5127d7dcd5f8b94d2ca0cae4b7", null ],
+ [ "sd", "struct_sync_generator_electrical_data.html#a8827b25efb3bb80e511412fcf2e63f42", null ],
[ "speed", "struct_sync_generator_electrical_data.html#a5bfbef7dc02c36f5673ebd6c25f9a7a9", null ],
[ "speedGov", "struct_sync_generator_electrical_data.html#a1c21e18774280d7dc7378e39eeba04ff", null ],
[ "speedGovSolver", "struct_sync_generator_electrical_data.html#a7c4224d05447c55c895fe164d09e0a8c", null ],
+ [ "sq", "struct_sync_generator_electrical_data.html#af4177bcbee0f968986860e9294f70129", null ],
[ "subEd", "struct_sync_generator_electrical_data.html#a64003e1947c801662450bb04723e1696", null ],
[ "subEq", "struct_sync_generator_electrical_data.html#ab4c9a79a39406b6e744ab4fb92e94750", null ],
[ "subTd0", "struct_sync_generator_electrical_data.html#a73b9df7db4f2d984fb5f976003122131", null ],
diff --git a/docs/doxygen/html/struct_sync_machine_model_data-members.html b/docs/doxygen/html/struct_sync_machine_model_data-members.html
new file mode 100644
index 0000000..1db2862
--- /dev/null
+++ b/docs/doxygen/html/struct_sync_machine_model_data-members.html
@@ -0,0 +1,109 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>Member List</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_sync_machine_model_data.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="headertitle">
+<div class="title">SyncMachineModelData Member List</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>This is the complete list of members for <a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a>, including all inherited members.</p>
+<table class="directory">
+ <tr class="even"><td class="entry"><a class="el" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a></td><td class="entry"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a></td><td class="entry"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></td><td class="entry"></td></tr>
+ <tr class="even"><td class="entry"><a class="el" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a></td><td class="entry"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></td><td class="entry"></td></tr>
+ <tr><td class="entry"><a class="el" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a></td><td class="entry"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></td><td class="entry"></td></tr>
+</table></div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/struct_sync_machine_model_data.html b/docs/doxygen/html/struct_sync_machine_model_data.html
new file mode 100644
index 0000000..83caf36
--- /dev/null
+++ b/docs/doxygen/html/struct_sync_machine_model_data.html
@@ -0,0 +1,200 @@
+<!-- HTML header for doxygen 1.8.13-->
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<link rel="shortcut icon" href="favicon.ico" type="image/x-icon" />
+<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
+<meta http-equiv="X-UA-Compatible" content="IE=9"/>
+<meta name="generator" content="Doxygen 1.8.13"/>
+<meta name="viewport" content="width=device-width, initial-scale=1"/>
+<title>SyncMachineModelData Struct Reference</title>
+<link href="tabs.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="jquery.js"></script>
+<script type="text/javascript" src="dynsections.js"></script>
+<link href="navtree.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="resize.js"></script>
+<script type="text/javascript" src="navtreedata.js"></script>
+<script type="text/javascript" src="navtree.js"></script>
+<script type="text/javascript">
+ $(document).ready(initResizable);
+</script>
+<link href="search/search.css" rel="stylesheet" type="text/css"/>
+<script type="text/javascript" src="search/searchdata.js"></script>
+<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
+<link href="doxygen.css" rel="stylesheet" type="text/css" />
+</head>
+<body>
+<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
+<div id="titlearea">
+<table cellspacing="0" cellpadding="0">
+ <tbody>
+ <tr style="height: 56px;">
+ <td id="projectlogo"><img alt="Logo" src="logoHeader.png"/></td>
+ </tr>
+ </tbody>
+</table>
+</div>
+<!-- end header part -->
+<!-- Generated by Doxygen 1.8.13 -->
+<script type="text/javascript">
+var searchBox = new SearchBox("searchBox", "search",false,'Search');
+</script>
+<script type="text/javascript" src="menudata.js"></script>
+<script type="text/javascript" src="menu.js"></script>
+<script type="text/javascript">
+$(function() {
+ initMenu('',true,false,'search.php','Search');
+ $(document).ready(function() { init_search(); });
+});
+</script>
+<div id="main-nav"></div>
+</div><!-- top -->
+<div id="side-nav" class="ui-resizable side-nav-resizable">
+ <div id="nav-tree">
+ <div id="nav-tree-contents">
+ <div id="nav-sync" class="sync"></div>
+ </div>
+ </div>
+ <div id="splitbar" style="-moz-user-select:none;"
+ class="ui-resizable-handle">
+ </div>
+</div>
+<script type="text/javascript">
+$(document).ready(function(){initNavTree('struct_sync_machine_model_data.html','');});
+</script>
+<div id="doc-content">
+<!-- window showing the filter options -->
+<div id="MSearchSelectWindow"
+ onmouseover="return searchBox.OnSearchSelectShow()"
+ onmouseout="return searchBox.OnSearchSelectHide()"
+ onkeydown="return searchBox.OnSearchSelectKey(event)">
+</div>
+
+<!-- iframe showing the search results (closed by default) -->
+<div id="MSearchResultsWindow">
+<iframe src="javascript:void(0)" frameborder="0"
+ name="MSearchResults" id="MSearchResults">
+</iframe>
+</div>
+
+<div class="header">
+ <div class="summary">
+<a href="#pub-attribs">Public Attributes</a> &#124;
+<a href="struct_sync_machine_model_data-members.html">List of all members</a> </div>
+ <div class="headertitle">
+<div class="title">SyncMachineModelData Struct Reference</div> </div>
+</div><!--header-->
+<div class="contents">
+
+<p>Synchronous machine data for different models.
+ <a href="struct_sync_machine_model_data.html#details">More...</a></p>
+
+<p><code>#include &lt;<a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>&gt;</code></p>
+<table class="memberdecls">
+<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-attribs"></a>
+Public Attributes</h2></td></tr>
+<tr class="memitem:af75546805bf92eb7a8a7280f7964b330"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330">xd</a></td></tr>
+<tr class="separator:af75546805bf92eb7a8a7280f7964b330"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:af81596945918e86e56f5822a0ba97fbc"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc">xq</a></td></tr>
+<tr class="separator:af81596945918e86e56f5822a0ba97fbc"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:ad2bda1ac696b664571e33f657f4a81b6"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6">ed</a></td></tr>
+<tr class="separator:ad2bda1ac696b664571e33f657f4a81b6"><td class="memSeparator" colspan="2">&#160;</td></tr>
+<tr class="memitem:a810b9e3250ebb8f3d4176f6e5a2b1076"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076">eq</a></td></tr>
+<tr class="separator:a810b9e3250ebb8f3d4176f6e5a2b1076"><td class="memSeparator" colspan="2">&#160;</td></tr>
+</table>
+<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
+<div class="textblock"><p>Synchronous machine data for different models. </p>
+<p>This struct have the parameters and calculated data that depends on each machine model. </p>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00033">33</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+</div><h2 class="groupheader">Member Data Documentation</h2>
+<a id="ad2bda1ac696b664571e33f657f4a81b6"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#ad2bda1ac696b664571e33f657f4a81b6">&#9670;&nbsp;</a></span>ed</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double SyncMachineModelData::ed</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Direct-axis internal voltage (transient for models 1, 2 and 3; subtransient for models 4 and 5) </p>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00039">39</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+
+</div>
+</div>
+<a id="a810b9e3250ebb8f3d4176f6e5a2b1076"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#a810b9e3250ebb8f3d4176f6e5a2b1076">&#9670;&nbsp;</a></span>eq</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double SyncMachineModelData::eq</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Quadrature-axis internal voltage (transient for models 1, 2 and 3; subtransient for models 4 and 5) </p>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00041">41</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+
+</div>
+</div>
+<a id="af75546805bf92eb7a8a7280f7964b330"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af75546805bf92eb7a8a7280f7964b330">&#9670;&nbsp;</a></span>xd</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double SyncMachineModelData::xd</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Direct-axis reactance (transient for models 1, 2 and 3; subtransient for models 4 and 5) </p>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00035">35</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+
+</div>
+</div>
+<a id="af81596945918e86e56f5822a0ba97fbc"></a>
+<h2 class="memtitle"><span class="permalink"><a href="#af81596945918e86e56f5822a0ba97fbc">&#9670;&nbsp;</a></span>xq</h2>
+
+<div class="memitem">
+<div class="memproto">
+ <table class="memname">
+ <tr>
+ <td class="memname">double SyncMachineModelData::xq</td>
+ </tr>
+ </table>
+</div><div class="memdoc">
+<p>Quadrature-axis reactance (transient for models 1, 2 and 3; subtransient for models 4 and 5) </p>
+
+<p class="definition">Definition at line <a class="el" href="_electromechanical_8h_source.html#l00037">37</a> of file <a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a>.</p>
+
+</div>
+</div>
+<hr/>The documentation for this struct was generated from the following file:<ul>
+<li>Project/<a class="el" href="_electromechanical_8h_source.html">Electromechanical.h</a></li>
+</ul>
+</div><!-- contents -->
+</div><!-- doc-content -->
+<!-- start footer part -->
+<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
+ <ul>
+ <li class="navelem"><a class="el" href="struct_sync_machine_model_data.html">SyncMachineModelData</a></li>
+ <li class="footer">Generated by
+ <a href="http://www.doxygen.org/index.html">
+ <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.8.13 </li>
+ </ul>
+</div>
+</body>
+</html>
diff --git a/docs/doxygen/html/struct_sync_machine_model_data.js b/docs/doxygen/html/struct_sync_machine_model_data.js
new file mode 100644
index 0000000..148839a
--- /dev/null
+++ b/docs/doxygen/html/struct_sync_machine_model_data.js
@@ -0,0 +1,7 @@
+var struct_sync_machine_model_data =
+[
+ [ "ed", "struct_sync_machine_model_data.html#ad2bda1ac696b664571e33f657f4a81b6", null ],
+ [ "eq", "struct_sync_machine_model_data.html#a810b9e3250ebb8f3d4176f6e5a2b1076", null ],
+ [ "xd", "struct_sync_machine_model_data.html#af75546805bf92eb7a8a7280f7964b330", null ],
+ [ "xq", "struct_sync_machine_model_data.html#af81596945918e86e56f5822a0ba97fbc", null ]
+]; \ No newline at end of file
diff --git a/docs/doxygen/html/struct_sync_motor_electrical_data-members.html b/docs/doxygen/html/struct_sync_motor_electrical_data-members.html
index 3d1ad0e..db32473 100644
--- a/docs/doxygen/html/struct_sync_motor_electrical_data-members.html
+++ b/docs/doxygen/html/struct_sync_motor_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_sync_motor_electrical_data.html b/docs/doxygen/html/struct_sync_motor_electrical_data.html
index 339aeb6..b036156 100644
--- a/docs/doxygen/html/struct_sync_motor_electrical_data.html
+++ b/docs/doxygen/html/struct_sync_motor_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -318,7 +324,7 @@ Machines::SyncMachineModel&#160;</td><td class="memItemRight" valign="bottom"><b
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00008">8</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00025">25</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
</div><h2 class="groupheader">Member Data Documentation</h2>
<a id="ae97bcbb0f856bd793315d2319572bdd4"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae97bcbb0f856bd793315d2319572bdd4">&#9670;&nbsp;</a></span>faultCurrent</h2>
@@ -332,7 +338,7 @@ Machines::SyncMachineModel&#160;</td><td class="memItemRight" valign="bottom"><b
</table>
</div><div class="memdoc">
<b>Initial value:</b><div class="fragment"><div class="line">= {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0),</div><div class="line"> std::complex&lt;double&gt;(0.0, 0.0)}</div></div><!-- fragment -->
-<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00038">38</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_sync_motor_8h_source.html#l00055">55</a> of file <a class="el" href="_sync_motor_8h_source.html">SyncMotor.h</a>.</p>
</div>
</div>
diff --git a/docs/doxygen/html/struct_transfer_function_1_1_space_state-members.html b/docs/doxygen/html/struct_transfer_function_1_1_space_state-members.html
index 84e0bd5..64a4af2 100644
--- a/docs/doxygen/html/struct_transfer_function_1_1_space_state-members.html
+++ b/docs/doxygen/html/struct_transfer_function_1_1_space_state-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_transfer_function_1_1_space_state.html b/docs/doxygen/html/struct_transfer_function_1_1_space_state.html
index 02dd918..3279fa9 100644
--- a/docs/doxygen/html/struct_transfer_function_1_1_space_state.html
+++ b/docs/doxygen/html/struct_transfer_function_1_1_space_state.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -103,7 +109,7 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>D</b></td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00014">14</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transfer_function_8h_source.html#l00038">38</a> of file <a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_transfer_function_8h_source.html">TransferFunction.h</a></li>
</ul>
diff --git a/docs/doxygen/html/struct_transformer_electrical_data-members.html b/docs/doxygen/html/struct_transformer_electrical_data-members.html
index 51925b3..8b12a58 100644
--- a/docs/doxygen/html/struct_transformer_electrical_data-members.html
+++ b/docs/doxygen/html/struct_transformer_electrical_data-members.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/struct_transformer_electrical_data.html b/docs/doxygen/html/struct_transformer_electrical_data.html
index 1cd42a4..a26f1fb 100644
--- a/docs/doxygen/html/struct_transformer_electrical_data.html
+++ b/docs/doxygen/html/struct_transformer_electrical_data.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
@@ -137,10 +143,10 @@ double&#160;</td><td class="memItemRight" valign="bottom"><b>phaseShift</b> = 0.
bool&#160;</td><td class="memItemRight" valign="bottom"><b>useTransformerPower</b> = false</td></tr>
<tr class="separator:a21d613ccca353784d8adfd0bfdaca0ff"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af19976dfba78777187211ab79581396e"><td class="memItemLeft" align="right" valign="top"><a id="af19976dfba78777187211ab79581396e"></a>
-std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>current</b> [2] = { std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0) }</td></tr>
+std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>current</b> [2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)}</td></tr>
<tr class="separator:af19976dfba78777187211ab79581396e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a343366e4142013e724874e6bf79acc67"><td class="memItemLeft" align="right" valign="top"><a id="a343366e4142013e724874e6bf79acc67"></a>
-std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>powerFlow</b> [2] = { std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0) }</td></tr>
+std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>powerFlow</b> [2] = {std::complex&lt;double&gt;(0.0, 0.0), std::complex&lt;double&gt;(0.0, 0.0)}</td></tr>
<tr class="separator:a343366e4142013e724874e6bf79acc67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab6606d2f93aa369b7a3173e61d44c8f3"><td class="memItemLeft" align="right" valign="top"><a id="ab6606d2f93aa369b7a3173e61d44c8f3"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>zeroResistance</b> = 0.0</td></tr>
@@ -166,7 +172,7 @@ std::complex&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom">
</table>
<a name="details" id="details"></a><h2 class="groupheader">Detailed Description</h2>
<div class="textblock">
-<p class="definition">Definition at line <a class="el" href="_transformer_8h_source.html#l00020">20</a> of file <a class="el" href="_transformer_8h_source.html">Transformer.h</a>.</p>
+<p class="definition">Definition at line <a class="el" href="_transformer_8h_source.html#l00037">37</a> of file <a class="el" href="_transformer_8h_source.html">Transformer.h</a>.</p>
</div><hr/>The documentation for this struct was generated from the following file:<ul>
<li>Project/<a class="el" href="_transformer_8h_source.html">Transformer.h</a></li>
</ul>
diff --git a/docs/doxygen/html/wx_g_l_string_8cpp_source.html b/docs/doxygen/html/wx_g_l_string_8cpp_source.html
index 822d9f7..2e21bde 100644
--- a/docs/doxygen/html/wx_g_l_string_8cpp_source.html
+++ b/docs/doxygen/html/wx_g_l_string_8cpp_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
diff --git a/docs/doxygen/html/wx_g_l_string_8h_source.html b/docs/doxygen/html/wx_g_l_string_8h_source.html
index 338c026..8b47fa5 100644
--- a/docs/doxygen/html/wx_g_l_string_8h_source.html
+++ b/docs/doxygen/html/wx_g_l_string_8h_source.html
@@ -21,6 +21,12 @@
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
+<script type="text/x-mathjax-config">
+ MathJax.Hub.Config({
+ extensions: ["tex2jax.js"],
+ jax: ["input/TeX","output/HTML-CSS"],
+});
+</script><script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/MathJax.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>